UNPKG

foundation-sites

Version:

The most advanced responsive front-end framework in the world.

3 lines (2 loc) 11.1 kB
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("./foundation.util.touch"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","./foundation.util.touch","jquery"],n):"object"==typeof exports?exports["foundation.dropdownMenu"]=n(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("./foundation.util.touch"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.dropdownMenu"]=n(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.__FOUNDATION_EXTERNAL__["foundation.util.touch"],e.jQuery))}(window,function(t,o,i,r,s,u){return d={"./foundation.core":function(e,n){e.exports=t},"./foundation.util.box":function(e,n){e.exports=o},"./foundation.util.keyboard":function(e,n){e.exports=i},"./foundation.util.nest":function(e,n){e.exports=r},"./foundation.util.touch":function(e,n){e.exports=s},"./js/entries/plugins/foundation.dropdownMenu.js":function(e,n,t){"use strict";t.r(n);var o=t("./foundation.core");t.d(n,"Foundation",function(){return o.Foundation});var i=t("./js/foundation.dropdownMenu.js");t.d(n,"DropdownMenu",function(){return i.DropdownMenu}),o.Foundation.plugin(i.DropdownMenu,"DropdownMenu")},"./js/foundation.dropdownMenu.js":function(e,n,t){"use strict";t.r(n),t.d(n,"DropdownMenu",function(){return o});var n=t("jquery"),f=t.n(n),u=t("./foundation.core"),p=t("./foundation.util.keyboard"),r=t("./foundation.util.nest"),s=t("./foundation.util.box"),a=t("./foundation.util.touch");function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function l(e,n){return(l=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function c(t){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,n=h(t);return function(e,n){{if(n&&("object"===i(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined")}return function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e)}(this,o?(e=h(this).constructor,Reflect.construct(n,arguments,e)):n.apply(this,arguments))}}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var o=function(){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&l(e,n)}(i,u["Plugin"]);var e,n,t,o=c(i);function i(){return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,i),o.apply(this,arguments)}return e=i,(n=[{key:"_setup",value:function(e,n){this.$element=e,this.options=f.a.extend({},i.defaults,this.$element.data(),n),this.className="DropdownMenu",a.Touch.init(f.a),this._init(),p.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"dropdown");var e=this.$element.find("li.is-dropdown-submenu-parent");this.$element.children(".is-dropdown-submenu-parent").children(".is-dropdown-submenu").addClass("first-sub"),this.$menuItems=this.$element.find('li[role="none"]'),this.$tabs=this.$element.children('li[role="none"]'),this.$tabs.find("ul.is-dropdown-submenu").addClass(this.options.verticalClass),"auto"===this.options.alignment?this.$element.hasClass(this.options.rightClass)||Object(u.rtl)()||this.$element.parents(".top-bar-right").is("*")?(this.options.alignment="right",e.addClass("opens-left")):(this.options.alignment="left",e.addClass("opens-right")):"right"===this.options.alignment?e.addClass("opens-left"):e.addClass("opens-right"),this.changed=!1,this._events()}},{key:"_isVertical",value:function(){return"block"===this.$tabs.css("display")||"column"===this.$element.css("flex-direction")}},{key:"_isRtl",value:function(){return this.$element.hasClass("align-right")||Object(u.rtl)()&&!this.$element.hasClass("align-left")}},{key:"_events",value:function(){var c=this,r="ontouchstart"in window||void 0!==window.ontouchstart,s="is-dropdown-submenu-parent";(this.options.clickOpen||r)&&this.$menuItems.on("click.zf.dropdownMenu touchstart.zf.dropdownMenu",function(e){var n=f()(e.target).parentsUntil("ul",".".concat(s)),t=n.hasClass(s),o="true"===n.attr("data-is-click"),i=n.children(".is-dropdown-submenu");t&&(o?!c.options.closeOnClick||!c.options.clickOpen&&!r||c.options.forceFollow&&r||(e.stopImmediatePropagation(),e.preventDefault(),c._hide(n)):(e.stopImmediatePropagation(),e.preventDefault(),c._show(i),n.add(n.parentsUntil(c.$element,".".concat(s))).attr("data-is-click",!0)))}),c.options.closeOnClickInside&&this.$menuItems.on("click.zf.dropdownMenu",function(){f()(this).hasClass(s)||c._hide()}),r&&this.options.disableHoverOnTouch&&(this.options.disableHover=!0),this.options.disableHover||this.$menuItems.on("mouseenter.zf.dropdownMenu",function(){var e=f()(this);e.hasClass(s)&&(clearTimeout(e.data("_delay")),e.data("_delay",setTimeout(function(){c._show(e.children(".is-dropdown-submenu"))},c.options.hoverDelay)))}).on("mouseleave.zf.dropdownMenu",Object(u.ignoreMousedisappear)(function(){var e=f()(this);if(e.hasClass(s)&&c.options.autoclose){if("true"===e.attr("data-is-click")&&c.options.clickOpen)return!1;clearTimeout(e.data("_delay")),e.data("_delay",setTimeout(function(){c._hide(e)},c.options.closingTime))}})),this.$menuItems.on("keydown.zf.dropdownMenu",function(n){var t,o,i=f()(n.target).parentsUntil("ul",'[role="none"]'),e=-1<c.$tabs.index(i),r=e?c.$tabs:i.siblings("li").add(i);r.each(function(e){f()(this).is(i)&&(t=r.eq(e-1),o=r.eq(e+1))});function s(){o.children("a:first").focus(),n.preventDefault()}function u(){t.children("a:first").focus(),n.preventDefault()}function a(){var e=i.children("ul.is-dropdown-submenu");e.length&&(c._show(e),i.find("li > a:first").focus(),n.preventDefault())}function d(){var e=i.parent("ul").parent("li");e.children("a:first").focus(),c._hide(e),n.preventDefault()}var l={open:a,close:function(){c._hide(c.$element),c.$menuItems.eq(0).children("a").focus(),n.preventDefault()}};e?c._isVertical()?c._isRtl()?f.a.extend(l,{down:s,up:u,next:d,previous:a}):f.a.extend(l,{down:s,up:u,next:a,previous:d}):c._isRtl()?f.a.extend(l,{next:u,previous:s,down:a,up:d}):f.a.extend(l,{next:s,previous:u,down:a,up:d}):c._isRtl()?f.a.extend(l,{next:d,previous:a,down:s,up:u}):f.a.extend(l,{next:a,previous:d,down:s,up:u}),p.Keyboard.handleKey(n,"DropdownMenu",l)})}},{key:"_addBodyHandler",value:function(){var n=this,e=f()(document.body);this._removeBodyHandler(),e.on("click.zf.dropdownMenu tap.zf.dropdownMenu",function(e){!f()(e.target).closest(n.$element).length&&(n._hide(),n._removeBodyHandler())})}},{key:"_removeBodyHandler",value:function(){f()(document.body).off("click.zf.dropdownMenu tap.zf.dropdownMenu")}},{key:"_show",value:function(t){var e=this.$tabs.index(this.$tabs.filter(function(e,n){return 0<f()(n).find(t).length})),n=t.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent");this._hide(n,e),t.css("visibility","hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active"),s.Box.ImNotTouchingYou(t,null,!0)||(n="left"===this.options.alignment?"-right":"-left",(e=t.parent(".is-dropdown-submenu-parent")).removeClass("opens".concat(n)).addClass("opens-".concat(this.options.alignment)),s.Box.ImNotTouchingYou(t,null,!0)||e.removeClass("opens-".concat(this.options.alignment)).addClass("opens-inner"),this.changed=!0),t.css("visibility",""),this.options.closeOnClick&&this._addBodyHandler(),this.$element.trigger("show.zf.dropdownMenu",[t])}},{key:"_hide",value:function(e,n){var t,o=e&&e.length?e:void 0!==n?this.$tabs.not(function(e){return e===n}):this.$element;(o.hasClass("is-active")||0<o.find(".is-active").length)&&((t=o.find("li.is-active")).add(o).attr({"data-is-click":!1}).removeClass("is-active"),o.find("ul.js-dropdown-active").removeClass("js-dropdown-active"),(this.changed||o.find("opens-inner").length)&&(e="left"===this.options.alignment?"right":"left",o.find("li.is-dropdown-submenu-parent").add(o).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(e)),this.changed=!1),clearTimeout(t.data("_delay")),this._removeBodyHandler(),this.$element.trigger("hide.zf.dropdownMenu",[o]))}},{key:"_destroy",value:function(){this.$menuItems.off(".zf.dropdownMenu").removeAttr("data-is-click").removeClass("is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner"),f()(document.body).off(".zf.dropdownMenu"),r.Nest.Burn(this.$element,"dropdown")}}])&&d(e.prototype,n),t&&d(e,t),i}();o.defaults={disableHover:!1,disableHoverOnTouch:!0,autoclose:!0,hoverDelay:50,clickOpen:!1,closingTime:500,alignment:"auto",closeOnClick:!0,closeOnClickInside:!0,verticalClass:"vertical",rightClass:"align-right",forceFollow:!0}},5:function(e,n,t){e.exports=t("./js/entries/plugins/foundation.dropdownMenu.js")},jquery:function(e,n){e.exports=u}},l={},a.m=d,a.c=l,a.d=function(e,n,t){a.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(n,e){if(1&e&&(n=a(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)a.d(t,o,function(e){return n[e]}.bind(null,o));return t},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="",a(a.s=5);function a(e){if(l[e])return l[e].exports;var n=l[e]={i:e,l:!1,exports:{}};return d[e].call(n.exports,n,n.exports,a),n.l=!0,n.exports}var d,l}); //# sourceMappingURL=foundation.dropdownMenu.min.js.map