!function (e, t) {
  if ("object" == typeof exports && "object" == typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else {
    var n = t();
    for (var i in n) ("object" == typeof exports ? exports : e)[i] = n[i]
  }
}(self, (function () {
  return function () {
    "use strict";
    var e = {
      d: function (t, n) {
        for (var i in n) e.o(n, i) && !e.o(t, i) && Object.defineProperty(t, i, {enumerable: !0, get: n[i]})
      }, o: function (e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
      }, r: function (e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e, "__esModule", {value: !0})
      }
    }, t = {};

    function n(e) {
      return n = "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
      }, n(e)
    }

    function i(e) {
      return function (e) {
        if (Array.isArray(e)) return o(e)
      }(e) || function (e) {
        if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e)
      }(e) || function (e, t) {
        if (e) {
          if ("string" == typeof e) return o(e, t);
          var n = Object.prototype.toString.call(e).slice(8, -1);
          return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? o(e, t) : void 0
        }
      }(e) || function () {
        throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
      }()
    }

    function o(e, t) {
      (null == t || t > e.length) && (t = e.length);
      for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
      return i
    }

    function r(e, t) {
      for (var n = 0; n < t.length; n++) {
        var i = t[n];
        i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, s(i.key), i)
      }
    }

    function s(e) {
      var t = function (e, t) {
        if ("object" != n(e) || !e) return e;
        var i = e[Symbol.toPrimitive];
        if (void 0 !== i) {
          var o = i.call(e, "string");
          if ("object" != n(o)) return o;
          throw new TypeError("@@toPrimitive must return a primitive value.")
        }
        return String(e)
      }(e);
      return "symbol" == n(t) ? t : String(t)
    }

    e.r(t), e.d(t, {
      Menu: function () {
        return a
      }
    });
    var l = ["transitionend", "webkitTransitionEnd", "oTransitionEnd"], a = function () {
      function e(t) {
        var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
            i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
        if (function (e, t) {
          if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
        }(this, e), this._el = t, this._horizontal = "horizontal" === n.orientation, this._animate = !1 !== n.animate, this._accordion = !1 !== n.accordion, this._showDropdownOnHover = Boolean(n.showDropdownOnHover), this._closeChildren = Boolean(n.closeChildren), this._rtl = "rtl" === document.documentElement.getAttribute("dir") || "rtl" === document.body.getAttribute("dir"), this._onOpen = n.onOpen || function () {
        }, this._onOpened = n.onOpened || function () {
        }, this._onClose = n.onClose || function () {
        }, this._onClosed = n.onClosed || function () {
        }, this._psScroll = null, this._topParent = null, this._menuBgClass = null, t.classList.add("menu"), t.classList[this._animate ? "remove" : "add"]("menu-no-animation"), this._horizontal) {
          t.classList.add("menu-horizontal"), t.classList.remove("menu-vertical"), this._inner = t.querySelector(".menu-inner");
          var o = this._inner.parentNode;
          this._prevBtn = t.querySelector(".menu-horizontal-prev"), this._prevBtn || (this._prevBtn = document.createElement("a"), this._prevBtn.href = "#", this._prevBtn.className = "menu-horizontal-prev", o.appendChild(this._prevBtn)), this._wrapper = t.querySelector(".menu-horizontal-wrapper"), this._wrapper || (this._wrapper = document.createElement("div"), this._wrapper.className = "menu-horizontal-wrapper", this._wrapper.appendChild(this._inner), o.appendChild(this._wrapper)), this._nextBtn = t.querySelector(".menu-horizontal-next"), this._nextBtn || (this._nextBtn = document.createElement("a"), this._nextBtn.href = "#", this._nextBtn.className = "menu-horizontal-next", o.appendChild(this._nextBtn)), this._innerPosition = 0, this.update()
        } else {
          t.classList.add("menu-vertical"), t.classList.remove("menu-horizontal");
          var r = i || window.PerfectScrollbar;
          r ? (this._scrollbar = new r(t.querySelector(".menu-inner"), {
            suppressScrollX: !0,
            wheelPropagation: !e._hasClass("layout-menu-fixed layout-menu-fixed-offcanvas")
          }), window.Helpers.menuPsScroll = this._scrollbar) : t.querySelector(".menu-inner").classList.add("overflow-auto")
        }
        for (var s = t.classList, l = 0; l < s.length; l++) s[l].startsWith("bg-") && (this._menuBgClass = s[l]);
        t.setAttribute("data-bg-class", this._menuBgClass), this._horizontal && window.innerWidth < window.Helpers.LAYOUT_BREAKPOINT && this.switchMenu("vertical"), this._bindEvents(), t.menuInstance = this
      }

      var t, n, o;
      return t = e, n = [{
        key: "_bindEvents", value: function () {
          var t = this;
          this._evntElClick = function (n) {
            if (n.target.closest("ul") && n.target.closest("ul").classList.contains("menu-inner")) {
              var i = e._findParent(n.target, "menu-item", !1);
              i && (t._topParent = i.childNodes[0])
            }
            var o = n.target.classList.contains("menu-toggle") ? n.target : e._findParent(n.target, "menu-toggle", !1);
            o && (n.preventDefault(), "true" !== o.getAttribute("data-hover") && t.toggle(o))
          }, (!this._showDropdownOnHover && this._horizontal || !this._horizontal || window.Helpers.isMobileDevice) && this._el.addEventListener("click", this._evntElClick), this._evntWindowResize = function () {
            t.update(), t._lastWidth !== window.innerWidth && (t._lastWidth = window.innerWidth, t.update());
            var e = document.querySelector("[data-template^='horizontal-menu']");
            t._horizontal || e || t.manageScroll()
          }, window.addEventListener("resize", this._evntWindowResize), this._horizontal && (this._evntPrevBtnClick = function (e) {
            e.preventDefault(), t._prevBtn.classList.contains("disabled") || t._slide("prev")
          }, this._prevBtn.addEventListener("click", this._evntPrevBtnClick), this._evntNextBtnClick = function (e) {
            e.preventDefault(), t._nextBtn.classList.contains("disabled") || t._slide("next")
          }, this._nextBtn.addEventListener("click", this._evntNextBtnClick), this._evntBodyClick = function (e) {
            !t._inner.contains(e.target) && t._el.querySelectorAll(".menu-inner > .menu-item.open").length && t.closeAll()
          }, document.body.addEventListener("click", this._evntBodyClick), this._showDropdownOnHover && (this._evntElMouseOver = function (e) {
            if (e.target !== e.currentTarget && !e.target.parentNode.classList.contains("open")) {
              var n = e.target.classList.contains("menu-toggle") ? e.target : null;
              n && (e.preventDefault(), "true" !== n.getAttribute("data-hover") && t.toggle(n))
            }
            e.stopPropagation()
          }, this._horizontal && window.screen.width > window.Helpers.LAYOUT_BREAKPOINT && this._el.addEventListener("mouseover", this._evntElMouseOver), this._evntElMouseOut = function (n) {
            var i = n.currentTarget, o = n.target, r = n.toElement || n.relatedTarget;
            if (o.closest("ul") && o.closest("ul").classList.contains("menu-inner") && (t._topParent = o), o !== i && (o.parentNode.classList.contains("open") || !o.classList.contains("menu-toggle")) && r && r.parentNode && !r.parentNode.classList.contains("menu-link")) {
              if (t._topParent && !e.childOf(r, t._topParent.parentNode)) {
                var s = t._topParent.classList.contains("menu-toggle") ? t._topParent : null;
                s && (n.preventDefault(), "true" !== s.getAttribute("data-hover") && (t.toggle(s), t._topParent = null))
              }
              if (e.childOf(r, o.parentNode)) return;
              var l = o.classList.contains("menu-toggle") ? o : null;
              l && (n.preventDefault(), "true" !== l.getAttribute("data-hover") && t.toggle(l))
            }
            n.stopPropagation()
          }, this._horizontal && window.screen.width > window.Helpers.LAYOUT_BREAKPOINT && this._el.addEventListener("mouseout", this._evntElMouseOut)))
        }
      }, {
        key: "_unbindEvents", value: function () {
          this._evntElClick && (this._el.removeEventListener("click", this._evntElClick), this._evntElClick = null), this._evntElMouseOver && (this._el.removeEventListener("mouseover", this._evntElMouseOver), this._evntElMouseOver = null), this._evntElMouseOut && (this._el.removeEventListener("mouseout", this._evntElMouseOut), this._evntElMouseOut = null), this._evntWindowResize && (window.removeEventListener("resize", this._evntWindowResize), this._evntWindowResize = null), this._evntBodyClick && (document.body.removeEventListener("click", this._evntBodyClick), this._evntBodyClick = null), this._evntInnerMousemove && (this._inner.removeEventListener("mousemove", this._evntInnerMousemove), this._evntInnerMousemove = null), this._evntInnerMouseleave && (this._inner.removeEventListener("mouseleave", this._evntInnerMouseleave), this._evntInnerMouseleave = null)
        }
      }, {
        key: "open", value: function (t) {
          var n = this, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._closeChildren,
              o = this._findUnopenedParent(e._getItem(t, !0), i);
          if (o) {
            var r = e._getLink(o, !0);
            e._promisify(this._onOpen, this, o, r, e._findMenu(o)).then((function () {
              n._horizontal && e._isRoot(o) ? (n._toggleDropdown(!0, o, i), n._onOpened && n._onOpened(n, o, r, e._findMenu(o))) : n._animate && !n._horizontal ? (window.requestAnimationFrame((function () {
                return n._toggleAnimation(!0, o, !1)
              })), n._accordion && n._closeOther(o, i)) : n._animate ? (n._toggleDropdown(!0, o, i), n._onOpened && n._onOpened(n, o, r, e._findMenu(o))) : (o.classList.add("open"), n._onOpened && n._onOpened(n, o, r, e._findMenu(o)), n._accordion && n._closeOther(o, i))
            })).catch((function () {
            }))
          }
        }
      }, {
        key: "close", value: function (t) {
          var n = this, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._closeChildren,
              o = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r = e._getItem(t, !0), s = e._getLink(t, !0);
          r.classList.contains("open") && !r.classList.contains("disabled") && e._promisify(this._onClose, this, r, s, e._findMenu(r), o).then((function () {
            if (n._horizontal && e._isRoot(r)) n._toggleDropdown(!1, r, i), n._onClosed && n._onClosed(n, r, s, e._findMenu(r)); else if (n._animate && !n._horizontal) window.requestAnimationFrame((function () {
              return n._toggleAnimation(!1, r, i)
            })); else {
              if (r.classList.remove("open"), i) for (var t = r.querySelectorAll(".menu-item.open"), o = 0, l = t.length; o < l; o++) t[o].classList.remove("open");
              n._onClosed && n._onClosed(n, r, s, e._findMenu(r))
            }
          })).catch((function () {
          }))
        }
      }, {
        key: "_closeOther", value: function (t, n) {
          for (var i = e._findChild(t.parentNode, ["menu-item", "open"]), o = 0, r = i.length; o < r; o++) i[o] !== t && this.close(i[o], n)
        }
      }, {
        key: "toggle", value: function (t) {
          var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._closeChildren, i = e._getItem(t, !0);
          i.classList.contains("open") ? this.close(i, n) : this.open(i, n)
        }
      }, {
        key: "_toggleDropdown", value: function (t, n, i) {
          var o = e._findMenu(n), r = n, s = !1;
          if (t) {
            e._findParent(n, "menu-sub", !1) && (s = !0, n = this._topParent ? this._topParent.parentNode : n);
            var l = Math.round(this._wrapper.getBoundingClientRect().width), a = this._innerPosition, u = this._getItemOffset(n),
                c = Math.round(n.getBoundingClientRect().width);
            u - 5 <= -1 * a ? this._innerPosition = -1 * u : u + a + c + 5 >= l && (this._innerPosition = c > l ? -1 * u : -1 * (u + c - l)), r.classList.add("open");
            var d = Math.round(o.getBoundingClientRect().width);
            s ? u + this._innerPosition + 2 * d > l && d < l && d >= c && (o.style.left = [this._rtl ? "100%" : "-100%"]) : u + this._innerPosition + d > l && d < l && d > c && (o.style[this._rtl ? "marginRight" : "marginLeft"] = "-".concat(d - c, "px")), this._closeOther(r, i), this._updateSlider()
          } else {
            var h = e._findChild(n, ["menu-toggle"]);
            if (h.length && h[0].removeAttribute("data-hover", "true"), n.classList.remove("open"), o.style[this._rtl ? "marginRight" : "marginLeft"] = null, i) for (var _ = o.querySelectorAll(".menu-item.open"), v = 0, m = _.length; v < m; v++) _[v].classList.remove("open")
          }
        }
      }, {
        key: "_slide", value: function (e) {
          var t, n = Math.round(this._wrapper.getBoundingClientRect().width), i = this._innerWidth;
          "next" === e ? i + (t = this._getSlideNextPos()) < n && (t = n - i) : (t = this._getSlidePrevPos()) > 0 && (t = 0), this._innerPosition = t, this.update()
        }
      }, {
        key: "_getSlideNextPos", value: function () {
          for (var e = Math.round(this._wrapper.getBoundingClientRect().width), t = this._innerPosition, n = this._inner.childNodes[0], i = 0; n;) {
            if (n.tagName) {
              var o = Math.round(n.getBoundingClientRect().width);
              if (i + t - 5 <= e && i + t + o + 5 >= e) {
                o > e && i === -1 * t && (i += o);
                break
              }
              i += o
            }
            n = n.nextSibling
          }
          return -1 * i
        }
      }, {
        key: "_getSlidePrevPos", value: function () {
          for (var e = Math.round(this._wrapper.getBoundingClientRect().width), t = this._innerPosition, n = this._inner.childNodes[0], i = 0; n;) {
            if (n.tagName) {
              var o = Math.round(n.getBoundingClientRect().width);
              if (i - 5 <= -1 * t && i + o + 5 >= -1 * t) {
                o <= e && (i = i + o - e);
                break
              }
              i += o
            }
            n = n.nextSibling
          }
          return -1 * i
        }
      }, {
        key: "_findUnopenedParent", value: function (t, n) {
          for (var i = [], o = null; t;) t.classList.contains("disabled") ? (o = null, i = []) : (t.classList.contains("open") || (o = t), i.push(t)), t = e._findParent(t, "menu-item", !1);
          if (!o) return null;
          if (1 === i.length) return o;
          for (var r = 0, s = (i = i.slice(0, i.indexOf(o))).length; r < s; r++) if (i[r].classList.add("open"), this._accordion) for (var l = e._findChild(i[r].parentNode, ["menu-item", "open"]), a = 0, u = l.length; a < u; a++) if (l[a] !== i[r] && (l[a].classList.remove("open"), n)) for (var c = l[a].querySelectorAll(".menu-item.open"), d = 0, h = c.length; d < h; d++) c[d].classList.remove("open");
          return o
        }
      }, {
        key: "_toggleAnimation", value: function (t, n, i) {
          var o = this, r = e._getLink(n, !0), s = e._findMenu(n);
          e._unbindAnimationEndEvent(n);
          var l = Math.round(r.getBoundingClientRect().height);
          n.style.overflow = "hidden";
          var a = function () {
            n.classList.remove("menu-item-animating"), n.classList.remove("menu-item-closing"), n.style.overflow = null, n.style.height = null, o._horizontal || o.update()
          };
          t ? (n.style.height = "".concat(l, "px"), n.classList.add("menu-item-animating"), n.classList.add("open"), e._bindAnimationEndEvent(n, (function () {
            a(), o._onOpened(o, n, r, s)
          })), setTimeout((function () {
            n.style.height = "".concat(l + Math.round(s.getBoundingClientRect().height), "px")
          }), 50)) : (n.style.height = "".concat(l + Math.round(s.getBoundingClientRect().height), "px"), n.classList.add("menu-item-animating"), n.classList.add("menu-item-closing"), e._bindAnimationEndEvent(n, (function () {
            if (n.classList.remove("open"), a(), i) for (var e = n.querySelectorAll(".menu-item.open"), t = 0, l = e.length; t < l; t++) e[t].classList.remove("open");
            o._onClosed(o, n, r, s)
          })), setTimeout((function () {
            n.style.height = "".concat(l, "px")
          }), 50))
        }
      }, {
        key: "_getItemOffset", value: function (e) {
          for (var t = this._inner.childNodes[0], n = 0; t !== e;) t.tagName && (n += Math.round(t.getBoundingClientRect().width)), t = t.nextSibling;
          return n
        }
      }, {
        key: "_updateSlider", value: function () {
          var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,
              t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
              n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,
              i = null !== e ? e : Math.round(this._wrapper.getBoundingClientRect().width), o = null !== t ? t : this._innerWidth,
              r = null !== n ? n : this._innerPosition;
          o < i || window.innerWidth < window.Helpers.LAYOUT_BREAKPOINT ? (this._prevBtn.classList.add("d-none"), this._nextBtn.classList.add("d-none")) : (this._prevBtn.classList.remove("d-none"), this._nextBtn.classList.remove("d-none")), o > i && window.innerWidth > window.Helpers.LAYOUT_BREAKPOINT && (0 === r ? this._prevBtn.classList.add("disabled") : this._prevBtn.classList.remove("disabled"), o + r <= i ? this._nextBtn.classList.add("disabled") : this._nextBtn.classList.remove("disabled"))
        }
      }, {
        key: "_innerWidth", get: function () {
          for (var e = this._inner.childNodes, t = 0, n = 0, i = e.length; n < i; n++) e[n].tagName && (t += Math.round(e[n].getBoundingClientRect().width));
          return t
        }
      }, {
        key: "_innerPosition", get: function () {
          return parseInt(this._inner.style[this._rtl ? "marginRight" : "marginLeft"] || "0px", 10)
        }, set: function (e) {
          return this._inner.style[this._rtl ? "marginRight" : "marginLeft"] = "".concat(e, "px"), e
        }
      }, {
        key: "closeAll", value: function () {
          for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._closeChildren, t = this._el.querySelectorAll(".menu-inner > .menu-item.open"), n = 0, i = t.length; n < i; n++) this.close(t[n], e)
        }
      }, {
        key: "update", value: function () {
          if (this._horizontal) {
            this.closeAll();
            var e = Math.round(this._wrapper.getBoundingClientRect().width), t = this._innerWidth, n = this._innerPosition;
            e - n > t && ((n = e - t) > 0 && (n = 0), this._innerPosition = n), this._updateSlider(e, t, n)
          } else this._scrollbar && this._scrollbar.update()
        }
      }, {
        key: "manageScroll", value: function () {
          var e = window.PerfectScrollbar, t = document.querySelector(".menu-inner");
          if (window.innerWidth < window.Helpers.LAYOUT_BREAKPOINT) null !== this._scrollbar && (this._scrollbar.destroy(), this._scrollbar = null), t.classList.add("overflow-auto"); else {
            if (null === this._scrollbar) {
              var n = new e(document.querySelector(".menu-inner"), {suppressScrollX: !0, wheelPropagation: !1});
              this._scrollbar = n
            }
            t.classList.remove("overflow-auto")
          }
        }
      }, {
        key: "switchMenu", value: function (e) {
          this._unbindEvents();
          var t = document.querySelector("nav.layout-navbar"), n = document.querySelector("#navbar-collapse"),
              o = document.querySelector("#layout-menu div"), r = document.querySelector("#layout-menu"),
              s = document.querySelector(".menu-horizontal-wrapper"), l = document.querySelector(".menu-inner"),
              a = document.querySelector(".app-brand"), u = document.querySelector(".layout-menu-toggle"),
              c = document.querySelectorAll(".menu-inner .active");
          if ("vertical" === e) {
            var d, h;
            this._horizontal = !1, o.insertBefore(a, s), o.insertBefore(l, s), o.classList.add("flex-column", "p-0"), (d = r.classList).remove.apply(d, i(r.classList)), (h = r.classList).add.apply(h, ["layout-menu", "menu", "menu-vertical"].concat([this._menuBgClass])), a.classList.remove("d-none", "d-lg-flex"), u.classList.remove("d-none"), l.classList.add("overflow-auto");
            for (var _ = 0; _ < c.length - 1; ++_) c[_].classList.add("open")
          } else {
            var v, m;
            this._horizontal = !0, t.children[0].insertBefore(a, n), a.classList.add("d-none", "d-lg-flex"), s.appendChild(l), o.classList.remove("flex-column", "p-0"), (v = r.classList).remove.apply(v, i(r.classList)), (m = r.classList).add.apply(m, ["layout-menu-horizontal", "menu", "menu-horizontal", "container-fluid", "flex-grow-0"].concat([this._menuBgClass])), u.classList.add("d-none"), l.classList.remove("overflow-auto");
            for (var f = 0; f < c.length; ++f) c[f].classList.remove("open")
          }
          this._bindEvents()
        }
      }, {
        key: "destroy", value: function () {
          if (this._el) {
            this._unbindEvents();
            for (var t = this._el.querySelectorAll(".menu-item"), n = 0, i = t.length; n < i; n++) e._unbindAnimationEndEvent(t[n]), t[n].classList.remove("menu-item-animating"), t[n].classList.remove("open"), t[n].style.overflow = null, t[n].style.height = null;
            for (var o = this._el.querySelectorAll(".menu-menu"), r = 0, s = o.length; r < s; r++) o[r].style.marginRight = null, o[r].style.marginLeft = null;
            this._el.classList.remove("menu-no-animation"), this._wrapper && (this._prevBtn.parentNode.removeChild(this._prevBtn), this._nextBtn.parentNode.removeChild(this._nextBtn), this._wrapper.parentNode.insertBefore(this._inner, this._wrapper), this._wrapper.parentNode.removeChild(this._wrapper), this._inner.style.marginLeft = null, this._inner.style.marginRight = null), this._el.menuInstance = null, delete this._el.menuInstance, this._el = null, this._horizontal = null, this._animate = null, this._accordion = null, this._showDropdownOnHover = null, this._closeChildren = null, this._rtl = null, this._onOpen = null, this._onOpened = null, this._onClose = null, this._onClosed = null, this._scrollbar && (this._scrollbar.destroy(), this._scrollbar = null), this._inner = null, this._prevBtn = null, this._wrapper = null, this._nextBtn = null
          }
        }
      }], o = [{
        key: "childOf", value: function (e, t) {
          if (e.parentNode) {
            for (; (e = e.parentNode) && e !== t;) ;
            return !!e
          }
          return !1
        }
      }, {
        key: "_isRoot", value: function (t) {
          return !e._findParent(t, "menu-item", !1)
        }
      }, {
        key: "_findParent", value: function (e, t) {
          var n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
          if ("BODY" === e.tagName.toUpperCase()) return null;
          for (e = e.parentNode; "BODY" !== e.tagName.toUpperCase() && !e.classList.contains(t);) e = e.parentNode;
          if (!(e = "BODY" !== e.tagName.toUpperCase() ? e : null) && n) throw new Error("Cannot find `.".concat(t, "` parent element"));
          return e
        }
      }, {
        key: "_findChild", value: function (e, t) {
          for (var n = e.childNodes, i = [], o = 0, r = n.length; o < r; o++) if (n[o].classList) {
            for (var s = 0, l = 0; l < t.length; l++) n[o].classList.contains(t[l]) && (s += 1);
            t.length === s && i.push(n[o])
          }
          return i
        }
      }, {
        key: "_findMenu", value: function (e) {
          for (var t = e.childNodes[0], n = null; t && !n;) t.classList && t.classList.contains("menu-sub") && (n = t), t = t.nextSibling;
          if (!n) throw new Error("Cannot find `.menu-sub` element for the current `.menu-toggle`");
          return n
        }
      }, {
        key: "_hasClass", value: function (e) {
          var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : window.Helpers.ROOT_EL, n = !1;
          return e.split(" ").forEach((function (e) {
            t.classList.contains(e) && (n = !0)
          })), n
        }
      }, {
        key: "_getItem", value: function (t, n) {
          var i = null, o = n ? "menu-toggle" : "menu-link";
          if (t.classList.contains("menu-item") ? e._findChild(t, [o]).length && (i = t) : t.classList.contains(o) && (i = t.parentNode.classList.contains("menu-item") ? t.parentNode : null), !i) throw new Error("".concat(n ? "Toggable " : "", "`.menu-item` element not found."));
          return i
        }
      }, {
        key: "_getLink", value: function (t, n) {
          var i = [], o = n ? "menu-toggle" : "menu-link";
          if (t.classList.contains(o) ? i = [t] : t.classList.contains("menu-item") && (i = e._findChild(t, [o])), !i.length) throw new Error("`".concat(o, "` element not found."));
          return i[0]
        }
      }, {
        key: "_bindAnimationEndEvent", value: function (t, n) {
          var i = function (i) {
            i.target === t && (e._unbindAnimationEndEvent(t), n(i))
          }, o = window.getComputedStyle(t).transitionDuration;
          o = parseFloat(o) * (-1 !== o.indexOf("ms") ? 1 : 1e3), t._menuAnimationEndEventCb = i, l.forEach((function (e) {
            return t.addEventListener(e, t._menuAnimationEndEventCb, !1)
          })), t._menuAnimationEndEventTimeout = setTimeout((function () {
            i({target: t})
          }), o + 50)
        }
      }, {
        key: "_promisify", value: function (e) {
          for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i];
          var o = e.apply(void 0, n);
          return o instanceof Promise ? o : !1 === o ? Promise.reject() : Promise.resolve()
        }
      }, {
        key: "_unbindAnimationEndEvent", value: function (e) {
          var t = e._menuAnimationEndEventCb;
          e._menuAnimationEndEventTimeout && (clearTimeout(e._menuAnimationEndEventTimeout), e._menuAnimationEndEventTimeout = null), t && (l.forEach((function (n) {
            return e.removeEventListener(n, t, !1)
          })), e._menuAnimationEndEventCb = null)
        }
      }, {
        key: "setDisabled", value: function (t, n) {
          e._getItem(t, !1).classList[n ? "add" : "remove"]("disabled")
        }
      }, {
        key: "isActive", value: function (t) {
          return e._getItem(t, !1).classList.contains("active")
        }
      }, {
        key: "isOpened", value: function (t) {
          return e._getItem(t, !1).classList.contains("open")
        }
      }, {
        key: "isDisabled", value: function (t) {
          return e._getItem(t, !1).classList.contains("disabled")
        }
      }], n && r(t.prototype, n), o && r(t, o), Object.defineProperty(t, "prototype", {writable: !1}), e
    }();
    return window.Menu = a, t
  }()
}));