framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 1.66 kB
JavaScript
(function framework7ComponentLoader(e,n){void 0===n&&(n=!0);var o=e.$,t=e.utils,s=(e.getDevice,e.getSupport,e.Class,e.Modal,e.ConstructorMethods,e.ModalMethods,e.$jsx,t.bindMethods);const d={open(e){void 0===e&&(e=".menu-item-dropdown");if(!e)return;const n=o(e).closest(".menu-item-dropdown");if(!n.length)return;const t=n.closest(".menu").eq(0);if(t.length){const e=t.css("z-index"),n=t[0].style.zIndex;t.css("z-index",parseInt(e||0,10)+1),t[0].f7MenuZIndex=n}n.eq(0).addClass("menu-item-dropdown-opened").trigger("menu:opened"),this.emit("menuOpened",n.eq(0)[0])},close(e){void 0===e&&(e=".menu-item-dropdown-opened");if(!e)return;const n=o(e).closest(".menu-item-dropdown-opened");if(!n.length)return;const t=n.closest(".menu").eq(0);if(t.length){const e=t[0].f7MenuZIndex;t.css("z-index",e),delete t[0].f7MenuZIndex}n.eq(0).removeClass("menu-item-dropdown-opened").trigger("menu:closed"),this.emit("menuClosed",n.eq(0)[0])}};var i={name:"menu",create(){s(this,{menu:d})},on:{click(e){const n=this,t=o(".menu-item-dropdown-opened");t.length&&t.each((t=>{o(e.target).closest(".menu-item-dropdown-opened").length||n.menu.close(t)}))}},clicks:{".menu-item-dropdown":function(e,n,t){const s=this;if(e.hasClass("menu-item-dropdown-opened")){if(o(t.target).closest(".menu-dropdown").length)return;s.menu.close(e)}else s.menu.open(e)},".menu-close":function(){this.menu.close()}}};if(n){if(e.prototype.modules&&e.prototype.modules[i.name])return;e.use(i),e.instance&&(e.instance.useModuleParams(i,e.instance.params),e.instance.useModule(i))}return i}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))