!function (t, e) { if ("object" == typeof exports && "object" == typeof module) module.exports = e(); else if ("function" == typeof define && define.amd) define([], e); else { var n = e(); for (var i in n) ("object" == typeof exports ? exports : t)[i] = n[i] } }(self, (function () { return function () { "use strict"; var t = { d: function (e, n) { for (var i in n) t.o(n, i) && !t.o(e, i) && Object.defineProperty(e, i, {enumerable: !0, get: n[i]}) }, o: function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, r: function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0}) } }, e = {}; function n(t) { return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, n(t) } function i(t, e) { for (var n = 0; n < e.length; n++) { var i = e[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, o(i.key), i) } } function o(t) { var e = function (t, e) { if ("object" != n(t) || !t) return t; var i = t[Symbol.toPrimitive]; if (void 0 !== i) { var o = i.call(t, "string"); if ("object" != n(o)) return o; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(t) }(t); return "symbol" == n(e) ? e : String(e) } t.r(e), t.d(e, { MegaDropdown: function () { return s } }); var s = function () { function t(e) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, t), this._onHover = "hover" === n.trigger || "hover" === e.getAttribute("data-trigger"), this._container = t._findParent(e, "mega-dropdown"), this._container && (this._menu = this._container.querySelector(".dropdown-toggle ~ .dropdown-menu"), this._menu && (e.setAttribute("aria-expanded", "false"), this._el = e, this._bindEvents())) } var e, n, o; return e = t, o = [{ key: "_findParent", value: function (t, e) { if ("BODY" === t.tagName.toUpperCase()) return null; for (t = t.parentNode; "BODY" !== t.tagName.toUpperCase() && !t.classList.contains(e);) t = t.parentNode; return "BODY" !== t.tagName.toUpperCase() ? t : null } }], (n = [{ key: "open", value: function () { this._timeout && (clearTimeout(this._timeout), this._timeout = null), this._focusTimeout && (clearTimeout(this._focusTimeout), this._focusTimeout = null), "true" !== this._el.getAttribute("aria-expanded") && (this._triggerEvent("show"), this._container.classList.add("show"), this._menu.classList.add("show"), this._el.setAttribute("aria-expanded", "true"), this._el.focus(), this._triggerEvent("shown")) } }, { key: "close", value: function (t) { var e = this; this._timeout && (clearTimeout(this._timeout), this._timeout = null), this._focusTimeout && (clearTimeout(this._focusTimeout), this._focusTimeout = null), this._onHover && !t ? this._timeout = setTimeout((function () { e._timeout && (clearTimeout(e._timeout), e._timeout = null), e._close() }), 150) : this._close() } }, { key: "toggle", value: function () { "true" === this._el.getAttribute("aria-expanded") ? this.close(!0) : this.open() } }, { key: "destroy", value: function () { this._unbindEvents(), this._el = null, this._timeout && (clearTimeout(this._timeout), this._timeout = null), this._focusTimeout && (clearTimeout(this._focusTimeout), this._focusTimeout = null) } }, { key: "_close", value: function () { "true" === this._el.getAttribute("aria-expanded") && (this._triggerEvent("hide"), this._container.classList.remove("show"), this._menu.classList.remove("show"), this._el.setAttribute("aria-expanded", "false"), this._triggerEvent("hidden")) } }, { key: "_bindEvents", value: function () { var e = this; this._elClickEvnt = function (t) { t.preventDefault(), e.toggle() }, this._el.addEventListener("click", this._elClickEvnt), this._bodyClickEvnt = function (t) { !e._container.contains(t.target) && e._container.classList.contains("show") && e.close(!0) }, document.body.addEventListener("click", this._bodyClickEvnt, !0), this._menuClickEvnt = function (t) { t.target.classList.contains("mega-dropdown-link") && e.close(!0) }, this._menu.addEventListener("click", this._menuClickEvnt, !0), this._focusoutEvnt = function () { e._focusTimeout && (clearTimeout(e._focusTimeout), e._focusTimeout = null), "true" === e._el.getAttribute("aria-expanded") && (e._focusTimeout = setTimeout((function () { "BODY" !== document.activeElement.tagName.toUpperCase() && t._findParent(document.activeElement, "mega-dropdown") !== e._container && e.close(!0) }), 100)) }, this._container.addEventListener("focusout", this._focusoutEvnt, !0), this._onHover && (this._enterEvnt = function () { "static" !== window.getComputedStyle(e._menu, null).getPropertyValue("position") && e.open() }, this._leaveEvnt = function () { "static" !== window.getComputedStyle(e._menu, null).getPropertyValue("position") && e.close() }, this._el.addEventListener("mouseenter", this._enterEvnt), this._menu.addEventListener("mouseenter", this._enterEvnt), this._el.addEventListener("mouseleave", this._leaveEvnt), this._menu.addEventListener("mouseleave", this._leaveEvnt)) } }, { key: "_unbindEvents", value: function () { this._elClickEvnt && (this._el.removeEventListener("click", this._elClickEvnt), this._elClickEvnt = null), this._bodyClickEvnt && (document.body.removeEventListener("click", this._bodyClickEvnt, !0), this._bodyClickEvnt = null), this._menuClickEvnt && (this._menu.removeEventListener("click", this._menuClickEvnt, !0), this._menuClickEvnt = null), this._focusoutEvnt && (this._container.removeEventListener("focusout", this._focusoutEvnt, !0), this._focusoutEvnt = null), this._enterEvnt && (this._el.removeEventListener("mouseenter", this._enterEvnt), this._menu.removeEventListener("mouseenter", this._enterEvnt), this._enterEvnt = null), this._leaveEvnt && (this._el.removeEventListener("mouseleave", this._leaveEvnt), this._menu.removeEventListener("mouseleave", this._leaveEvnt), this._leaveEvnt = null) } }, { key: "_triggerEvent", value: function (t) { var e; document.createEvent ? ("function" == typeof Event ? e = new Event(t) : (e = document.createEvent("Event")).initEvent(t, !1, !0), this._container.dispatchEvent(e)) : this._container.fireEvent("on".concat(t), document.createEventObject()) } }]) && i(e.prototype, n), o && i(e, o), Object.defineProperty(e, "prototype", {writable: !1}), t }(); return window.MegaDropdown = s, e }() }));