foundation-sites
Version:
The most advanced responsive front-end framework in the world.
3 lines (2 loc) • 10.7 kB
JavaScript
((e,t)=>{"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("jquery"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("./foundation.util.box"),require("./foundation.util.touch")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery","./foundation.util.keyboard","./foundation.util.nest","./foundation.util.box","./foundation.util.touch"],t):"object"==typeof exports?exports.__FOUNDATION_EXTERNAL__=t(require("./foundation.core"),require("jquery"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("./foundation.util.box"),require("./foundation.util.touch")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.dropdownMenu"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.jQuery,e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.touch"]))})(self,function(t,n,o,i,r,s){return a={"./js/foundation.dropdownMenu.js":function(e,t,n){n.r(t),n.d(t,{DropdownMenu:function(){return o}});var t=n("jquery"),f=n.n(t),i=n("./foundation.core"),p=n("./foundation.util.keyboard"),r=n("./foundation.util.nest"),s=n("./foundation.util.box"),u=n("./foundation.util.touch");function a(e){return(a="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,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(e=>(e=((e,t)=>{if("object"!=a(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);if("object"!=a(n=n.call(e,t||"default")))return n;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string"),"symbol"==a(e)?e:e+""))(o.key),o)}}function l(e,t,n){t=h(t);var o=e,t=c()?Reflect.construct(t,n||[],h(e).constructor):t.apply(e,n);if(!t||"object"!=a(t)&&"function"!=typeof t){if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");if(void 0===(t=o))throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return t}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(c=function(){return!!e})()}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e,t){return(m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}var o=(e=>{function n(){var e=this,t=n;if(e instanceof t)return l(this,n,arguments);throw new TypeError("Cannot call a class as a function")}var t,o=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");return o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),Object.defineProperty(o,"prototype",{writable:!1}),e&&m(o,e),o=n,(e=[{key:"_setup",value:function(e,t){this.$element=e,this.options=f().extend({},n.defaults,this.$element.data(),t),this.className="DropdownMenu",u.Touch.init(f()),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)||(0,i.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")||(0,i.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 t=f()(e.target).parentsUntil("ul",".".concat(s)),n=t.hasClass(s),o="true"===t.attr("data-is-click"),i=t.children(".is-dropdown-submenu");n&&(o?!c.options.closeOnClick||!c.options.clickOpen&&!r||c.options.forceFollow&&r||(e.stopImmediatePropagation(),e.preventDefault(),c._hide(t)):(e.stopImmediatePropagation(),e.preventDefault(),c._show(i),t.add(t.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",(0,i.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(t){function e(){s.children("a:first").focus(),t.preventDefault()}function n(){r.children("a:first").focus(),t.preventDefault()}function o(){var e=u.children("ul.is-dropdown-submenu");e.length&&(c._show(e),u.find("li > a:first").focus(),t.preventDefault())}function i(){var e=u.parent("ul").parent("li");e.children("a:first").focus(),c._hide(e),t.preventDefault()}var r,s,u=f()(t.target).parentsUntil("ul",'[role="none"]'),a=-1<c.$tabs.index(u),d=a?c.$tabs:u.siblings("li").add(u),l=(d.each(function(e){f()(this).is(u)&&(r=d.eq(e-1),s=d.eq(e+1))}),{open:o,close:function(){c._hide(c.$element),c.$menuItems.eq(0).children("a").focus(),t.preventDefault()}});a?c._isVertical()?c._isRtl()?f().extend(l,{down:e,up:n,next:i,previous:o}):f().extend(l,{down:e,up:n,next:o,previous:i}):c._isRtl()?f().extend(l,{next:n,previous:e,down:o,up:i}):f().extend(l,{next:e,previous:n,down:o,up:i}):c._isRtl()?f().extend(l,{next:i,previous:o,down:e,up:n}):f().extend(l,{next:o,previous:i,down:e,up:n}),p.Keyboard.handleKey(t,"DropdownMenu",l)})}},{key:"_addBodyHandler",value:function(){var t=this,e=f()(document.body);this._removeBodyHandler(),e.on("click.zf.dropdownMenu tap.zf.dropdownMenu",function(e){!f()(e.target).closest(t.$element).length&&(t._hide(),t._removeBodyHandler())})}},{key:"_removeBodyHandler",value:function(){f()(document.body).off("click.zf.dropdownMenu tap.zf.dropdownMenu")}},{key:"_show",value:function(n){var e=this.$tabs.index(this.$tabs.filter(function(e,t){return 0<f()(t).find(n).length})),t=n.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent");this._hide(t,e),n.css("visibility","hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active"),s.Box.ImNotTouchingYou(n,null,!0)||(t="left"===this.options.alignment?"-right":"-left",(e=n.parent(".is-dropdown-submenu-parent")).removeClass("opens".concat(t)).addClass("opens-".concat(this.options.alignment)),s.Box.ImNotTouchingYou(n,null,!0)||e.removeClass("opens-".concat(this.options.alignment)).addClass("opens-inner"),this.changed=!0),n.css("visibility",""),this.options.closeOnClick&&this._addBodyHandler(),this.$element.trigger("show.zf.dropdownMenu",[n])}},{key:"_hide",value:function(e,t){var n,o,e=e&&e.length?e:void 0!==t?this.$tabs.not(function(e){return e===t}):this.$element;(e.hasClass("is-active")||0<e.find(".is-active").length)&&((n=e.find("li.is-active")).add(e).attr({"data-is-click":!1}).removeClass("is-active"),e.find("ul.js-dropdown-active").removeClass("js-dropdown-active"),(this.changed||e.find("opens-inner").length)&&(o="left"===this.options.alignment?"right":"left",e.find("li.is-dropdown-submenu-parent").add(e).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(o)),this.changed=!1),clearTimeout(n.data("_delay")),this._removeBodyHandler(),this.$element.trigger("hide.zf.dropdownMenu",[e]))}},{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(o.prototype,e),t&&d(o,t),Object.defineProperty(o,"prototype",{writable:!1}),o})(i.Plugin);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}},"./foundation.core":function(e){e.exports=t},"./foundation.util.box":function(e){e.exports=r},"./foundation.util.keyboard":function(e){e.exports=o},"./foundation.util.nest":function(e){e.exports=i},"./foundation.util.touch":function(e){e.exports=s},jquery:function(e){e.exports=n}},d={},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},u.d=function(e,t){for(var n in t)u.o(t,n)&&!u.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c={},(u.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(c),u.d(c,{DropdownMenu:function(){return l.DropdownMenu},Foundation:function(){return e.Foundation}}),e=u("./foundation.core"),l=u("./js/foundation.dropdownMenu.js"),e.Foundation.plugin(l.DropdownMenu,"DropdownMenu"),c;function u(e){var t=d[e];return void 0!==t||(t=d[e]={exports:{}},a[e](t,t.exports,u)),t.exports}var a,d,e,l,c});
//# sourceMappingURL=foundation.dropdownMenu.min.js.map