From 0c4c45447205f31475ff13e1a71cdfcf2b851dcf Mon Sep 17 00:00:00 2001 From: Gijs Roge Date: Sat, 27 Jun 2015 10:53:34 +0200 Subject: [PATCH] released v1.0.6 --- bower.json | 2 +- dist/priority-nav.js | 18 +++++++++--------- dist/priority-nav.min.js | 4 ++-- package.json | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bower.json b/bower.json index dffb914..ba15bf3 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "priority-nav", "title": "priority-nav", - "version": "1.0.5", + "version": "1.0.6", "main": [ "dist/priority-nav.js", "dist/priority-nav-core.css" diff --git a/dist/priority-nav.js b/dist/priority-nav.js index 6c69c07..5cf330d 100644 --- a/dist/priority-nav.js +++ b/dist/priority-nav.js @@ -1,5 +1,5 @@ /* - * priority-nav - v1.0.5 | (c) 2015 @gijsroge | MIT license + * priority-nav - v1.0.6 | (c) 2015 @gijsroge | MIT license * Repository: https://github.com/gijsroge/priority-navigation.git * Description: Priority+ pattern navigation that hides menu items if they don't fit on screen. * Demo: http://gijsroge.github.io/priority-nav.js/ @@ -36,8 +36,8 @@ initClass: "js-priorityNav", // Class that will be printed on html element to allow conditional css styling. mainNavWrapper: "nav", // mainnav wrapper selector (must be direct parent from mainNav) mainNav: "ul", // mainnav selector. (must be inline-block) - navDropdown: ".nav__dropdown", // class used for the dropdown. - navDropdownToggle: ".nav__dropdown-toggle", // class used for the dropdown toggle. + navDropdown: "nav__dropdown", // class used for the dropdown. + navDropdownToggle: "nav__dropdown-toggle", // class used for the dropdown toggle. navDropdownLabel: "more", // Text that is used for the dropdown toggle. navDropdownBreakpointLabel: "menu", //button label for navDropdownToggle when the breakPoint is reached. breakPoint: 500, //amount of pixels when all menu items should be moved to dropdown to simulate a mobile menu @@ -195,13 +195,13 @@ /** * Add classes so we can target elements */ - navDropdown.classList.add(settings.navDropdown.substr(1)); + navDropdown.classList.add(settings.navDropdown); navDropdown.classList.add("priority-nav__dropdown"); - navDropdownToggle.classList.add(settings.navDropdownToggle.substr(1)); + navDropdownToggle.classList.add(settings.navDropdownToggle); navDropdownToggle.classList.add("priority-nav__dropdown-toggle"); - toggleWrapper.classList.add(settings.navDropdown.substr(1)+"-wrapper"); + toggleWrapper.classList.add(settings.navDropdown+"-wrapper"); toggleWrapper.classList.add("priority-nav__wrapper"); _this.classList.add("priority-nav"); @@ -470,7 +470,7 @@ // Toggle dropdown _this.querySelector(navDropdownToggle).addEventListener("click", function () { - toggleClass(_this.querySelector(settings.navDropdown), "show"); + toggleClass(_this.querySelector(navDropdown), "show"); toggleClass(this, "is-open"); toggleClass(_this, "is-open"); }); @@ -610,7 +610,7 @@ /** * Store the dropdown element */ - navDropdown = settings.navDropdown; + navDropdown = "."+settings.navDropdown; if (!_this.querySelector(navDropdown)) { console.warn("couldn't find the specified navDropdown element"); return; @@ -619,7 +619,7 @@ /** * Store the dropdown toggle element */ - navDropdownToggle = settings.navDropdownToggle; + navDropdownToggle = "."+settings.navDropdownToggle; if (!_this.querySelector(navDropdownToggle)) { console.warn("couldn't find the specified navDropdownToggle element"); return; diff --git a/dist/priority-nav.min.js b/dist/priority-nav.min.js index b896530..25ba51d 100644 --- a/dist/priority-nav.min.js +++ b/dist/priority-nav.min.js @@ -1,7 +1,7 @@ /* - * priority-nav - v1.0.5 | (c) 2015 @gijsroge | MIT license + * priority-nav - v1.0.6 | (c) 2015 @gijsroge | MIT license * Repository: https://github.com/gijsroge/priority-navigation.git * Description: Priority+ pattern navigation that hides menu items if they don't fit on screen. * Demo: http://gijsroge.github.io/priority-nav.js/ */ -!function(a,b){"function"==typeof define&&define.amd?define("priorityNav",b(a)):"object"==typeof exports?module.exports=b(a):a.priorityNav=b(a)}(window||this,function(a){"use strict";function b(a,b,c){var d;return function(){var e=this,f=arguments,g=function(){d=null,c||a.apply(e,f)},h=c&&!d;clearTimeout(d),d=setTimeout(g,b),h&&a.apply(e,f)}}var c,d,e,f,g,h,i,j,k={},l=[],m=!!document.querySelector&&!!a.addEventListener,n={},o=0,p=0,q=0,r={initClass:"js-priorityNav",mainNavWrapper:"nav",mainNav:"ul",navDropdown:".nav__dropdown",navDropdownToggle:".nav__dropdown-toggle",navDropdownLabel:"more",navDropdownBreakpointLabel:"menu",breakPoint:500,throttleDelay:50,offsetPixels:0,count:!0,moved:function(){},movedBack:function(){}},s=function(a,b,c){if("[object Object]"===Object.prototype.toString.call(a))for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&b.call(c,a[d],d,a);else for(var e=0,f=a.length;f>e;e++)b.call(c,a[e],e,a)},t=function(a,b){for(var c=b.charAt(0);a&&a!==document;a=a.parentNode)if("."===c){if(a.classList.contains(b.substr(1)))return a}else if("#"===c){if(a.id===b.substr(1))return a}else if("["===c&&a.hasAttribute(b.substr(1,b.length-2)))return a;return!1},u=function(a,b){var c={};return s(a,function(b,d){c[d]=a[d]}),s(b,function(a,d){c[d]=b[d]}),c},v=function(a,b){if(a.classList)a.classList.toggle(b);else{var c=a.className.split(" "),d=c.indexOf(b);d>=0?c.splice(d,1):c.push(b),a.className=c.join(" ")}},w=function(a){j=document.createElement("span"),g=document.createElement("ul"),h=document.createElement("button"),h.innerHTML=n.navDropdownLabel,a.insertAfter(j,a.querySelector(f)),j.appendChild(g),j.appendChild(h),g.classList.add(n.navDropdown.substr(1)),g.classList.add("priority-nav__dropdown"),h.classList.add(n.navDropdownToggle.substr(1)),h.classList.add("priority-nav__dropdown-toggle"),j.classList.add(n.navDropdown.substr(1)+"-wrapper"),j.classList.add("priority-nav__wrapper"),a.classList.add("priority-nav")},x=function(a){var b=window.getComputedStyle(a),c=parseFloat(b.paddingLeft)+parseFloat(b.paddingRight);return a.clientWidth-c},y=function(){var a=document,b=window,c=a.compatMode&&"CSS1Compat"===a.compatMode?a.documentElement:a.body,d=c.clientWidth,e=c.clientHeight;return b.innerWidth&&d>b.innerWidth&&(d=b.innerWidth,e=b.innerHeight),{width:d,height:e}},z=function(a){d=x(a),i=a.querySelector(g).parentNode===a?a.querySelector(g).offsetWidth:0,e=D(a)+n.offsetPixels,q=y().width};k.doesItFit=function(a){var c=0===a.getAttribute("instance")?c:n.throttleDelay;o++,b(function(){var b=a.getAttribute("instance");for(z(a);e>d||q0;)k.toDropdown(a,b),z(a,b),ql[b][l[b].length-1]&&q>n.breakPoint;)k.toMenu(a,b),q>n.breakPoint&&C(a,b,n.navDropdownLabel);l[b].length<1&&a.querySelector(g).classList.remove("show"),A(a,b)},c)()};var A=function(a,b){l[b].length<1?(a.querySelector(h).classList.add("priority-nav-is-hidden"),a.querySelector(h).classList.remove("priority-nav-is-visible"),a.classList.remove("priority-nav-has-dropdown")):(a.querySelector(h).classList.add("priority-nav-is-visible"),a.querySelector(h).classList.remove("priority-nav-is-hidden"),a.classList.add("priority-nav-has-dropdown"))},B=function(a,b){a.querySelector(h).setAttribute("priorityNav-count",l[b].length)},C=function(a,b,c){a.querySelector(h).innerHTML=c};k.toDropdown=function(a,b){a.querySelector(g).firstChild&&a.querySelector(f).children.length>0?a.querySelector(g).insertBefore(a.querySelector(f).lastElementChild,a.querySelector(g).firstChild):a.querySelector(f).children.length>0&&a.querySelector(g).appendChild(a.querySelector(f).lastElementChild),l[b].push(e),A(a,b),a.querySelector(f).children.length>0&&n.count&&B(a,b),n.moved()},k.toMenu=function(a,b){a.querySelector(g).children.length>0&&a.querySelector(f).appendChild(a.querySelector(g).firstElementChild),l[b].pop(),A(a,b),a.querySelector(f).children.length>0&&n.count&&B(a,b),n.movedBack()};var D=function(a){for(var b=a.childNodes,c=0,d=0;da;a++)this[a]&&this[a].parentElement&&this[a].parentElement.removeChild(this[a])},k.destroy=function(){n&&(document.documentElement.classList.remove(n.initClass),j.remove(),n=null,delete k.init,delete k.doesItFit)},Node.prototype.insertAfter=function(a,b){this.insertBefore(a,b.nextSibling)},k.init=function(a){if(!m)return void console.warn("This browser doesn't support priorityNav");n=u(r,a||{});var b=document.querySelectorAll(n.mainNavWrapper);s(b,function(a){return l[p]=[],a.setAttribute("instance",p++),(c=a)?(f=n.mainNav,a.querySelector(f)?(w(a),g=n.navDropdown,a.querySelector(g)?(h=n.navDropdownToggle,a.querySelector(h)?(E(a),void k.doesItFit(a)):void console.warn("couldn't find the specified navDropdownToggle element")):void console.warn("couldn't find the specified navDropdown element")):void console.warn("couldn't find the specified mainNav element")):void console.warn("couldn't find the specified mainNavWrapper element")}),o++,document.documentElement.classList.add(n.initClass)},k}); \ No newline at end of file +!function(a,b){"function"==typeof define&&define.amd?define("priorityNav",b(a)):"object"==typeof exports?module.exports=b(a):a.priorityNav=b(a)}(window||this,function(a){"use strict";function b(a,b,c){var d;return function(){var e=this,f=arguments,g=function(){d=null,c||a.apply(e,f)},h=c&&!d;clearTimeout(d),d=setTimeout(g,b),h&&a.apply(e,f)}}var c,d,e,f,g,h,i,j,k={},l=[],m=!!document.querySelector&&!!a.addEventListener,n={},o=0,p=0,q=0,r={initClass:"js-priorityNav",mainNavWrapper:"nav",mainNav:"ul",navDropdown:"nav__dropdown",navDropdownToggle:"nav__dropdown-toggle",navDropdownLabel:"more",navDropdownBreakpointLabel:"menu",breakPoint:500,throttleDelay:50,offsetPixels:0,count:!0,moved:function(){},movedBack:function(){}},s=function(a,b,c){if("[object Object]"===Object.prototype.toString.call(a))for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&b.call(c,a[d],d,a);else for(var e=0,f=a.length;f>e;e++)b.call(c,a[e],e,a)},t=function(a,b){for(var c=b.charAt(0);a&&a!==document;a=a.parentNode)if("."===c){if(a.classList.contains(b.substr(1)))return a}else if("#"===c){if(a.id===b.substr(1))return a}else if("["===c&&a.hasAttribute(b.substr(1,b.length-2)))return a;return!1},u=function(a,b){var c={};return s(a,function(b,d){c[d]=a[d]}),s(b,function(a,d){c[d]=b[d]}),c},v=function(a,b){if(a.classList)a.classList.toggle(b);else{var c=a.className.split(" "),d=c.indexOf(b);d>=0?c.splice(d,1):c.push(b),a.className=c.join(" ")}},w=function(a){j=document.createElement("span"),g=document.createElement("ul"),h=document.createElement("button"),h.innerHTML=n.navDropdownLabel,a.insertAfter(j,a.querySelector(f)),j.appendChild(g),j.appendChild(h),g.classList.add(n.navDropdown),g.classList.add("priority-nav__dropdown"),h.classList.add(n.navDropdownToggle),h.classList.add("priority-nav__dropdown-toggle"),j.classList.add(n.navDropdown+"-wrapper"),j.classList.add("priority-nav__wrapper"),a.classList.add("priority-nav")},x=function(a){var b=window.getComputedStyle(a),c=parseFloat(b.paddingLeft)+parseFloat(b.paddingRight);return a.clientWidth-c},y=function(){var a=document,b=window,c=a.compatMode&&"CSS1Compat"===a.compatMode?a.documentElement:a.body,d=c.clientWidth,e=c.clientHeight;return b.innerWidth&&d>b.innerWidth&&(d=b.innerWidth,e=b.innerHeight),{width:d,height:e}},z=function(a){d=x(a),i=a.querySelector(g).parentNode===a?a.querySelector(g).offsetWidth:0,e=D(a)+n.offsetPixels,q=y().width};k.doesItFit=function(a){var c=0===a.getAttribute("instance")?c:n.throttleDelay;o++,b(function(){var b=a.getAttribute("instance");for(z(a);e>d||q0;)k.toDropdown(a,b),z(a,b),ql[b][l[b].length-1]&&q>n.breakPoint;)k.toMenu(a,b),q>n.breakPoint&&C(a,b,n.navDropdownLabel);l[b].length<1&&a.querySelector(g).classList.remove("show"),A(a,b)},c)()};var A=function(a,b){l[b].length<1?(a.querySelector(h).classList.add("priority-nav-is-hidden"),a.querySelector(h).classList.remove("priority-nav-is-visible"),a.classList.remove("priority-nav-has-dropdown")):(a.querySelector(h).classList.add("priority-nav-is-visible"),a.querySelector(h).classList.remove("priority-nav-is-hidden"),a.classList.add("priority-nav-has-dropdown"))},B=function(a,b){a.querySelector(h).setAttribute("priorityNav-count",l[b].length)},C=function(a,b,c){a.querySelector(h).innerHTML=c};k.toDropdown=function(a,b){a.querySelector(g).firstChild&&a.querySelector(f).children.length>0?a.querySelector(g).insertBefore(a.querySelector(f).lastElementChild,a.querySelector(g).firstChild):a.querySelector(f).children.length>0&&a.querySelector(g).appendChild(a.querySelector(f).lastElementChild),l[b].push(e),A(a,b),a.querySelector(f).children.length>0&&n.count&&B(a,b),n.moved()},k.toMenu=function(a,b){a.querySelector(g).children.length>0&&a.querySelector(f).appendChild(a.querySelector(g).firstElementChild),l[b].pop(),A(a,b),a.querySelector(f).children.length>0&&n.count&&B(a,b),n.movedBack()};var D=function(a){for(var b=a.childNodes,c=0,d=0;da;a++)this[a]&&this[a].parentElement&&this[a].parentElement.removeChild(this[a])},k.destroy=function(){n&&(document.documentElement.classList.remove(n.initClass),j.remove(),n=null,delete k.init,delete k.doesItFit)},Node.prototype.insertAfter=function(a,b){this.insertBefore(a,b.nextSibling)},k.init=function(a){if(!m)return void console.warn("This browser doesn't support priorityNav");n=u(r,a||{});var b=document.querySelectorAll(n.mainNavWrapper);s(b,function(a){return l[p]=[],a.setAttribute("instance",p++),(c=a)?(f=n.mainNav,a.querySelector(f)?(w(a),g="."+n.navDropdown,a.querySelector(g)?(h="."+n.navDropdownToggle,a.querySelector(h)?(E(a),void k.doesItFit(a)):void console.warn("couldn't find the specified navDropdownToggle element")):void console.warn("couldn't find the specified navDropdown element")):void console.warn("couldn't find the specified mainNav element")):void console.warn("couldn't find the specified mainNavWrapper element")}),o++,document.documentElement.classList.add(n.initClass)},k}); \ No newline at end of file diff --git a/package.json b/package.json index ecc7e1b..be1c342 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "priority-nav", "title": "priority-nav", - "version": "1.0.5", + "version": "1.0.6", "main": "dist/priority-nav.js", "description": "Priority+ pattern navigation that hides menu items if they don't fit on screen.", "homepage": "http://gijsroge.github.io/priority-nav.js/",