{"version":3,"file":"iatec-metronic.mjs","sources":["../../../projects/iatec-metronic/src/lib/kt/_utils/_ElementStyleUtil.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/_DataUtil.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/_TypesHelpers.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/_DOMEventHandlerUtil.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/ElementAnimateUtil.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/DomHelpers.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/EventHandlerUtil.ts","../../../projects/iatec-metronic/src/lib/kt/_utils/index.ts","../../../projects/iatec-metronic/src/lib/kt/components/_CookieComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_DrawerComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_ImageInputComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_ScrollComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_StepperComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_StickyComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_ToggleComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_PasswordMeterComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/_SwapperComponent.ts","../../../projects/iatec-metronic/src/lib/kt/components/MenuComponent.ts","../../../projects/iatec-metronic/src/lib/kt/layout/ThemeMode.ts","../../../projects/iatec-metronic/src/lib/layout/components/scripts-init/component/scripts-init.component.ts","../../../projects/iatec-metronic/src/lib/layout/components/scripts-init/iatec-metronic-script-init.module.ts","../../../projects/iatec-metronic/src/lib/layout/models/layout-footer.model.ts","../../../projects/iatec-metronic/src/lib/layout/models/layout-footer-terms.model.ts","../../../projects/iatec-metronic/src/lib/layout/models/layout-menu.model.ts","../../../projects/iatec-metronic/src/lib/layout/services/layout.service.ts","../../../projects/iatec-metronic/src/lib/partials/layout/avatar/component/avatar.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/avatar/component/avatar.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/avatar/iatec-metronic-avatar.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/quick-links-inner/models/my-apps.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/quick-links-inner/component/quick-links-inner.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/quick-links-inner/component/quick-links-inner.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/quick-links-inner/iatec-metronic-dropdown-quick-links-inner.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/user-inner/services/user-inner.service.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/user-inner/component/user-inner.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/user-inner/component/user-inner.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/user-inner/models/user.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/user-inner/models/contract.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/user-inner/iatec-metronic-dropdown-user-inner.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/theme-mode-switcher/services/theme-mode.service.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/theme-mode-switcher/component/theme-mode-switcher.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/theme-mode-switcher/component/theme-mode-switcher.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/theme-mode-switcher/iatec-metronic-dropdown-theme-mode.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/languages/component/languages.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/languages/component/languages.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/dropdown-inner/languages/iatec-metronic-dropdown-languages.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/drawer-inner/notifications/component/notifications.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/drawer-inner/notifications/component/notifications.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/drawer-inner/notifications/iatec-metronic-drawer-notifications.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/environment-highlight/component/environment-highlight.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/environment-highlight/component/environment-highlight.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/environment-highlight/iatec-metronic-environment-highlight.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/modals/forms/default/component/default.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/modals/forms/default/component/default.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/modals/forms/default/iatec-metronic-default-form-modal.module.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/models/policy-version.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/models/acceptance-policy-person-model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/models/acceptance.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/models/additional-acceptance-policy-item.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/models/user-ip-address.model.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/services/acceptance.service.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/services/contracts.service.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/enums/policy-type.enum.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/enums/additional-policy-data-type.enum.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/components/modals/services/modals.service.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/components/modals/components/form/form.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/components/modals/components/form/form.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/components/modals/component/modals.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/components/modals/component/modals.component.html","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/component/contracts.component.ts","../../../projects/iatec-metronic/src/lib/partials/layout/contracts/iatec-metronic-contracts.module.ts","../../../projects/iatec-metronic/src/iatec-metronic.ts"],"sourcesContent":["export class ElementStyleUtil {\r\n  public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\r\n    if (important) {\r\n      element.style.setProperty(property, value, 'important')\r\n    } else {\r\n      element.style.setProperty(property, value)\r\n    }\r\n  }\r\n\r\n  public static get(element: HTMLElement, attributeName: string) {\r\n    return element.style.getPropertyValue(attributeName)\r\n  }\r\n\r\n  public static remove(element: HTMLElement, attibuteName: string) {\r\n    element.style.removeProperty(attibuteName)\r\n  }\r\n}\r\n","export class DataUtil {\r\n  static store: Map<HTMLElement, Map<string, unknown>> = new Map()\r\n\r\n  public static set(instance: HTMLElement | undefined, key: string, data: unknown): void {\r\n    if (!instance) {\r\n      return\r\n    }\r\n\r\n    const instanceData = DataUtil.store.get(instance)\r\n    if (!instanceData) {\r\n      const newMap = new Map().set(key, data)\r\n      DataUtil.store.set(instance, newMap)\r\n      return\r\n    }\r\n\r\n    instanceData.set(key, data)\r\n  }\r\n\r\n  public static get(instance: HTMLElement, key: string): unknown | undefined {\r\n    const instanceData = DataUtil.store.get(instance)\r\n    if (!instanceData) {\r\n      return\r\n    }\r\n\r\n    return instanceData.get(key)\r\n  }\r\n\r\n  public static remove(instance: HTMLElement, key: string): void {\r\n    const instanceData = DataUtil.store.get(instance)\r\n    if (!instanceData) {\r\n      return\r\n    }\r\n\r\n    instanceData.delete(key)\r\n  }\r\n\r\n  public static removeOne(instance: HTMLElement, key: string, eventId: string) {\r\n    const instanceData = DataUtil.store.get(instance)\r\n    if (!instanceData) {\r\n      return\r\n    }\r\n\r\n    const eventsIds = instanceData.get(key)\r\n    if (!eventsIds) {\r\n      return\r\n    }\r\n\r\n    const updateEventsIds = (eventsIds as string[]).filter((f) => f !== eventId)\r\n    DataUtil.set(instance, key, updateEventsIds)\r\n  }\r\n\r\n  public static has(instance: HTMLElement, key: string): boolean {\r\n    const instanceData = DataUtil.store.get(instance)\r\n    if (instanceData) {\r\n      return instanceData.has(key)\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  public static getAllInstancesByKey(key: string) {\r\n    const result: any[] = []\r\n    DataUtil.store.forEach((val) => {\r\n      val.forEach((v, k) => {\r\n        if (k === key) {\r\n          result.push(v)\r\n        }\r\n      })\r\n    })\r\n    return result\r\n  }\r\n}\r\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\r\n  const map = new Map(Object.entries(obj))\r\n  if (obj.hasOwnProperty(key) && map) {\r\n    return map.get(key)\r\n  }\r\n}\r\n\r\n/**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\r\n  const result = Math.floor(Math.random() * new Date().getTime()).toString()\r\n  if (!prefix) {\r\n    return result\r\n  }\r\n\r\n  return `${prefix}${result}`\r\n}\r\n\r\n/* eslint-disable no-useless-escape */\r\nfunction stringSnakeToCamel(str: string): string {\r\n  return str.replace(/(\\-\\w)/g, function (m) {\r\n    return m[1].toUpperCase()\r\n  })\r\n}\r\n\r\nfunction toJSON(value: string | JSON): JSON | undefined {\r\n  if (typeof value !== 'string') {\r\n    return value\r\n  }\r\n\r\n  if (!value) {\r\n    return undefined\r\n  }\r\n\r\n  // (\"'\" => \"\\\"\");\r\n  const result = value\r\n    .toString()\r\n    .split('')\r\n    .map((el) => (el !== \"'\" ? el : '\"'))\r\n    .join('')\r\n  var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\r\n    return '\"' + matched.substring(0, matched.length - 1) + '\":'\r\n  })\r\n  try {\r\n    return JSON.parse(jsonStr)\r\n  } catch {\r\n    return undefined\r\n  }\r\n}\r\n\r\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\r\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport class DOMEventHandlerUtil {\r\n  public static store = new Map()\r\n\r\n  public static on(\r\n    element: HTMLElement,\r\n    selector: string,\r\n    eventName: string,\r\n    callBack: any\r\n  ): string {\r\n    const eventId = getUniqueIdWithPrefix('DOMEvent')\r\n    DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\r\n      const targets = element.querySelectorAll(selector)\r\n      let target: HTMLElement | null = e.target as HTMLElement\r\n      while (target && target !== element) {\r\n        for (let i = 0; i < targets.length; i++) {\r\n          if (target === targets[i]) {\r\n            callBack.call(target, e)\r\n          }\r\n        }\r\n\r\n        if (target.parentElement) {\r\n          target = target.parentElement\r\n        } else {\r\n          target = null\r\n        }\r\n      }\r\n    })\r\n    element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\r\n    return eventId\r\n  }\r\n\r\n  public static off(element: HTMLElement, eventName: string, eventId: string): void {\r\n    const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\r\n    if (!funcFromStore) {\r\n      return\r\n    }\r\n\r\n    element.removeEventListener(eventName, funcFromStore)\r\n    DOMEventHandlerUtil.store.delete(eventId)\r\n  }\r\n\r\n  public static one(element: HTMLElement, eventName: string, callBack: Function): void {\r\n    element.addEventListener(eventName, function calee(e) {\r\n      // remove event\r\n      if (e.target && e.target.removeEventListener) {\r\n        e.target.removeEventListener(e.type, calee)\r\n      }\r\n\r\n      if (element && e && e.currentTarget) {\r\n        // if (element && element.removeEventListener && e && e.currentTarget) {\r\n        e.currentTarget.removeEventListener(e.type, calee)\r\n      }\r\n\r\n      // call hander\r\n      return callBack(e)\r\n    })\r\n  }\r\n}\r\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {getElementOffset} from './DomHelpers'\r\n\r\nexport class ElementAnimateUtil {\r\n  public static animate(\r\n    from: number,\r\n    to: number,\r\n    duration: number,\r\n    update: Function,\r\n    complete?: Function\r\n  ) {\r\n    /**\r\n     * TinyAnimate.easings\r\n     *  Adapted from jQuery Easing\r\n     */\r\n    const easings = {\r\n      linear: function (t: number, b: number, c: number, d: number) {\r\n        return (c * t) / d + b\r\n      },\r\n    }\r\n\r\n    // Create mock done() function if necessary\r\n    if (!complete) {\r\n      complete = function () {}\r\n    }\r\n\r\n    // Animation loop\r\n    // let canceled = false;\r\n    const change = to - from\r\n\r\n    function loop(timestamp: number) {\r\n      var time = (timestamp || +new Date()) - start\r\n\r\n      if (time >= 0) {\r\n        update(easings.linear(time, from, change, duration))\r\n      }\r\n      if (time >= 0 && time >= duration) {\r\n        update(to)\r\n        if (complete) {\r\n          complete()\r\n        }\r\n      } else {\r\n        window.requestAnimationFrame(loop)\r\n      }\r\n    }\r\n\r\n    update(from)\r\n\r\n    // Start animation loop\r\n    const start =\r\n      window.performance && window.performance.now ? window.performance.now() : +new Date()\r\n\r\n    window.requestAnimationFrame(loop)\r\n  }\r\n\r\n  public static animateClass(\r\n    element: HTMLElement,\r\n    animationName: string,\r\n    callBack?: Function\r\n  ): void {\r\n    const animateClasses = animationName.split(' ')\r\n    animateClasses.forEach((cssClass) => element.classList.add(cssClass))\r\n    DOMEventHandlerUtil.one(element, 'animationend', function () {\r\n      animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\r\n    })\r\n\r\n    if (callBack) {\r\n      DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n    }\r\n  }\r\n\r\n  public static transitionEnd(element: HTMLElement, callBack: Function) {\r\n    DOMEventHandlerUtil.one(element, 'transitionend', callBack)\r\n  }\r\n\r\n  public static animationEnd(element: HTMLElement, callBack: Function) {\r\n    DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n  }\r\n\r\n  public static animationDelay(element: HTMLElement, value: string) {\r\n    ElementStyleUtil.set(element, 'animation-delay', value)\r\n  }\r\n\r\n  public static animationDuration(element: HTMLElement, value: string) {\r\n    ElementStyleUtil.set(element, 'animation-duration', value)\r\n  }\r\n\r\n  public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\r\n    let targetPos = element ? getElementOffset(element).top : 0\r\n    let scrollPos =\r\n      window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\r\n\r\n    if (offset) {\r\n      scrollPos += offset\r\n      targetPos = targetPos - offset\r\n    }\r\n\r\n    const from = scrollPos\r\n    const to = targetPos\r\n\r\n    ElementAnimateUtil.animate(from, to, duration, function (value: number) {\r\n      document.documentElement.scrollTop = value\r\n      // document.body.parentNode.scrollTop = value;\r\n      document.body.scrollTop = value\r\n    }) //, easing, done\r\n  }\r\n  public static scrollTop(offset: number, duration: number) {\r\n    ElementAnimateUtil.scrollTo(null, offset, duration)\r\n  }\r\n}\r\n","import {OffsetModel} from './models/OffsetModel'\r\nimport {ViewPortModel} from './models/ViewPortModel'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {DataUtil} from './_DataUtil'\r\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\r\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\r\n\r\nfunction getCSS(el: HTMLElement, styleProp: string) {\r\n  const defaultView = (el.ownerDocument || document).defaultView\r\n\r\n  if (!defaultView) {\r\n    return ''\r\n  }\r\n\r\n  // sanitize property name to css notation\r\n  // (hyphen separated words eg. font-Size)\r\n  styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n  return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n}\r\n\r\nfunction getCSSVariableValue(variableName: string) {\r\n  let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\r\n  if (hex && hex.length > 0) {\r\n    hex = hex.trim()\r\n  }\r\n\r\n  return hex\r\n}\r\n\r\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\r\n  let css = ''\r\n\r\n  if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n    let value\r\n\r\n    // the element is hidden so:\r\n    // making the el block so we can meassure its height but still be hidden\r\n    css = el.style.cssText\r\n    el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\r\n\r\n    if (prop === 'width') {\r\n      value = el.offsetWidth\r\n    } else if (prop === 'height') {\r\n      value = el.offsetHeight\r\n    }\r\n\r\n    el.style.cssText = css\r\n\r\n    // store it in cache\r\n    if (value !== undefined) {\r\n      el.setAttribute('kt-hidden-' + prop, value.toString())\r\n      return parseFloat(value.toString())\r\n    }\r\n    return 0\r\n  } else {\r\n    // store it in cache\r\n    const attributeValue = el.getAttribute('kt-hidden-' + prop)\r\n    if (attributeValue || attributeValue === '0') {\r\n      return parseFloat(attributeValue)\r\n    }\r\n  }\r\n\r\n  return 0\r\n}\r\n\r\nfunction getElementActualHeight(el: HTMLElement) {\r\n  return getElementActualCss(el, 'height', false)\r\n}\r\n\r\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\r\n  return getElementActualCss(el, 'width', false)\r\n}\r\n\r\nfunction getElementIndex(element: HTMLElement) {\r\n  if (element.parentNode) {\r\n    const c = element.parentNode.children\r\n    for (let i = 0; i < c.length; i++) {\r\n      if (c[i] === element) return i\r\n    }\r\n  }\r\n  return -1\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\r\nfunction getElementMatches(element: HTMLElement, selector: string) {\r\n  const p = Element.prototype\r\n  const f = p.matches || p.webkitMatchesSelector\r\n\r\n  if (element && element.tagName) {\r\n    return f.call(element, selector)\r\n  } else {\r\n    return false\r\n  }\r\n}\r\n\r\nfunction getElementOffset(el: HTMLElement): OffsetModel {\r\n  // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n  // Support: IE <=11 only\r\n  // Running getBoundingClientRect on a\r\n  // disconnected node in IE throws an error\r\n  if (!el.getClientRects().length) {\r\n    return {top: 0, left: 0}\r\n  }\r\n\r\n  // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n  const rect = el.getBoundingClientRect()\r\n  const win = el.ownerDocument.defaultView\r\n  if (win) {\r\n    return {\r\n      top: rect.top + win.pageYOffset,\r\n      left: rect.left + win.pageXOffset,\r\n    }\r\n  }\r\n\r\n  return rect\r\n}\r\n\r\nfunction getElementParents(element: Element, selector: string) {\r\n  // Element.matches() polyfill\r\n  if (!Element.prototype.matches) {\r\n    Element.prototype.matches = function (s) {\r\n      const matches = (document || this.ownerDocument).querySelectorAll(s)\r\n      let i = matches.length\r\n      while (--i >= 0 && matches.item(i) !== this) {}\r\n      return i > -1\r\n    }\r\n  }\r\n\r\n  // Set up a parent array\r\n  const parents: Array<Element> = []\r\n\r\n  let el: Element | null = element\r\n\r\n  // Push each parent element to the array\r\n  for (; el && el !== document.body; el = el.parentElement) {\r\n    if (selector) {\r\n      if (el.matches(selector)) {\r\n        parents.push(el)\r\n      }\r\n      continue\r\n    }\r\n    parents.push(el)\r\n  }\r\n\r\n  // Return our parent array\r\n  return parents\r\n}\r\n\r\nfunction getHighestZindex(el: HTMLElement) {\r\n  let bufferNode: Node | null = el as Node\r\n  let buffer = el\r\n  while (bufferNode && bufferNode !== document) {\r\n    // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n    // This makes behavior of this function consistent across browsers\r\n    // WebKit always returns auto if the element is positioned\r\n    const position = buffer.style.getPropertyValue('position')\r\n    if (position === 'absolute' || position === 'relative' || position === 'fixed') {\r\n      // IE returns 0 when zIndex is not specified\r\n      // other browsers return a string\r\n      // we ignore the case of nested elements with an explicit value of 0\r\n      // <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\r\n      const value = parseInt(buffer.style.getPropertyValue('z-index'))\r\n      if (!isNaN(value) && value !== 0) {\r\n        return value\r\n      }\r\n    }\r\n\r\n    bufferNode = bufferNode.parentNode\r\n    buffer = bufferNode as HTMLElement\r\n  }\r\n  return null\r\n}\r\n\r\nfunction getScrollTop(): number {\r\n  return (document.scrollingElement || document.documentElement).scrollTop\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\r\nfunction getViewPort(): ViewPortModel {\r\n  return {\r\n    width: window.innerWidth,\r\n    height: window.innerHeight,\r\n  }\r\n}\r\n\r\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\r\n  return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\r\n}\r\n\r\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\r\n  const classes = classesStr.split(' ')\r\n  for (let i = 0; i < classes.length; i++) {\r\n    if (!element.classList.contains(classes[i])) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n\r\nfunction isVisibleElement(element: HTMLElement): boolean {\r\n  return !(element.offsetWidth === 0 && element.offsetHeight === 0)\r\n}\r\n\r\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\r\n  // If setTimeout is already scheduled, no need to do anything\r\n  if (timer) {\r\n    return\r\n  }\r\n\r\n  // Schedule a setTimeout after delay seconds\r\n  timer = window.setTimeout(function () {\r\n    func()\r\n\r\n    // Once setTimeout function execution is finished, timerId = undefined so that in <br>\r\n    // the next scroll event function execution can be scheduled by the setTimeout\r\n    timer = undefined\r\n  }, delay)\r\n}\r\n\r\nfunction getElementChildren(element: HTMLElement, selector: string): Array<HTMLElement> | null {\r\n  if (!element || !element.childNodes) {\r\n    return null\r\n  }\r\n\r\n  const result: Array<HTMLElement> = []\r\n  for (let i = 0; i < element.childNodes.length; i++) {\r\n    const child = element.childNodes[i]\r\n    // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\r\n    if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\r\n      result.push(child as HTMLElement)\r\n    }\r\n  }\r\n\r\n  return result\r\n}\r\n\r\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\r\n  const children = getElementChildren(element, selector)\r\n  return children ? children[0] : null\r\n}\r\n\r\nfunction isMobileDevice(): boolean {\r\n  let test = getViewPort().width < +getBreakpoint('lg') ? true : false\r\n\r\n  if (test === false) {\r\n    // For use within normal web clients\r\n    test = navigator.userAgent.match(/iPad/i) != null\r\n  }\r\n\r\n  return test\r\n}\r\n\r\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\r\n  if (\r\n    !el ||\r\n    (dir === 'up' && isVisibleElement(el) === false) ||\r\n    (dir === 'down' && isVisibleElement(el) === true)\r\n  ) {\r\n    return\r\n  }\r\n\r\n  speed = speed ? speed : 600\r\n  let calcHeight = getElementActualHeight(el)\r\n  let calcPaddingTop: number = 0\r\n  let calcPaddingBottom: number = 0\r\n\r\n  if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\r\n    DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\r\n  }\r\n\r\n  if (\r\n    ElementStyleUtil.get(el, 'padding-bottom') &&\r\n    DataUtil.has(el, 'slide-padding-bottom') !== true\r\n  ) {\r\n    DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\r\n  }\r\n\r\n  if (DataUtil.has(el, 'slide-padding-top')) {\r\n    const data = DataUtil.get(el, 'slide-padding-top') as string\r\n    calcPaddingTop = parseInt(data as string)\r\n  }\r\n\r\n  if (DataUtil.has(el, 'slide-padding-bottom')) {\r\n    const data = DataUtil.get(el, 'slide-padding-bottom') as string\r\n    calcPaddingBottom = parseInt(data)\r\n  }\r\n\r\n  if (dir === 'up') {\r\n    // up\r\n    el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n    if (calcPaddingTop) {\r\n      ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\r\n        el.style.paddingTop = calcPaddingTop - value + 'px'\r\n      })\r\n    }\r\n\r\n    if (calcPaddingBottom) {\r\n      ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\r\n        el.style.paddingBottom = calcPaddingBottom - value + 'px'\r\n      })\r\n    }\r\n\r\n    ElementAnimateUtil.animate(\r\n      0,\r\n      calcHeight || 0,\r\n      speed,\r\n      function (value: number) {\r\n        el.style.height = (calcHeight || 0) - value + 'px'\r\n      },\r\n      function () {\r\n        el.style.height = ''\r\n        el.style.display = 'none'\r\n\r\n        if (typeof callback === 'function') {\r\n          callback()\r\n        }\r\n      }\r\n    )\r\n  } else if (dir === 'down') {\r\n    // down\r\n    el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n    if (calcPaddingTop) {\r\n      ElementAnimateUtil.animate(\r\n        0,\r\n        calcPaddingTop,\r\n        speed,\r\n        function (value: number) {\r\n          //\r\n          el.style.paddingTop = value + 'px'\r\n        },\r\n        function () {\r\n          el.style.paddingTop = ''\r\n        }\r\n      )\r\n    }\r\n\r\n    if (calcPaddingBottom) {\r\n      ElementAnimateUtil.animate(\r\n        0,\r\n        calcPaddingBottom,\r\n        speed,\r\n        function (value: number) {\r\n          el.style.paddingBottom = value + 'px'\r\n        },\r\n        function () {\r\n          el.style.paddingBottom = ''\r\n        }\r\n      )\r\n    }\r\n\r\n    ElementAnimateUtil.animate(\r\n      0,\r\n      calcHeight || 0,\r\n      speed,\r\n      function (value: number) {\r\n        el.style.height = value + 'px'\r\n      },\r\n      function () {\r\n        el.style.height = ''\r\n        el.style.display = ''\r\n        el.style.overflow = ''\r\n\r\n        if (typeof callback === 'function') {\r\n          callback()\r\n        }\r\n      }\r\n    )\r\n  }\r\n}\r\n\r\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\r\n  slide(el, 'up', speed, callback)\r\n}\r\n\r\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\r\n  slide(el, 'down', speed, callback)\r\n}\r\n\r\nfunction getBreakpoint(breakpoint: string) {\r\n  let value: number | string = getCSSVariableValue('--kt-' + breakpoint)\r\n  if (value) {\r\n    value = parseInt(value.trim())\r\n  }\r\n\r\n  return value\r\n}\r\n\r\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\r\n  let value = toJSON(incomingAttr)\r\n  if (typeof value !== 'object') {\r\n    return incomingAttr\r\n  }\r\n\r\n  const width = getViewPort().width\r\n  let resultKey\r\n  let resultBreakpoint = -1\r\n  let breakpoint\r\n\r\n  for (let key in value) {\r\n    if (key === 'default') {\r\n      breakpoint = 0\r\n    } else {\r\n      breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\r\n    }\r\n\r\n    if (breakpoint <= width && breakpoint > resultBreakpoint) {\r\n      resultKey = key\r\n      resultBreakpoint = breakpoint\r\n    }\r\n  }\r\n\r\n  return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\r\n}\r\n\r\nfunction colorLighten(color: string, amount: number) {\r\n  const addLight = (_color: string, _amount: number) => {\r\n    const cc = parseInt(_color, 16) + _amount\r\n    const cNum = cc > 255 ? 255 : cc\r\n    const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n    return c\r\n  }\r\n\r\n  color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n  amount = parseInt(((255 * amount) / 100).toString())\r\n  return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\r\n    color.substring(2, 4),\r\n    amount\r\n  )}${addLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nfunction colorDarken(color: string, amount: number) {\r\n  const subtractLight = (_color: string, _amount: number) => {\r\n    const cc = parseInt(color, 16) - amount\r\n    const cNum = cc < 0 ? 0 : cc\r\n    const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n    return c\r\n  }\r\n\r\n  color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n  amount = parseInt(((255 * amount) / 100).toString())\r\n\r\n  return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\r\n    color.substring(2, 4),\r\n    amount\r\n  )}${subtractLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nexport {\r\n  getBreakpoint,\r\n  getCSS,\r\n  getCSSVariableValue,\r\n  getElementActualCss,\r\n  getElementActualHeight,\r\n  getElementActualWidth,\r\n  getElementIndex,\r\n  getElementMatches,\r\n  getElementOffset,\r\n  getElementParents,\r\n  getHighestZindex,\r\n  getScrollTop,\r\n  getViewPort,\r\n  insertAfterElement,\r\n  isElementHasClasses,\r\n  isVisibleElement,\r\n  throttle,\r\n  getElementChildren,\r\n  getElementChild,\r\n  isMobileDevice,\r\n  slide,\r\n  slideUp,\r\n  slideDown,\r\n  getAttributeValueByBreakpoint,\r\n  colorLighten,\r\n  colorDarken,\r\n}\r\n","import {DataUtil} from './_DataUtil'\r\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport interface EventMeta {\r\n  name: string\r\n  callback: Function\r\n  one: boolean\r\n  fired: boolean\r\n}\r\n\r\nexport class EventHandlerUtil {\r\n  static store: {\r\n    [name: string]: {\r\n      [handlerId: string]: EventMeta\r\n    }\r\n  } = {}\r\n\r\n  private static setEventMetasByName(\r\n    name: string,\r\n    handlers: {\r\n      [handlerId: string]: EventMeta\r\n    }\r\n  ): void {\r\n    EventHandlerUtil.store[name] = handlers\r\n  }\r\n\r\n  private static getEventMetaByName(name: string):\r\n    | {\r\n        [handlerId: string]: EventMeta\r\n      }\r\n    | undefined {\r\n    return EventHandlerUtil.store[name]\r\n  }\r\n\r\n  private static setEventMetaByNameAndHandlerId(\r\n    name: string,\r\n    handlerId: string,\r\n    meta: EventMeta\r\n  ): void {\r\n    if (EventHandlerUtil.store[name]) {\r\n      EventHandlerUtil.store[name][handlerId] = meta\r\n      return\r\n    }\r\n    EventHandlerUtil.store[name] = {}\r\n    EventHandlerUtil.store[name][handlerId] = meta\r\n  }\r\n\r\n  private static getEventMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\r\n    const handlersIds = EventHandlerUtil.store[name]\r\n    if (!handlersIds) {\r\n      return\r\n    }\r\n    return handlersIds[handlerId]\r\n  }\r\n\r\n  private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\r\n    const meta = EventHandlerUtil.getEventMetaByHandlerId(name, handerId)\r\n    if (!meta) {\r\n      return\r\n    }\r\n\r\n    meta.fired = fired\r\n    EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\r\n  }\r\n\r\n  private static addEvent(\r\n    element: HTMLElement,\r\n    name: string,\r\n    callback: Function,\r\n    one: boolean = false\r\n  ): string {\r\n    const handlerId = getUniqueIdWithPrefix('event')\r\n    const data = DataUtil.get(element, name)\r\n    const handlersIds = data ? (data as string[]) : []\r\n    handlersIds.push(handlerId)\r\n\r\n    DataUtil.set(element, name, handlersIds)\r\n\r\n    const meta: EventMeta = {\r\n      name: name,\r\n      callback: callback,\r\n      one: one,\r\n      fired: false,\r\n    }\r\n\r\n    EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\r\n    return handlerId\r\n  }\r\n\r\n  private static removeEvent(element: HTMLElement, name: string, handerId: string) {\r\n    DataUtil.removeOne(element, name, handerId)\r\n    const handlersIds = EventHandlerUtil.store[name]\r\n    if (handlersIds) {\r\n      return\r\n    }\r\n\r\n    delete EventHandlerUtil.store[name][handerId]\r\n  }\r\n\r\n  public static trigger(element: HTMLElement, name: string, target?: any, e?: Event): boolean {\r\n    let returnValue = true\r\n    if (!DataUtil.has(element, name)) {\r\n      return returnValue\r\n    }\r\n\r\n    let eventValue\r\n    let handlerId\r\n    const data = DataUtil.get(element, name)\r\n    const handlersIds = data ? (data as string[]) : []\r\n    for (let i = 0; i < handlersIds.length; i++) {\r\n      handlerId = handlersIds[i]\r\n      if (EventHandlerUtil.store[name] && EventHandlerUtil.store[name][handlerId]) {\r\n        const handler = EventHandlerUtil.store[name][handlerId]\r\n        if (handler.name === name) {\r\n          if (handler.one) {\r\n            if (handler.fired) {\r\n              EventHandlerUtil.store[name][handlerId].fired = true\r\n              eventValue = handler.callback.call(this, target)\r\n            }\r\n          } else {\r\n            eventValue = handler.callback.call(this, target)\r\n          }\r\n\r\n          if (eventValue === false) {\r\n            returnValue = false\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return returnValue\r\n  }\r\n\r\n  public static on = function (element: HTMLElement, name: string, callBack: Function): void {\r\n    EventHandlerUtil.addEvent(element, name, callBack, false)\r\n  }\r\n\r\n  public static one(element: HTMLElement, name: string, callBack: Function): void {\r\n    EventHandlerUtil.addEvent(element, name, callBack, true)\r\n  }\r\n\r\n  public static off(element: HTMLElement, name: string, handerId: string): void {\r\n    EventHandlerUtil.removeEvent(element, name, handerId)\r\n  }\r\n}\r\n","// Types\r\nexport * from './models/OffsetModel'\r\nexport * from './models/ViewPortModel'\r\n// Helpers\r\nexport * from './DomHelpers'\r\nexport * from './_TypesHelpers'\r\n// Basic\r\nexport * from './_DataUtil'\r\nexport * from './_DOMEventHandlerUtil'\r\nexport * from './_ElementStyleUtil'\r\nexport * from './ElementAnimateUtil'\r\nexport * from './EventHandlerUtil'\r\n","/* eslint-disable no-useless-escape */\r\n// DOCS: https://javascript.info/cookie\r\nexport class CookieComponent {\r\n  /**\r\n   * Returns the cookie with the given name, or undefined if not found\r\n   *\r\n   * @param  {string} name - cookie name\r\n   * @returns string | null\r\n   */\r\n  public static get(name: string): string | undefined {\r\n    let matches = document.cookie.match(\r\n      new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\r\n    )\r\n    return matches ? decodeURIComponent(matches[1]) : undefined\r\n  }\r\n\r\n  /**\r\n   * Please note that a cookie value is encoded,\r\n   * so getCookie uses a built-in decodeURIComponent function to decode it.\r\n   *\r\n   * @param  {string} name - cookie name\r\n   * @param  {string | number | boolean} value - cookie value\r\n   * @param  {any} cookieOptions - cookie options\r\n   * @returns void\r\n   */\r\n  public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\r\n    const options = {\r\n      path: '/',\r\n      // add other defaults here if necessary\r\n      ...cookieOptions,\r\n    }\r\n\r\n    if (options.expires instanceof Date) {\r\n      options.expires = options.expires.toUTCString()\r\n    }\r\n\r\n    let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\r\n\r\n    for (let optionKey in options) {\r\n      updatedCookie += '; ' + optionKey\r\n      let optionValue = options[optionKey]\r\n      if (optionValue !== true) {\r\n        updatedCookie += '=' + optionValue\r\n      }\r\n    }\r\n\r\n    document.cookie = updatedCookie\r\n  }\r\n\r\n  /**\r\n   * To delete a cookie, we can call it with a negative expiration date\r\n   *\r\n   * @param  {string} name\r\n   */\r\n  public static delete(name: string): void {\r\n    CookieComponent.set(name, '', {\r\n      'max-age': -1,\r\n    })\r\n  }\r\n}\r\n","import {\r\n  EventHandlerUtil,\r\n  getUniqueIdWithPrefix,\r\n  getObjectPropertyValueByKey,\r\n  stringSnakeToCamel,\r\n  getAttributeValueByBreakpoint,\r\n  throttle,\r\n  getCSS,\r\n  DOMEventHandlerUtil,\r\n  ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport class DrawerStore {\r\n  static store: Map<string, DrawerComponent> = new Map()\r\n\r\n  public static set(instanceId: string, drawerComponentObj: DrawerComponent): void {\r\n    if (DrawerStore.has(instanceId)) {\r\n      return\r\n    }\r\n\r\n    DrawerStore.store.set(instanceId, drawerComponentObj)\r\n  }\r\n\r\n  public static get(instanceId: string): DrawerComponent | undefined {\r\n    if (!DrawerStore.has(instanceId)) {\r\n      return\r\n    }\r\n    return DrawerStore.store.get(instanceId)\r\n  }\r\n\r\n  public static remove(instanceId: string): void {\r\n    if (!DrawerStore.has(instanceId)) {\r\n      return\r\n    }\r\n\r\n    DrawerStore.store.delete(instanceId)\r\n  }\r\n\r\n  public static has(instanceId: string): boolean {\r\n    return DrawerStore.store.has(instanceId)\r\n  }\r\n\r\n  public static getAllInstances() {\r\n    return DrawerStore.store\r\n  }\r\n}\r\n\r\nexport interface DrawerOptions {\r\n  overlay: boolean\r\n  baseClass: string\r\n  overlayClass: string\r\n  direction: string\r\n}\r\n\r\nconst defaultDrawerOptions: DrawerOptions = {\r\n  overlay: true,\r\n  baseClass: 'drawer',\r\n  overlayClass: 'drawer-overlay',\r\n  direction: 'end',\r\n}\r\n\r\nclass DrawerComponent {\r\n  element: HTMLElement\r\n  overlayElement: HTMLElement | null = null\r\n  toggleElement: HTMLElement | null = null\r\n  options: DrawerOptions\r\n  instanceUid: string\r\n  name: string = ''\r\n  shown: boolean = false\r\n  lastWidth: number = 0\r\n  closeElement: HTMLElement | null = null\r\n\r\n  constructor(_element: HTMLElement, options: DrawerOptions) {\r\n    this.element = _element\r\n    this.options = Object.assign(defaultDrawerOptions, options)\r\n    this.instanceUid = getUniqueIdWithPrefix('drawer')\r\n    this.overlayElement = null\r\n    this.name = this.element.getAttribute('data-kt-drawer-name') || ''\r\n    this.shown = false\r\n    this.toggleElement = null\r\n    // Event Handlers\r\n    this._handlers()\r\n    // Update Instance\r\n    this._update()\r\n    // Bind Instance\r\n    DrawerStore.set(this.element.id, this)\r\n  }\r\n\r\n  private _handlers = () => {\r\n    const togglers = this._getOption('toggle') as string\r\n    const closers = this._getOption('close') as string\r\n\r\n    if (togglers !== null && togglers.length > 0) {\r\n      DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\r\n        e.preventDefault()\r\n        this.toggleElement = document.getElementById(togglers)\r\n        this._toggle()\r\n      })\r\n    }\r\n\r\n    if (closers !== null && closers.length > 0) {\r\n      DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\r\n        e.preventDefault()\r\n        this.closeElement = document.getElementById(closers)\r\n\r\n        this._hide()\r\n      })\r\n    }\r\n  }\r\n\r\n  private _update = () => {\r\n    const width = String(this._getOption('width'))\r\n    const direction = String(this._getOption('direction'))\r\n\r\n    // Reset state\r\n    const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\r\n    const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\r\n\r\n    if (hasBaseClass === true && bodyCanvasAttr === 'on') {\r\n      this.shown = true\r\n    } else {\r\n      this.shown = false\r\n    }\r\n\r\n    // Activate/deactivate\r\n    if (this._getOption('activate') === true) {\r\n      this.element.classList.add(this.options.baseClass)\r\n      this.element.classList.add(`${this.options.baseClass}-${direction}`)\r\n      ElementStyleUtil.set(this.element, 'width', width, true)\r\n\r\n      this.lastWidth = parseInt(width)\r\n    } else {\r\n      ElementStyleUtil.set(this.element, 'width', '')\r\n      this.element.classList.remove(this.options.baseClass)\r\n      this.element.classList.remove(`${this.options.baseClass}-${direction}`)\r\n      this._hide()\r\n    }\r\n  }\r\n\r\n  private _getOption = (name: string) => {\r\n    const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\r\n    if (attr) {\r\n      let value = getAttributeValueByBreakpoint(attr)\r\n      if (value !== null && String(value) === 'true') {\r\n        return true\r\n      } else {\r\n        if (value !== null && String(value) === 'false') {\r\n          return false\r\n        }\r\n      }\r\n\r\n      return value\r\n    } else {\r\n      const optionName = stringSnakeToCamel(name)\r\n      const option = getObjectPropertyValueByKey(this.options, optionName)\r\n      if (option) {\r\n        return getAttributeValueByBreakpoint(option)\r\n      } else {\r\n        return null\r\n      }\r\n    }\r\n  }\r\n\r\n  private _toggle = () => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\r\n      return\r\n    }\r\n\r\n    if (this.shown) {\r\n      this._hide()\r\n    } else {\r\n      this._show()\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\r\n  }\r\n\r\n  private _hide = () => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\r\n      return\r\n    }\r\n\r\n    this.shown = false\r\n    this._deleteOverlay()\r\n    document.body.removeAttribute(`data-kt-drawer-${this.name}`)\r\n    document.body.removeAttribute(`data-kt-drawer`)\r\n    this.element.classList.remove(`${this.options.baseClass}-on`)\r\n    if (this.toggleElement != null) {\r\n      this.toggleElement.classList.remove('active')\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\r\n  }\r\n\r\n  private _show = () => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\r\n      return\r\n    }\r\n\r\n    this.shown = true\r\n    this._createOverlay()\r\n    document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\r\n    document.body.setAttribute('data-kt-drawer', 'on')\r\n    this.element.classList.add(`${this.options.baseClass}-on`)\r\n    if (this.toggleElement !== null) {\r\n      this.toggleElement.classList.add('active')\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\r\n  }\r\n\r\n  private _createOverlay = () => {\r\n    if (this._getOption('overlay') === true) {\r\n      this.overlayElement = document.createElement('DIV')\r\n      const elementZIndex = getCSS(this.element, 'z-index')\r\n      if (elementZIndex) {\r\n        const overlayZindex = parseInt(elementZIndex) - 1\r\n        ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\r\n      }\r\n      document.body.append(this.overlayElement)\r\n      const overlayClassOption = this._getOption('overlay-class')\r\n      if (overlayClassOption) {\r\n        this.overlayElement.classList.add(overlayClassOption.toString())\r\n      }\r\n      this.overlayElement.addEventListener('click', (e) => {\r\n        e.preventDefault()\r\n        this._hide()\r\n      })\r\n    }\r\n  }\r\n\r\n  private _deleteOverlay = () => {\r\n    if (this.overlayElement !== null && this.overlayElement.parentNode) {\r\n      this.overlayElement.parentNode.removeChild(this.overlayElement)\r\n    }\r\n  }\r\n\r\n  private _getDirection = () => {\r\n    return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\r\n  }\r\n\r\n  private _getWidth = () => {\r\n    let width = this._getOption('width')\r\n    if (width && width === 'auto') {\r\n      width = getCSS(this.element, 'width')\r\n    }\r\n\r\n    return width\r\n  }\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n  public toggle = () => {\r\n    this._toggle()\r\n  }\r\n\r\n  public show = () => {\r\n    this._show()\r\n  }\r\n\r\n  public hide = () => {\r\n    this._hide()\r\n  }\r\n\r\n  public isShown = () => {\r\n    return this.shown\r\n  }\r\n\r\n  public update = () => {\r\n    this._update()\r\n  }\r\n\r\n  public goElement = () => {\r\n    return this.element\r\n  }\r\n\r\n  // Event API\r\n  public on = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.on(this.element, name, handler)\r\n  }\r\n\r\n  public one = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.one(this.element, name, handler)\r\n  }\r\n\r\n  public off = (name: string, handerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handerId)\r\n  }\r\n\r\n  public trigger = (name: string, event: Event) => {\r\n    return EventHandlerUtil.trigger(this.element, name, event)\r\n  }\r\n\r\n  // Static methods\r\n  public static hasInstace = (elementId: string): boolean => {\r\n    return DrawerStore.has(elementId)\r\n  }\r\n\r\n  public static getInstance = (elementId: string) => {\r\n    return DrawerStore.get(elementId)\r\n  }\r\n\r\n  public static hideAll = () => {\r\n    const oldInstances = DrawerStore.getAllInstances()\r\n    oldInstances.forEach((dr) => {\r\n      dr.hide()\r\n    })\r\n  }\r\n\r\n  public static updateAll = () => {\r\n    const oldInstances = DrawerStore.getAllInstances()\r\n    oldInstances.forEach((dr) => {\r\n      dr.update()\r\n    })\r\n  }\r\n\r\n  // Create Instances\r\n  public static createInstances(selector: string): void {\r\n    const elements = document.body.querySelectorAll(selector)\r\n    elements.forEach((element) => {\r\n      const item = element as HTMLElement\r\n      let drawer = DrawerComponent.getInstance(item.id)\r\n      if (!drawer) {\r\n        drawer = new DrawerComponent(item, defaultDrawerOptions)\r\n      }\r\n      drawer.element = item\r\n      drawer.hide()\r\n    })\r\n  }\r\n\r\n  // Dismiss instances\r\n  public static handleDismiss = () => {\r\n    // External drawer toggle handler\r\n    DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\r\n      /* @ts-ignore */\r\n      const element = this.closest('[data-kt-drawer=\"true\"]')\r\n      if (element) {\r\n        const drawer = DrawerComponent.getInstance(element)\r\n        if (drawer && drawer.isShown()) {\r\n          drawer.hide()\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n  // Global Initialization\r\n  public static initGlobalHandlers(): void {\r\n    // Window Resize Handling\r\n    window.addEventListener('resize', function () {\r\n      let timer: number | undefined\r\n      throttle(\r\n        timer,\r\n        () => {\r\n          // Locate and update Drawer instances on window resize\r\n          const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\r\n          elements.forEach((el) => {\r\n            const item = el as HTMLElement\r\n            const instance = DrawerComponent.getInstance(item.id)\r\n            if (instance) {\r\n              instance.element = item\r\n              instance.update()\r\n            }\r\n          })\r\n        },\r\n        200\r\n      )\r\n    })\r\n  }\r\n\r\n  public static bootstrap = () => {\r\n    DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n    DrawerComponent.initGlobalHandlers()\r\n    DrawerComponent.handleDismiss()\r\n  }\r\n\r\n  public static reinitialization = () => {\r\n    DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n    DrawerComponent.hideAll()\r\n    DrawerComponent.updateAll()\r\n    DrawerComponent.handleDismiss()\r\n  }\r\n}\r\n\r\nexport {DrawerComponent, defaultDrawerOptions}\r\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\r\n\r\nexport interface IImageInputOptions {}\r\n\r\nexport interface IImageInputQueries {\r\n  componentName: string\r\n  instanseQuery: string\r\n  inputQuery: string\r\n  wrapperQuery: string\r\n  cancelQuery: string\r\n  removeQuery: string\r\n  hiddenQuery: string\r\n}\r\n\r\nconst defaultImageInputOptions = {}\r\n\r\nconst defaultImageInputQueires: IImageInputQueries = {\r\n  componentName: 'image-input',\r\n  instanseQuery: '[data-kt-image-input]',\r\n  inputQuery: 'input[type=\"file\"]',\r\n  wrapperQuery: '.image-input-wrapper',\r\n  cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\r\n  removeQuery: '[data-kt-image-input-action=\"remove\"]',\r\n  hiddenQuery: 'input[type=\"hidden\"]',\r\n}\r\n\r\nclass ImageInputComponent {\r\n  element: HTMLElement\r\n  inputElement: HTMLInputElement | null\r\n  wrapperElement: HTMLElement | null\r\n  cancelElement: HTMLElement | null\r\n  removeElement: HTMLElement | null\r\n  hiddenElement: HTMLInputElement | null\r\n  src: string = ''\r\n  options: IImageInputOptions\r\n  queries: IImageInputQueries\r\n  uid: string\r\n  value: string = ''\r\n\r\n  constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\r\n    // Variables\r\n    this.options = Object.assign(defaultImageInputOptions, _options)\r\n    this.queries = _queries\r\n    this.uid = getUniqueIdWithPrefix(this.queries.componentName)\r\n\r\n    // Elements\r\n    this.element = _element\r\n    this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n    this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\r\n    this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\r\n    this.removeElement = this.element.querySelector(this.queries.removeQuery)\r\n    this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\r\n    if (this.wrapperElement) {\r\n      this.src = getCSS(this.wrapperElement, 'backgroundImage')\r\n    }\r\n\r\n    // Event Handlers\r\n    this.handlers()\r\n\r\n    DataUtil.set(this.element, this.queries.componentName, this)\r\n  }\r\n\r\n  private handlers(): void {\r\n    this.element.addEventListener('change', this._change)\r\n    if (this.cancelElement) {\r\n      this.cancelElement.addEventListener('click', this._cancel)\r\n    }\r\n\r\n    if (this.removeElement) {\r\n      this.removeElement.addEventListener('click', this._cancel)\r\n    }\r\n  }\r\n\r\n  // Event Handlers\r\n  private _change = (e: Event) => {\r\n    e.preventDefault()\r\n\r\n    if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\r\n      // Fire change event\r\n      if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\r\n        return\r\n      }\r\n\r\n      const reader = new FileReader()\r\n\r\n      reader.onload = (e: ProgressEvent<FileReader>) => {\r\n        if (this.wrapperElement && e.target) {\r\n          this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\r\n        }\r\n      }\r\n\r\n      reader.readAsDataURL(this.inputElement.files[0])\r\n      this.element.classList.add('image-input-changed')\r\n      this.element.classList.remove('image-input-empty')\r\n\r\n      // Fire removed event\r\n      EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\r\n    }\r\n  }\r\n\r\n  private _cancel = (e: Event) => {\r\n    e.preventDefault()\r\n\r\n    // Fire cancel event\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\r\n      return\r\n    }\r\n\r\n    this.element.classList.remove('image-input-changed')\r\n    this.element.classList.remove('image-input-empty')\r\n    this.element.style.setProperty('background-image', this.src)\r\n    if (this.inputElement) {\r\n      this.inputElement.value = ''\r\n    }\r\n\r\n    if (this.hiddenElement !== null) {\r\n      this.hiddenElement.value = '0'\r\n    }\r\n\r\n    // Fire canceled event\r\n    EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\r\n  }\r\n\r\n  private _remove = (e: Event) => {\r\n    e.preventDefault()\r\n\r\n    // Fire remove event\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\r\n      return\r\n    }\r\n\r\n    this.element.classList.remove('image-input-changed')\r\n    this.element.classList.add('image-input-empty')\r\n    if (this.wrapperElement) {\r\n      this.wrapperElement.style.setProperty('background-image', 'none')\r\n    }\r\n\r\n    if (this.inputElement) {\r\n      this.inputElement.value = ''\r\n    }\r\n\r\n    if (this.hiddenElement !== null) {\r\n      this.hiddenElement.value = '1'\r\n    }\r\n\r\n    // Fire removed event\r\n    EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\r\n  }\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n  public getInputElement(): HTMLInputElement | null {\r\n    return this.inputElement\r\n  }\r\n\r\n  public getElement(): HTMLElement {\r\n    return this.element\r\n  }\r\n\r\n  // Event API\r\n  public on = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.on(this.element, name, handler)\r\n  }\r\n\r\n  public one = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.one(this.element, name, handler)\r\n  }\r\n\r\n  public off = (name: string, handlerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handlerId)\r\n  }\r\n\r\n  public trigger = (name: string, event: Event) => {\r\n    return EventHandlerUtil.trigger(this.element, name, event)\r\n  }\r\n\r\n  // Static methods\r\n  public static getInstance = (\r\n    el: HTMLElement,\r\n    componentName: string = defaultImageInputQueires.componentName\r\n  ): ImageInputComponent | undefined => {\r\n    const ImageInput = DataUtil.get(el, componentName)\r\n    if (ImageInput) {\r\n      return ImageInput as ImageInputComponent\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  public static createInstances = (\r\n    selector: string = defaultImageInputQueires.instanseQuery,\r\n    options: IImageInputOptions = defaultImageInputOptions,\r\n    queries: IImageInputQueries = defaultImageInputQueires\r\n  ) => {\r\n    const elements = document.body.querySelectorAll(selector)\r\n    elements.forEach((el) => {\r\n      const item = el as HTMLElement\r\n      let ImageInput = ImageInputComponent.getInstance(item)\r\n      if (!ImageInput) {\r\n        ImageInput = new ImageInputComponent(item, options, queries)\r\n      }\r\n    })\r\n  }\r\n\r\n  public static createInsance = (\r\n    selector: string = defaultImageInputQueires.instanseQuery,\r\n    options: IImageInputOptions = defaultImageInputOptions,\r\n    queries: IImageInputQueries = defaultImageInputQueires\r\n  ): ImageInputComponent | undefined => {\r\n    const element = document.body.querySelector(selector)\r\n    if (!element) {\r\n      return\r\n    }\r\n    const item = element as HTMLElement\r\n    let ImageInput = ImageInputComponent.getInstance(item)\r\n    if (!ImageInput) {\r\n      ImageInput = new ImageInputComponent(item, options, queries)\r\n    }\r\n    return ImageInput\r\n  }\r\n\r\n  public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n    ImageInputComponent.createInstances(selector)\r\n  }\r\n\r\n  public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n    ImageInputComponent.createInstances(selector)\r\n  }\r\n}\r\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\r\n","import {\r\n  DataUtil,\r\n  getObjectPropertyValueByKey,\r\n  stringSnakeToCamel,\r\n  getAttributeValueByBreakpoint,\r\n  getViewPort,\r\n  isVisibleElement,\r\n  throttle,\r\n  getCSS,\r\n  ElementStyleUtil,\r\n} from '../_utils/index'\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ScrollOptions {\r\n  saveState?: boolean\r\n}\r\n\r\nconst defaultScrollOptions: ScrollOptions = {\r\n  saveState: true,\r\n}\r\n\r\nclass ScrollComponent {\r\n  element: HTMLElement\r\n  options: ScrollOptions\r\n  id: string\r\n\r\n  constructor(_element: HTMLElement, options: ScrollOptions) {\r\n    this.element = _element\r\n    this.options = Object.assign(defaultScrollOptions, options)\r\n    this.id = this.element.getAttribute('id') || ''\r\n    this.update()\r\n    // this.element.setAttribute('data-kt-scrolltop', 'true')\r\n    DataUtil.set(this.element, 'scroll', this)\r\n  }\r\n\r\n  private getOption = (name: string) => {\r\n    if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\r\n      const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\r\n      let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\r\n      if (value !== null && String(value) === 'true') {\r\n        value = true\r\n      } else if (value !== null && String(value) === 'false') {\r\n        value = false\r\n      }\r\n\r\n      return value\r\n    } else {\r\n      const optionName = stringSnakeToCamel(name)\r\n      const option = getObjectPropertyValueByKey(this.options, optionName)\r\n      if (option) {\r\n        return getAttributeValueByBreakpoint(option)\r\n      } else {\r\n        return null\r\n      }\r\n    }\r\n  }\r\n\r\n  private getHeightType = () => {\r\n    if (this.getOption('height')) {\r\n      return 'height'\r\n    }\r\n    if (this.getOption('min-height')) {\r\n      return 'min-height'\r\n    }\r\n    if (this.getOption('max-height')) {\r\n      return 'max-height'\r\n    }\r\n    return '';\r\n  }\r\n\r\n  private getAutoHeight = () => {\r\n    let height: number | string = getViewPort().height\r\n    const dependencies = this.getOption('dependencies')\r\n    const wrappers = this.getOption('wrappers')\r\n    const offset = this.getOption('offset')\r\n\r\n    // Height dependencies\r\n    if (dependencies !== null) {\r\n      const elements = document.querySelectorAll(dependencies as string)\r\n      if (elements && elements.length > 0) {\r\n        for (let i = 0, len = elements.length; i < len; i++) {\r\n          const element = elements[i] as HTMLElement\r\n          if (isVisibleElement(element) === false) {\r\n            continue\r\n          }\r\n\r\n          height = height - parseInt(getCSS(element, 'height'))\r\n          height = height - parseInt(getCSS(element, 'margin-top'))\r\n          height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n\r\n          const borderTop = getCSS(element, 'border-top')\r\n          if (borderTop) {\r\n            height = height - parseInt(borderTop)\r\n          }\r\n\r\n          const borderBottom = getCSS(element, 'border-bottom')\r\n          if (borderBottom) {\r\n            height = height - parseInt(borderBottom)\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    // Wrappers\r\n    if (wrappers !== null) {\r\n      var elements = document.querySelectorAll(wrappers as string)\r\n      if (elements && elements.length > 0) {\r\n        for (let i = 0, len = elements.length; i < len; i++) {\r\n          const element = elements[i] as HTMLElement\r\n\r\n          if (!isVisibleElement(element)) {\r\n            continue\r\n          }\r\n\r\n          height = height - parseInt(getCSS(element, 'margin-top'))\r\n          height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n          height = height - parseInt(getCSS(element, 'padding-top'))\r\n          height = height - parseInt(getCSS(element, 'padding-bottom'))\r\n\r\n          const borderTop = getCSS(element, 'border-top')\r\n          if (borderTop) {\r\n            height = height - parseInt(borderTop)\r\n          }\r\n\r\n          const borderBottom = getCSS(element, 'border-bottom')\r\n          if (borderBottom) {\r\n            height = height - parseInt(borderBottom)\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    // Custom offset\r\n    if (offset !== null) {\r\n      height = height - parseInt(offset as string)\r\n    }\r\n\r\n    height = height - parseInt(getCSS(this.element, 'margin-top'))\r\n    height = height - parseInt(getCSS(this.element, 'margin-bottom'))\r\n\r\n    const borderTop = getCSS(this.element, 'border-top')\r\n    if (borderTop) {\r\n      height = height - parseInt(borderTop)\r\n    }\r\n\r\n    const borderBottom = getCSS(this.element, 'border-bottom')\r\n    if (borderBottom) {\r\n      height = height - parseInt(borderBottom)\r\n    }\r\n\r\n    height = String(height) + 'px'\r\n\r\n    return height\r\n  }\r\n\r\n  private setupHeight = () => {\r\n    let height = this.getHeight()\r\n    let heightType = this.getHeightType() as string\r\n\r\n    // Set height\r\n    if (height !== null && height.length > 0) {\r\n      ElementStyleUtil.set(this.element, heightType, height)\r\n    } else {\r\n      ElementStyleUtil.set(this.element, heightType, '')\r\n    }\r\n  }\r\n\r\n  private setupState = () => {\r\n    if (this.getOption('save-state') === true && this.id) {\r\n      const cookie = CookieComponent.get(this.id + 'st')\r\n      if (cookie) {\r\n        var pos = parseInt(cookie)\r\n\r\n        if (pos > 0) {\r\n          this.element.scrollTop = pos\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  private setupScrollHandler = () => {\r\n    if (this.getOption('save-state') === true && this.id) {\r\n      this.element.addEventListener('scroll', this.scrollHandler)\r\n    } else {\r\n      this.element.removeEventListener('scroll', this.scrollHandler)\r\n    }\r\n  }\r\n\r\n  private scrollHandler = () => {\r\n    const cookieId = this.id + 'st'\r\n    CookieComponent.set(cookieId, this.element.scrollTop, {})\r\n  }\r\n\r\n  private destroyScrollHandler = () => {\r\n    this.element.removeEventListener('scroll', this.scrollHandler)\r\n  }\r\n\r\n  private resetHeight = () => {\r\n    const heghtType = this.getHeightType()\r\n    if (heghtType) {\r\n      ElementStyleUtil.set(this.element, heghtType, '')\r\n    }\r\n  }\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n  public update = () => {\r\n    // Activate/deactivate\r\n    if (\r\n      this.getOption('activate') === true ||\r\n      !this.element.hasAttribute('data-kt-scroll-activate')\r\n    ) {\r\n      this.setupHeight()\r\n      this.setupScrollHandler()\r\n      this.setupState()\r\n    } else {\r\n      this.resetHeight()\r\n      this.destroyScrollHandler()\r\n    }\r\n  }\r\n\r\n  public getHeight = () => {\r\n    const heightType = this.getHeightType()\r\n    const height = this.getOption(heightType || '')\r\n    if (height instanceof Function) {\r\n      return height.call(height)\r\n    } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\r\n      return this.getAutoHeight()\r\n    } else {\r\n      return height\r\n    }\r\n  }\r\n\r\n  public getElement = () => {\r\n    return this.element\r\n  }\r\n\r\n  // Static methods\r\n  public static hasInstace(element: HTMLElement) {\r\n    return DataUtil.has(element, 'scroll')\r\n  }\r\n\r\n  public static getInstance(element: HTMLElement): ScrollComponent | undefined {\r\n    if (element !== null && ScrollComponent.hasInstace(element)) {\r\n      const data = DataUtil.get(element, 'scroll')\r\n      if (data) {\r\n        return data as ScrollComponent\r\n      }\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  // Create Instances\r\n  public static createInstances(selector: string) {\r\n    const elements = document.body.querySelectorAll(selector)\r\n    elements.forEach((element: Element) => {\r\n      const item = element as HTMLElement\r\n      let scroll = ScrollComponent.getInstance(item)\r\n      if (!scroll) {\r\n        scroll = new ScrollComponent(item, defaultScrollOptions)\r\n      }\r\n    })\r\n  }\r\n\r\n  public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\r\n\r\n  public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\r\n    ScrollComponent.createInstances(attr)\r\n    ScrollComponent.resize()\r\n  }\r\n\r\n  public static createInstance = (\r\n    element: HTMLElement,\r\n    options: ScrollOptions = defaultScrollOptions\r\n  ): ScrollComponent | undefined => {\r\n    let scroll = ScrollComponent.getInstance(element)\r\n    if (!scroll) {\r\n      scroll = new ScrollComponent(element, options)\r\n    }\r\n    return scroll\r\n  }\r\n\r\n  public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\r\n    ScrollComponent.createInstances(attr)\r\n  }\r\n\r\n  public static updateAll() {\r\n    const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\r\n    elements.forEach((element: Element) => {\r\n      const instance = ScrollComponent.getInstance(element as HTMLElement)\r\n      if (instance) {\r\n        instance.update()\r\n      }\r\n    })\r\n  }\r\n\r\n  public static resize() {\r\n    // Window Resize Handling\r\n    window.addEventListener('resize', function () {\r\n      let timer\r\n      throttle(\r\n        timer,\r\n        () => {\r\n          // Locate and update Drawer instances on window resize\r\n          ScrollComponent.updateAll()\r\n        },\r\n        200\r\n      )\r\n    })\r\n  }\r\n}\r\n\r\nexport {ScrollComponent, defaultScrollOptions}\r\n","import {\r\n  getElementIndex,\r\n  getUniqueIdWithPrefix,\r\n  ElementAnimateUtil,\r\n  EventHandlerUtil,\r\n  DataUtil,\r\n  DOMEventHandlerUtil,\r\n  ElementStyleUtil,\r\n} from '../_utils/index';\r\n\r\nexport interface IStepperOptions {\r\n  startIndex: number;\r\n  animation: boolean;\r\n  animationSpeed: string;\r\n  animationNextClass: string;\r\n  animationPreviousClass: string;\r\n}\r\n\r\nconst defaultStepperOptions: IStepperOptions = {\r\n  startIndex: 1,\r\n  animation: false,\r\n  animationSpeed: '0.3s',\r\n  animationNextClass: 'animate__animated animate__slideInRight animate__fast',\r\n  animationPreviousClass:\r\n    'animate__animated animate__slideInLeft animate__fast',\r\n};\r\n\r\nclass StepperComponent {\r\n  element: HTMLElement;\r\n  options: IStepperOptions;\r\n  instanceUid: string;\r\n  steps: NodeListOf<HTMLElement>;\r\n  btnNext: HTMLElement | null;\r\n  btnPrev: HTMLElement | null;\r\n  btnSubmit: HTMLElement | null;\r\n  totatStepsNumber: number = 0;\r\n  passedStepIndex: number = 0;\r\n  currentStepIndex: number = 1;\r\n\r\n  constructor(_element: HTMLElement, options: IStepperOptions) {\r\n    this.element = _element;\r\n    this.options = Object.assign(defaultStepperOptions, options);\r\n    this.instanceUid = getUniqueIdWithPrefix('stepper');\r\n\r\n    // Elements\r\n    this.steps = this.element.querySelectorAll(\r\n      '[data-kt-stepper-element=\"nav\"]'\r\n    );\r\n    this.btnNext = this.element.querySelector(\r\n      '[data-kt-stepper-action=\"next\"]'\r\n    );\r\n    this.btnPrev = this.element.querySelector(\r\n      '[data-kt-stepper-action=\"previous\"]'\r\n    );\r\n    this.btnSubmit = this.element.querySelector(\r\n      '[data-kt-stepper-action=\"submit\"]'\r\n    );\r\n\r\n    // Variables\r\n    this.totatStepsNumber = this.steps?.length | 0;\r\n    this.passedStepIndex = 0;\r\n    this.currentStepIndex = 1;\r\n\r\n    // Set Current Step\r\n    if (this.options.startIndex > 1) {\r\n      this._goTo(this.options.startIndex);\r\n    }\r\n\r\n    // Event Handlers\r\n    this.initHandlers();\r\n\r\n    // Bind Instance\r\n    DataUtil.set(this.element, 'stepper', this);\r\n  }\r\n\r\n  private _goTo = (index: number) => {\r\n    EventHandlerUtil.trigger(this.element, 'kt.stepper.change');\r\n    // Skip if this step is already shown\r\n    if (\r\n      index === this.currentStepIndex ||\r\n      index > this.totatStepsNumber ||\r\n      index < 0\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    // Validate step number\r\n    index = parseInt(index.toString());\r\n    // Set current step\r\n    this.passedStepIndex = this.currentStepIndex;\r\n    this.currentStepIndex = index;\r\n\r\n    // Refresh elements\r\n    this.refreshUI();\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.stepper.changed');\r\n  };\r\n\r\n  private initHandlers = () => {\r\n    this.btnNext?.addEventListener('click', (e: Event) => {\r\n      e.preventDefault();\r\n\r\n      EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e);\r\n    });\r\n\r\n    this.btnPrev?.addEventListener('click', (e: Event) => {\r\n      e.preventDefault();\r\n\r\n      EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e);\r\n    });\r\n\r\n    DOMEventHandlerUtil.on(\r\n      this.element,\r\n      '[data-kt-stepper-action=\"step\"]',\r\n      'click',\r\n      (e: Event) => {\r\n        e.preventDefault();\r\n\r\n        if (this.steps && this.steps.length > 0) {\r\n          for (let i = 0; i < this.steps.length; i++) {\r\n            if ((this.steps[i] as HTMLElement) === this.element) {\r\n              let index = i + 1;\r\n\r\n              const stepDirection = this._getStepDirection(index);\r\n              EventHandlerUtil.trigger(\r\n                this.element,\r\n                `stepper.${stepDirection}`,\r\n                e\r\n              );\r\n              return;\r\n            }\r\n          }\r\n        }\r\n      }\r\n    );\r\n  };\r\n\r\n  private _getStepDirection = (index: number) => {\r\n    return index > this.currentStepIndex ? 'next' : 'previous';\r\n  };\r\n\r\n  private getStepContent = (index: number) => {\r\n    const content = this.element.querySelectorAll(\r\n      '[data-kt-stepper-element=\"content\"]'\r\n    );\r\n    if (!content) {\r\n      return false;\r\n    }\r\n\r\n    if (content[index - 1]) {\r\n      return content[index - 1];\r\n    }\r\n\r\n    return false;\r\n  };\r\n\r\n  private getLastStepIndex = () => {\r\n    return this.totatStepsNumber;\r\n  };\r\n\r\n  private getTotalStepsNumber = () => {\r\n    return this.totatStepsNumber;\r\n  };\r\n\r\n  private refreshUI = () => {\r\n    let state = '';\r\n\r\n    if (this.isLastStep()) {\r\n      state = 'last';\r\n    } else if (this.isFirstStep()) {\r\n      state = 'first';\r\n    } else {\r\n      state = 'between';\r\n    }\r\n\r\n    // Set state class\r\n    this.element.classList.remove('last');\r\n    this.element.classList.remove('first');\r\n    this.element.classList.remove('between');\r\n\r\n    this.element.classList.add(state);\r\n\r\n    // Step Items\r\n    const elements = this.element.querySelectorAll(\r\n      '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\r\n    );\r\n\r\n    if (!elements || elements.length <= 0) {\r\n      return;\r\n    }\r\n\r\n    for (var i = 0, len = elements.length; i < len; i++) {\r\n      var element = elements[i] as HTMLElement;\r\n      var index = getElementIndex(element) + 1;\r\n\r\n      element.classList.remove('current');\r\n      element.classList.remove('completed');\r\n      element.classList.remove('pending');\r\n\r\n      if (index === this.currentStepIndex) {\r\n        element.classList.add('current');\r\n\r\n        if (\r\n          this.options.animation !== false &&\r\n          element.getAttribute('data-kt-stepper-element') === 'content'\r\n        ) {\r\n          ElementStyleUtil.set(\r\n            element,\r\n            'animationDuration',\r\n            this.options.animationSpeed\r\n          );\r\n\r\n          const animation =\r\n            this._getStepDirection(this.passedStepIndex) === 'previous'\r\n              ? this.options.animationPreviousClass\r\n              : this.options.animationNextClass;\r\n          ElementAnimateUtil.animateClass(element, animation);\r\n        }\r\n      } else {\r\n        if (index < this.currentStepIndex) {\r\n          element.classList.add('completed');\r\n        } else {\r\n          element.classList.add('pending');\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  private isLastStep = () => {\r\n    return this.currentStepIndex === this.totatStepsNumber;\r\n  };\r\n\r\n  private isFirstStep = () => {\r\n    return this.currentStepIndex === 1;\r\n  };\r\n\r\n  private isBetweenStep = () => {\r\n    return this.isLastStep() === false && this.isFirstStep() === false;\r\n  };\r\n\r\n  //   ///////////////////////\r\n  //   // ** Public API  ** //\r\n  //   ///////////////////////\r\n\r\n  //   // Plugin API\r\n  public goto = (index: number) => {\r\n    return this._goTo(index);\r\n  };\r\n\r\n  public goNext = () => {\r\n    return this.goto(this.getNextStepIndex());\r\n  };\r\n\r\n  public goPrev = () => {\r\n    return this.goto(this.getPrevStepIndex());\r\n  };\r\n\r\n  public goFirst = () => {\r\n    return this.goto(1);\r\n  };\r\n\r\n  public goLast = () => {\r\n    return this.goto(this.getLastStepIndex());\r\n  };\r\n\r\n  public getCurrentStepIndex = () => {\r\n    return this.currentStepIndex;\r\n  };\r\n\r\n  public getNextStepIndex = () => {\r\n    if (this.totatStepsNumber >= this.currentStepIndex + 1) {\r\n      return this.currentStepIndex + 1;\r\n    } else {\r\n      return this.totatStepsNumber;\r\n    }\r\n  };\r\n\r\n  public getPassedStepIndex = () => {\r\n    return this.passedStepIndex;\r\n  };\r\n\r\n  public getPrevStepIndex = () => {\r\n    if (this.currentStepIndex - 1 > 1) {\r\n      return this.currentStepIndex - 1;\r\n    } else {\r\n      return 1;\r\n    }\r\n  };\r\n\r\n  public getElement = (index: number) => {\r\n    return this.element;\r\n  };\r\n\r\n  // Event API\r\n  public on = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.on(this.element, name, handler);\r\n  };\r\n\r\n  public one = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.one(this.element, name, handler);\r\n  };\r\n\r\n  public off = (name: string, handlerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handlerId);\r\n  };\r\n\r\n  public destroy = () => {\r\n    console.log('destroy stepper');\r\n  };\r\n\r\n  public trigger = (name: string, event: Event) => {\r\n    return EventHandlerUtil.trigger(this.element, name, event);\r\n  };\r\n\r\n  // Static methods\r\n  public static hasInstace(element: HTMLElement): boolean {\r\n    return DataUtil.has(element, 'stepper');\r\n  }\r\n\r\n  public static getInstance(\r\n    element: HTMLElement\r\n  ): StepperComponent | undefined {\r\n    if (element !== null && StepperComponent.hasInstace(element)) {\r\n      const data = DataUtil.get(element, 'stepper');\r\n      if (data) {\r\n        return data as StepperComponent;\r\n      }\r\n    }\r\n\r\n    return undefined;\r\n  }\r\n\r\n  // Create Instances\r\n  public static createInstances(selector: string): void {\r\n    const elements = document.body.querySelectorAll(selector);\r\n    elements.forEach((element) => {\r\n      const item = element as HTMLElement;\r\n      let stepper = StepperComponent.getInstance(item);\r\n      if (!stepper) {\r\n        stepper = new StepperComponent(item, defaultStepperOptions);\r\n      }\r\n    });\r\n  }\r\n\r\n  public static createInsance = (\r\n    element: HTMLElement,\r\n    options: IStepperOptions = defaultStepperOptions\r\n  ): StepperComponent | null => {\r\n    if (!element) {\r\n      return null;\r\n    }\r\n    let stepper = StepperComponent.getInstance(element);\r\n    if (!stepper) {\r\n      stepper = new StepperComponent(element, options);\r\n    }\r\n    return stepper;\r\n  };\r\n\r\n  public static bootstrap(attr: string = '[data-kt-stepper]') {\r\n    StepperComponent.createInstances(attr);\r\n  }\r\n}\r\n\r\nexport { StepperComponent, defaultStepperOptions };\r\n","import {\r\n  getElementOffset,\r\n  getScrollTop,\r\n  getAttributeValueByBreakpoint,\r\n  getUniqueIdWithPrefix,\r\n  getObjectPropertyValueByKey,\r\n  stringSnakeToCamel,\r\n  getCSS,\r\n  DataUtil,\r\n  ElementAnimateUtil,\r\n  ElementStyleUtil,\r\n  EventHandlerUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface StickyOptions {\r\n  offset: number\r\n  reverse: boolean\r\n  animation: boolean\r\n  animationSpeed: string\r\n  animationClass: string\r\n}\r\n\r\nconst defaultStickyOptions: StickyOptions = {\r\n  offset: 200,\r\n  reverse: false,\r\n  animation: true,\r\n  animationSpeed: '0.3s',\r\n  animationClass: 'animation-slide-in-down',\r\n}\r\n\r\nclass StickyComponent {\r\n  element: HTMLElement\r\n  options: StickyOptions\r\n  instanceUid: string\r\n  instanceName: string | null = ''\r\n  attributeName: string\r\n  eventTriggerState: boolean\r\n  lastScrollTop: number\r\n\r\n  constructor(_element: HTMLElement, options: StickyOptions) {\r\n    this.element = _element\r\n    this.options = Object.assign(defaultStickyOptions, options)\r\n    this.instanceUid = getUniqueIdWithPrefix('sticky')\r\n    this.instanceName = this.element.getAttribute('data-kt-sticky-name')\r\n    this.attributeName = 'data-kt-sticky-' + this.instanceName\r\n    this.eventTriggerState = true\r\n    this.lastScrollTop = 0\r\n\r\n    // Event Handlers\r\n    window.addEventListener('scroll', this.scroll)\r\n\r\n    // Initial Launch\r\n    this.scroll()\r\n\r\n    DataUtil.set(this.element, 'sticky', this)\r\n  }\r\n\r\n  private scroll = () => {\r\n    let offset = this.getOption('offset')\r\n    let reverse = this.getOption('reverse')\r\n\r\n    // Exit if false\r\n    if (offset === false) {\r\n      return\r\n    }\r\n\r\n    let offsetNum = 0\r\n    if (typeof offset === 'string') {\r\n      offsetNum = parseInt(offset)\r\n    }\r\n\r\n    const st = getScrollTop()\r\n\r\n    // Reverse scroll mode\r\n    if (reverse === true) {\r\n      // Release on reverse scroll mode\r\n      if (st > offsetNum && this.lastScrollTop < st) {\r\n        if (document.body.hasAttribute(this.attributeName) === false) {\r\n          this.enable()\r\n          document.body.setAttribute(this.attributeName, 'on')\r\n        }\r\n\r\n        if (this.eventTriggerState === true) {\r\n          EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n          EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n          this.eventTriggerState = false\r\n        }\r\n      } else {\r\n        // Back scroll mode\r\n        if (document.body.hasAttribute(this.attributeName)) {\r\n          this.disable()\r\n          document.body.removeAttribute(this.attributeName)\r\n        }\r\n\r\n        if (this.eventTriggerState === false) {\r\n          EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n          EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n          this.eventTriggerState = true\r\n        }\r\n      }\r\n\r\n      this.lastScrollTop = st\r\n      return\r\n    }\r\n\r\n    // Classic scroll mode\r\n    if (st > offsetNum) {\r\n      if (document.body.hasAttribute(this.attributeName) === false) {\r\n        this.enable()\r\n        document.body.setAttribute(this.attributeName, 'on')\r\n      }\r\n\r\n      if (this.eventTriggerState === true) {\r\n        EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n        EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n        this.eventTriggerState = false\r\n      }\r\n    } else {\r\n      // back scroll mode\r\n      if (document.body.hasAttribute(this.attributeName) === true) {\r\n        this.disable()\r\n        document.body.removeAttribute(this.attributeName)\r\n      }\r\n\r\n      if (this.eventTriggerState === false) {\r\n        EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n        EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n        this.eventTriggerState = true\r\n      }\r\n    }\r\n  }\r\n\r\n  private getOption = (name: string) => {\r\n    const dataStickyAttr = 'data-kt-sticky-' + name\r\n    if (this.element.hasAttribute(dataStickyAttr) === true) {\r\n      const attrValueInStr = this.element.getAttribute(dataStickyAttr)\r\n      const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\r\n      if (attrValue !== null && String(attrValue) === 'true') {\r\n        return true\r\n      } else if (attrValue !== null && String(attrValue) === 'false') {\r\n        return false\r\n      }\r\n\r\n      return attrValue\r\n    } else {\r\n      const optionName = stringSnakeToCamel(name)\r\n      const option = getObjectPropertyValueByKey(this.options, optionName)\r\n      if (option) {\r\n        return getAttributeValueByBreakpoint(option)\r\n      }\r\n    }\r\n    return '';\r\n  }\r\n\r\n  private disable = () => {\r\n    ElementStyleUtil.remove(this.element, 'top')\r\n    ElementStyleUtil.remove(this.element, 'width')\r\n    ElementStyleUtil.remove(this.element, 'left')\r\n    ElementStyleUtil.remove(this.element, 'right')\r\n    ElementStyleUtil.remove(this.element, 'z-index')\r\n    ElementStyleUtil.remove(this.element, 'position')\r\n  }\r\n\r\n  private enable = (update: boolean = false) => {\r\n    const top = this.getOption('top')\r\n    const left = this.getOption('left')\r\n    // const right = this.getOption(\"right\");\r\n    let width = this.getOption('width')\r\n    const zindex = this.getOption('zindex')\r\n\r\n    if (update !== true && this.getOption('animation') === true) {\r\n      ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\r\n      ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\r\n    }\r\n\r\n    if (zindex !== null) {\r\n      ElementStyleUtil.set(this.element, 'z-index', zindex)\r\n      ElementStyleUtil.set(this.element, 'position', 'fixed')\r\n    }\r\n\r\n    if (top !== null) {\r\n      ElementStyleUtil.set(this.element, 'top', top)\r\n    }\r\n\r\n    if (width !== null && width !== undefined) {\r\n      const widthTarget = getObjectPropertyValueByKey(width, 'target')\r\n      if (widthTarget) {\r\n        const targetElement = document.querySelector(widthTarget)\r\n        if (targetElement) {\r\n          width = getCSS(targetElement, 'width')\r\n        }\r\n      }\r\n      ElementStyleUtil.set(this.element, 'width', width)\r\n    }\r\n\r\n    if (left !== null) {\r\n      if (String(left).toLowerCase() === 'auto') {\r\n        var offsetLeft = getElementOffset(this.element).left\r\n\r\n        if (offsetLeft > 0) {\r\n          ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  public update = () => {\r\n    if (document.body.hasAttribute(this.attributeName) === true) {\r\n      this.disable()\r\n      document.body.removeAttribute(this.attributeName)\r\n      this.enable(true)\r\n      document.body.setAttribute(this.attributeName, 'on')\r\n    }\r\n  }\r\n\r\n  // Event API\r\n  public on = (name: string, callBack: Function) => {\r\n    return EventHandlerUtil.on(this.element, name, callBack)\r\n  }\r\n\r\n  public one = (name: string, callback: Function) => {\r\n    return EventHandlerUtil.one(this.element, name, callback)\r\n  }\r\n\r\n  public off = (name: string, handlerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handlerId)\r\n  }\r\n\r\n  public trigger = (name: string) => {\r\n    return EventHandlerUtil.trigger(this.element, name)\r\n  }\r\n\r\n  // Static methods\r\n  public static hasInstace(element: HTMLElement) {\r\n    return DataUtil.has(element, 'sticky')\r\n  }\r\n\r\n  public static getInstance(element: HTMLElement): StickyComponent | undefined {\r\n    if (element !== null && StickyComponent.hasInstace(element)) {\r\n      const data = DataUtil.get(element, 'sticky')\r\n      if (data) {\r\n        return data as StickyComponent\r\n      }\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  // Create Instances\r\n  public static createInstances(selector: string) {\r\n    const elements = document.body.querySelectorAll(selector)\r\n    elements.forEach((element) => {\r\n      const item = element as HTMLElement\r\n      let sticky = StickyComponent.getInstance(item)\r\n      if (!sticky) {\r\n        sticky = new StickyComponent(item, defaultStickyOptions)\r\n      }\r\n    })\r\n  }\r\n\r\n  public static createInsance = (\r\n    selector: string,\r\n    options: StickyOptions = defaultStickyOptions\r\n  ): StickyComponent | undefined => {\r\n    const element = document.body.querySelector(selector)\r\n    if (!element) {\r\n      return\r\n    }\r\n    const item = element as HTMLElement\r\n    let sticky = StickyComponent.getInstance(item)\r\n    if (!sticky) {\r\n      sticky = new StickyComponent(item, options)\r\n    }\r\n    return sticky\r\n  }\r\n\r\n  public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\r\n    StickyComponent.createInstances(attr)\r\n  }\r\n\r\n  public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\r\n    StickyComponent.createInstances(attr)\r\n  }\r\n}\r\n\r\nexport {StickyComponent, defaultStickyOptions}\r\n","import {\r\n  DataUtil,\r\n  getUniqueIdWithPrefix,\r\n  EventHandlerUtil,\r\n} from '../_utils/index';\r\n// Helpers\r\nimport { CookieComponent } from './_CookieComponent';\r\n\r\nexport interface ToggleOptions {\r\n  saveState: boolean;\r\n  targetState?: string;\r\n  toggleState?: string;\r\n  targetToggleMode?: string;\r\n}\r\n\r\nconst defaultToggleOptions: ToggleOptions = {\r\n  saveState: false,\r\n};\r\n\r\nclass ToggleComponent {\r\n  element: HTMLElement;\r\n  instanceUid: string;\r\n  options: ToggleOptions;\r\n  state: string = '';\r\n  mode: string = '';\r\n  target: HTMLElement | null = null;\r\n  attribute: string = '';\r\n\r\n  constructor(_element: HTMLElement, options: ToggleOptions) {\r\n    this.options = Object.assign(defaultToggleOptions, options);\r\n    this.instanceUid = getUniqueIdWithPrefix('toggle');\r\n    this.element = _element;\r\n\r\n    const elementTargetAttr = this.element.getAttribute(\r\n      'data-kt-toggle-target'\r\n    );\r\n    if (elementTargetAttr) {\r\n      this.target = document.querySelector(elementTargetAttr);\r\n    }\r\n    const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state');\r\n    this.state = elementToggleAttr || '';\r\n    const elementModeAttr = this.element.getAttribute('data-kt-toggle-mode');\r\n    this.mode = elementModeAttr || '';\r\n    this.attribute =\r\n      'data-kt-' + this.element.getAttribute('data-kt-toggle-name');\r\n\r\n    // Event Handlers\r\n    this._handlers();\r\n\r\n    // Update Instance\r\n    // Bind Instance\r\n    DataUtil.set(this.element, 'toggle', this);\r\n  }\r\n\r\n  private _handlers = () => {\r\n    this.element.addEventListener('click', (e: Event) => {\r\n      e.preventDefault();\r\n\r\n      if (this.mode === '') {\r\n        this._toggle();\r\n        return;\r\n      }\r\n\r\n      if (this.mode === 'off' && !this._isEnabled()) {\r\n        this._toggle();\r\n      } else if (this.mode === 'on' && this._isEnabled()) {\r\n        this._toggle();\r\n      }\r\n    });\r\n  };\r\n\r\n  // Event handlers\r\n  private _toggle = () => {\r\n    // Trigger \"after.toggle\" event\r\n    EventHandlerUtil.trigger(this.element, 'kt.toggle.change');\r\n\r\n    if (this._isEnabled()) {\r\n      this._disable();\r\n    } else {\r\n      this._enable();\r\n    }\r\n\r\n    // Trigger \"before.toggle\" event\r\n    EventHandlerUtil.trigger(this.element, 'kt.toggle.changed');\r\n    return this;\r\n  };\r\n\r\n  private _enable = () => {\r\n    if (this._isEnabled()) {\r\n      return;\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.toggle.enable');\r\n    this.target?.setAttribute(this.attribute, 'on');\r\n    if (this.state.length > 0) {\r\n      this.element.classList.add(this.state);\r\n    }\r\n\r\n    if (this.options.saveState) {\r\n      CookieComponent.set(this.attribute, 'on', {});\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled');\r\n    return this;\r\n  };\r\n\r\n  private _disable = () => {\r\n    if (!this._isEnabled()) {\r\n      return false;\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.toggle.disable');\r\n    this.target?.removeAttribute(this.attribute);\r\n\r\n    if (this.state.length > 0) {\r\n      this.element.classList.remove(this.state);\r\n    }\r\n\r\n    if (this.options.saveState) {\r\n      CookieComponent.delete(this.attribute);\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled');\r\n    return this;\r\n  };\r\n\r\n  private _isEnabled = () => {\r\n    if (!this.target) {\r\n      return false;\r\n    }\r\n\r\n    return (\r\n      String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\r\n    );\r\n  };\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n\r\n  // Plugin API\r\n  // Plugin API\r\n  public toggle = () => {\r\n    return this._toggle();\r\n  };\r\n\r\n  public enable = () => {\r\n    return this._enable();\r\n  };\r\n\r\n  public disable = () => {\r\n    return this._disable();\r\n  };\r\n\r\n  public isEnabled = () => {\r\n    return this._isEnabled();\r\n  };\r\n\r\n  public goElement = () => {\r\n    return this.element;\r\n  };\r\n\r\n  // Event API\r\n  public on = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.on(this.element, name, handler);\r\n  };\r\n\r\n  public one = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.one(this.element, name, handler);\r\n  };\r\n\r\n  public off = (name: string, handlerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handlerId);\r\n  };\r\n\r\n  public trigger = (name: string, event?: Event) => {\r\n    return EventHandlerUtil.trigger(this.element, name, event);\r\n  };\r\n\r\n  // Static methods\r\n  public static getInstance = (el: HTMLElement) => {\r\n    const toggleElement = DataUtil.get(el, 'toggle');\r\n    if (toggleElement) {\r\n      return toggleElement;\r\n    }\r\n\r\n    return null;\r\n  };\r\n\r\n  public static createInstances = (selector: string) => {\r\n    const elements = document.body.querySelectorAll<HTMLElement>(selector);\r\n    elements.forEach((el) => {\r\n      let toggle = ToggleComponent.getInstance(el);\r\n      if (!toggle) {\r\n        toggle = new ToggleComponent(el, defaultToggleOptions);\r\n      }\r\n    });\r\n  };\r\n\r\n  public static reinitialization = () => {\r\n    ToggleComponent.createInstances('[data-kt-toggle]');\r\n  };\r\n\r\n  public static bootstrap = () => {\r\n    ToggleComponent.createInstances('[data-kt-toggle]');\r\n  };\r\n}\r\n\r\nexport { ToggleComponent, defaultToggleOptions };\r\n","/* eslint-disable array-callback-return */\r\n/* eslint-disable no-useless-escape */\r\nimport {DataUtil} from '../_utils/index'\r\n\r\nexport interface IPasswordMeterOptions {\r\n  minLength: number\r\n  checkUppercase: boolean\r\n  checkLowercase: boolean\r\n  checkDigit: boolean\r\n  checkChar: boolean\r\n  scoreHighlightClass: string\r\n}\r\n\r\nexport interface IPasswordMeterQueries {\r\n  componentName: string\r\n  instanseQuery: string\r\n  inputQuery: string\r\n  visibilityQuery: string\r\n  highlightQuery: string\r\n}\r\n\r\nconst defaultPasswordMeterOptions = {\r\n  minLength: 8,\r\n  checkUppercase: true,\r\n  checkLowercase: true,\r\n  checkDigit: true,\r\n  checkChar: true,\r\n  scoreHighlightClass: 'active',\r\n}\r\n\r\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\r\n  componentName: 'password-meter',\r\n  instanseQuery: '[data-kt-password-meter]',\r\n  inputQuery: 'input[type]',\r\n  visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\r\n  highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\r\n}\r\n\r\nclass PasswordMeterComponent {\r\n  element: HTMLElement\r\n  inputElement: HTMLInputElement | null\r\n  visibilityElement: HTMLElement | null\r\n  highlightElement: HTMLElement | null\r\n  options: IPasswordMeterOptions\r\n  queries: IPasswordMeterQueries\r\n  score: number\r\n  checkSteps: number\r\n\r\n  constructor(\r\n    _element: HTMLElement,\r\n    _options: IPasswordMeterOptions,\r\n    _queries: IPasswordMeterQueries\r\n  ) {\r\n    this.element = _element\r\n    this.options = Object.assign(defaultPasswordMeterOptions, _options)\r\n    this.queries = _queries\r\n    this.score = 0\r\n    this.checkSteps = 5\r\n\r\n    // Elements\r\n    this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n    this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\r\n    this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\r\n\r\n    // Event Handlers\r\n    this.handlers()\r\n\r\n    DataUtil.set(this.element, this.queries.componentName, this)\r\n  }\r\n\r\n  private handlers(): void {\r\n    if (this.inputElement) {\r\n      this.inputElement.addEventListener('input', () => {\r\n        this.check()\r\n      })\r\n    }\r\n\r\n    if (this.visibilityElement) {\r\n      this.visibilityElement.addEventListener('click', () => {\r\n        this.visitbility()\r\n      })\r\n    }\r\n  }\r\n\r\n  private visitbility() {\r\n    if (this.visibilityElement && this.inputElement) {\r\n      const visibleIcon = this.visibilityElement.querySelector(\r\n        'i:not(.d-none), .svg-icon:not(.d-none)'\r\n      )\r\n\r\n      const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\r\n\r\n      const typeAttr = this.inputElement.getAttribute('type') || ''\r\n\r\n      if (typeAttr === 'password') {\r\n        this.inputElement.setAttribute('type', 'text')\r\n      } else {\r\n        this.inputElement.setAttribute('type', 'password')\r\n      }\r\n\r\n      visibleIcon?.classList.add('d-none')\r\n      hiddenIcon?.classList.remove('d-none')\r\n\r\n      this.inputElement.focus()\r\n    }\r\n  }\r\n\r\n  private checkScore(): number {\r\n    return 0\r\n  }\r\n\r\n  private checkLength(): boolean {\r\n    if (this.inputElement) {\r\n      return this.inputElement.value.length >= this.options.minLength // 20 score\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  private checkLowerCase(): boolean {\r\n    const val = this.inputElement ? this.inputElement.value : ''\r\n    return /[a-z]/.test(val) // 20 score\r\n  }\r\n\r\n  private checkUppercase(): boolean {\r\n    const val = this.inputElement ? this.inputElement.value : ''\r\n    return /[A-Z]/.test(val) // 20 score\r\n  }\r\n\r\n  private checkDigit(): boolean {\r\n    const val = this.inputElement ? this.inputElement.value : ''\r\n    return /[0-9]/.test(val) // 20 score\r\n  }\r\n\r\n  private checkChar(): boolean {\r\n    const val = this.inputElement ? this.inputElement.value : ''\r\n    return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\r\n  }\r\n\r\n  private getCheckScore(): number {\r\n    let count = 1\r\n    if (this.options.checkUppercase) {\r\n      count++\r\n    }\r\n\r\n    if (this.options.checkLowercase) {\r\n      count++\r\n    }\r\n\r\n    if (this.options.checkDigit) {\r\n      count++\r\n    }\r\n\r\n    if (this.options.checkChar) {\r\n      count++\r\n    }\r\n\r\n    this.checkSteps = count\r\n    return 100 / this.checkSteps\r\n  }\r\n\r\n  private highlight() {\r\n    const items = this.highlightElement\r\n      ? [].slice.call(this.highlightElement.querySelectorAll('div'))\r\n      : []\r\n    const total = items.length\r\n    let index = 0\r\n    const checkScore = this.getCheckScore()\r\n    const score = this.getScore()\r\n\r\n    items.map((item: HTMLElement) => {\r\n      index++\r\n      if (checkScore * index * (this.checkSteps / total) <= score) {\r\n        item.classList.add('active')\r\n      } else {\r\n        item.classList.remove('active')\r\n      }\r\n    })\r\n  }\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n  public reset = () => {\r\n    this.score = 0\r\n    this.highlight()\r\n  }\r\n\r\n  public getScore() {\r\n    return this.score\r\n  }\r\n\r\n  public check() {\r\n    let score = 0\r\n    const checkScore = this.getCheckScore()\r\n    if (this.checkLength()) {\r\n      score = score + checkScore\r\n    }\r\n\r\n    if (this.options.checkUppercase && this.checkLowerCase()) {\r\n      score = score + checkScore\r\n    }\r\n\r\n    if (this.options.checkLowercase && this.checkUppercase()) {\r\n      score = score + checkScore\r\n    }\r\n\r\n    if (this.options.checkDigit && this.checkDigit()) {\r\n      score = score + checkScore\r\n    }\r\n\r\n    if (this.options.checkChar && this.checkChar()) {\r\n      score = score + checkScore\r\n    }\r\n\r\n    this.score = score\r\n    this.highlight()\r\n  }\r\n\r\n  // Static methods\r\n  public static getInstance = (\r\n    el: HTMLElement,\r\n    componentName: string = defaultPasswordMeterQueires.componentName\r\n  ): PasswordMeterComponent | undefined  => {\r\n    const passwordMeter = DataUtil.get(el, componentName)\r\n    if (passwordMeter) {\r\n      return passwordMeter as PasswordMeterComponent\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  public static createInstances = (\r\n    selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n    options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n    queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n  ) => {\r\n    const elements = document.body.querySelectorAll(selector)\r\n    elements.forEach((el) => {\r\n      const item = el as HTMLElement\r\n      let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n      if (!passwordMeter) {\r\n        passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n      }\r\n    })\r\n  }\r\n\r\n  public static createInsance = (\r\n    selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n    options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n    queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n  ): PasswordMeterComponent | undefined => {\r\n    const element = document.body.querySelector(selector)\r\n    if (!element) {\r\n      return\r\n    }\r\n    const item = element as HTMLElement\r\n    let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n    if (!passwordMeter) {\r\n      passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n    }\r\n    return passwordMeter\r\n  }\r\n\r\n  public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\r\n    PasswordMeterComponent.createInstances(selector)\r\n  }\r\n\r\n  public static reinitialization = (\r\n    selector: string = defaultPasswordMeterQueires.instanseQuery\r\n  ) => {\r\n    PasswordMeterComponent.createInstances(selector)\r\n  }\r\n}\r\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\r\n","import {\r\n  getAttributeValueByBreakpoint,\r\n  stringSnakeToCamel,\r\n  getObjectPropertyValueByKey,\r\n  EventHandlerUtil,\r\n  throttle,\r\n} from '../_utils/index'\r\n\r\nexport class SwapperStore {\r\n  static store: Map<string, SwapperComponent> = new Map()\r\n\r\n  public static set(instanceId: string, drawerComponentObj: SwapperComponent): void {\r\n    if (SwapperStore.has(instanceId)) {\r\n      return\r\n    }\r\n\r\n    SwapperStore.store.set(instanceId, drawerComponentObj)\r\n  }\r\n\r\n  public static get(instanceId: string): SwapperComponent | undefined {\r\n    if (!SwapperStore.has(instanceId)) {\r\n      return\r\n    }\r\n    return SwapperStore.store.get(instanceId)\r\n  }\r\n\r\n  public static remove(instanceId: string): void {\r\n    if (!SwapperStore.has(instanceId)) {\r\n      return\r\n    }\r\n\r\n    SwapperStore.store.delete(instanceId)\r\n  }\r\n\r\n  public static has(instanceId: string): boolean {\r\n    return SwapperStore.store.has(instanceId)\r\n  }\r\n\r\n  public static getAllInstances() {\r\n    return SwapperStore.store\r\n  }\r\n}\r\n\r\nexport interface ISwapperOptions {\r\n  mode: string\r\n}\r\n\r\nexport interface ISwapperQueries {\r\n  componentName: string\r\n  instanseQuery: string\r\n  attrQuery: string\r\n}\r\n\r\nconst defaultSwapperOptions: ISwapperOptions = {\r\n  mode: 'append',\r\n}\r\n\r\nconst defaultSwapperQueires: ISwapperQueries = {\r\n  componentName: 'swapper',\r\n  instanseQuery: '[data-kt-swapper=\"true\"]',\r\n  attrQuery: 'data-kt-swapper-',\r\n}\r\n\r\nclass SwapperComponent {\r\n  element: HTMLElement\r\n  options: ISwapperOptions\r\n  queries: ISwapperQueries\r\n\r\n  constructor(_element: HTMLElement, _options: ISwapperOptions, _queries: ISwapperQueries) {\r\n    this.element = _element\r\n    this.options = Object.assign(defaultSwapperOptions, _options)\r\n    this.queries = _queries\r\n\r\n    // Initial update\r\n    this.update()\r\n\r\n    SwapperStore.set(this.element.id, this)\r\n  }\r\n\r\n  private getOption(name: string) {\r\n    const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n    if (attr) {\r\n      let value = getAttributeValueByBreakpoint(attr)\r\n      if (attr != null && String(value) === 'true') {\r\n        return true\r\n      } else if (value !== null && String(value) === 'false') {\r\n        return false\r\n      }\r\n      return value\r\n    } else {\r\n      const optionName = stringSnakeToCamel(name)\r\n      const option = getObjectPropertyValueByKey(this.options, optionName)\r\n      if (option) {\r\n        return getAttributeValueByBreakpoint(option)\r\n      } else {\r\n        return null\r\n      }\r\n    }\r\n  }\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n  public update = () => {\r\n    const parentSelector = this.getOption('parent')?.toString()\r\n    const mode = this.getOption('mode')\r\n    const parentElement = parentSelector ? document.querySelector(parentSelector) : null\r\n\r\n    if (parentElement && this.element.parentNode !== parentElement) {\r\n      if (mode === 'prepend') {\r\n        parentElement.prepend(this.element)\r\n      } else if (mode === 'append') {\r\n        parentElement.append(this.element)\r\n      }\r\n    }\r\n  }\r\n\r\n  // Event API\r\n  public on = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.on(this.element, name, handler)\r\n  }\r\n\r\n  public one = (name: string, handler: Function) => {\r\n    return EventHandlerUtil.one(this.element, name, handler)\r\n  }\r\n\r\n  public off = (name: string, handlerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handlerId)\r\n  }\r\n\r\n  public trigger = (name: string, event: Event) => {\r\n    return EventHandlerUtil.trigger(this.element, name, event)\r\n  }\r\n\r\n  // Static methods\r\n  public static getInstance = (\r\n    el: HTMLElement,\r\n    componentName: string = defaultSwapperQueires.componentName\r\n  ): SwapperComponent | null => {\r\n    const place = SwapperStore.get(el.id)\r\n    if (place) {\r\n      return place as SwapperComponent\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  public static createInstances = (\r\n    selector: string = defaultSwapperQueires.instanseQuery,\r\n    options: ISwapperOptions = defaultSwapperOptions,\r\n    queries: ISwapperQueries = defaultSwapperQueires\r\n  ) => {\r\n    const elements = document.body.querySelectorAll(selector)\r\n    elements.forEach((el) => {\r\n      const item = el as HTMLElement\r\n      let place = SwapperComponent.getInstance(item)\r\n      if (!place) {\r\n        place = new SwapperComponent(item, options, queries)\r\n      }\r\n    })\r\n  }\r\n\r\n  public static createInsance = (\r\n    selector: string = defaultSwapperQueires.instanseQuery,\r\n    options: ISwapperOptions = defaultSwapperOptions,\r\n    queries: ISwapperQueries = defaultSwapperQueires\r\n  ): SwapperComponent | undefined => {\r\n    const element = document.body.querySelector(selector)\r\n    if (!element) {\r\n      return\r\n    }\r\n    const item = element as HTMLElement\r\n    let place = SwapperComponent.getInstance(item)\r\n    if (!place) {\r\n      place = new SwapperComponent(item, options, queries)\r\n    }\r\n    return place\r\n  }\r\n\r\n  public static bootstrap = (selector: string = defaultSwapperQueires.instanseQuery) => {\r\n    SwapperComponent.createInstances(selector)\r\n  }\r\n\r\n  public static reinitialization = (selector: string = defaultSwapperQueires.instanseQuery) => {\r\n    SwapperComponent.createInstances(selector)\r\n  }\r\n}\r\n\r\n// Window resize handler\r\nwindow.addEventListener('resize', function () {\r\n  let timer\r\n  throttle(\r\n    timer,\r\n    () => {\r\n      // Locate and update Offcanvas instances on window resize\r\n      const elements = document.querySelectorAll(defaultSwapperQueires.instanseQuery)\r\n      elements.forEach((el) => {\r\n        const place = SwapperComponent.getInstance(el as HTMLElement)\r\n        if (place) {\r\n          place.update()\r\n        }\r\n      })\r\n    },\r\n    200\r\n  )\r\n})\r\n\r\nexport {SwapperComponent, defaultSwapperOptions, defaultSwapperQueires}\r\n","import {createPopper, VirtualElement} from '@popperjs/core'\r\nimport {\r\n  getElementChild,\r\n  getElementParents,\r\n  getAttributeValueByBreakpoint,\r\n  getUniqueIdWithPrefix,\r\n  DataUtil,\r\n  ElementStyleUtil,\r\n  EventHandlerUtil,\r\n  insertAfterElement,\r\n  slideUp,\r\n  slideDown,\r\n  DOMEventHandlerUtil,\r\n  throttle,\r\n  getHighestZindex,\r\n} from '../_utils/index'\r\n\r\nexport interface MenuOptions {\r\n  dropdown: {\r\n    hoverTimeout: number\r\n    zindex: number\r\n  }\r\n  accordion: {\r\n    slideSpeed: number\r\n    expand: boolean\r\n  }\r\n}\r\n\r\nconst defaultMenuOptions: MenuOptions = {\r\n  dropdown: {\r\n    hoverTimeout: 200,\r\n    zindex: 105,\r\n  },\r\n  accordion: {\r\n    slideSpeed: 250,\r\n    expand: false,\r\n  },\r\n}\r\n\r\ntype PopperPlacement =\r\n  | 'right'\r\n  | 'auto'\r\n  | 'auto-start'\r\n  | 'auto-end'\r\n  | 'top'\r\n  | 'bottom'\r\n  | 'left'\r\n  | 'top-start'\r\n  | 'top-end'\r\n  | 'bottom-start'\r\n  | 'bottom-end'\r\n  | 'right-start'\r\n  | 'right-end'\r\n  | 'left-start'\r\n  | 'left-end'\r\n  | undefined\r\n\r\nclass MenuComponent {\r\n  element: HTMLElement\r\n  options: MenuOptions\r\n  instanceUid: string\r\n  triggerElement: HTMLElement | null = null\r\n\r\n  constructor(_element: HTMLElement, options: MenuOptions) {\r\n    this.element = _element\r\n    this.options = Object.assign(defaultMenuOptions, options)\r\n    this.instanceUid = getUniqueIdWithPrefix('menu')\r\n    // this.element.setAttribute('data-kt-menu', 'true')\r\n    this._setTriggerElement()\r\n    this._update()\r\n    DataUtil.set(this.element, 'menu', this)\r\n    return this\r\n  }\r\n\r\n  // Set external trigger element\r\n  private _setTriggerElement = () => {\r\n    const target = document.querySelector(\r\n      `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\r\n    )\r\n\r\n    if (target) {\r\n      this.triggerElement = target as HTMLElement\r\n    } else if (this.element.closest('[data-kt-menu-trigger]')) {\r\n      this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\r\n    } else if (\r\n      this.element.parentNode &&\r\n      getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\r\n    ) {\r\n      const child = getElementChild(\r\n        this.element.parentNode as HTMLElement,\r\n        '[data-kt-menu-trigger]'\r\n      )\r\n      if (child) {\r\n        this.triggerElement = child\r\n      }\r\n    }\r\n\r\n    if (this.triggerElement) {\r\n      DataUtil.set(this.triggerElement, 'menu', this)\r\n    }\r\n  }\r\n\r\n  // Test if menu has external trigger element\r\n  private _isTriggerElement = (item: HTMLElement) => {\r\n    return this.triggerElement === item\r\n  }\r\n\r\n  // Get item option(through html attributes)\r\n  private _getItemOption = (item: HTMLElement, name: string) => {\r\n    let value: string | JSON | null | boolean = null\r\n    if (item && item.hasAttribute('data-kt-menu-' + name)) {\r\n      const attr = item.getAttribute('data-kt-menu-' + name) || ''\r\n      value = getAttributeValueByBreakpoint(attr)\r\n      if (value !== null && String(value) === 'true') {\r\n        value = true\r\n      } else if (value !== null && String(value) === 'false') {\r\n        value = false\r\n      }\r\n    }\r\n    return value\r\n  }\r\n\r\n  // Get item element\r\n  private _getItemElement = (_element: HTMLElement): HTMLElement | undefined => {\r\n    // Element is the external trigger element\r\n    if (this._isTriggerElement(_element)) {\r\n      return _element\r\n    }\r\n\r\n    // Element has item toggler attribute\r\n    if (_element.hasAttribute('data-kt-menu-trigger')) {\r\n      return _element\r\n    }\r\n\r\n    // Element has item DOM reference in it's data storage\r\n    const itemElement = DataUtil.get(_element, 'item')\r\n    if (itemElement) {\r\n      return itemElement as HTMLElement\r\n    }\r\n\r\n    // Item is parent of element\r\n    const item = _element.closest<HTMLElement>('.menu-item[data-kt-menu-trigger]')\r\n    if (item) {\r\n      return item\r\n    }\r\n\r\n    // Element's parent has item DOM reference in it's data storage\r\n    const sub = _element.closest('.menu-sub')\r\n    if (sub) {\r\n      const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n      if (subItem) {\r\n        return subItem as HTMLElement\r\n      }\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  // Get item parent element\r\n  private _getItemParentElement = (item: HTMLElement) => {\r\n    const sub = item.closest<HTMLElement>('.menu-sub')\r\n    if (!sub) {\r\n      return null\r\n    }\r\n\r\n    const subItem = DataUtil.get(sub, 'item')\r\n    if (subItem) {\r\n      return subItem as HTMLElement\r\n    }\r\n\r\n    const parentItem = sub.closest<HTMLElement>('.menu-item[data-kt-menu-trigger]')\r\n    if (sub && parentItem) {\r\n      return parentItem\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  // Get item parent elements\r\n  private _getItemParentElements = (item: HTMLElement) => {\r\n    const parents: Array<HTMLElement> = []\r\n    let parent: HTMLElement | null\r\n    let i = 0\r\n    let buffer: HTMLElement = item\r\n\r\n    do {\r\n      parent = this._getItemParentElement(buffer)\r\n      if (parent) {\r\n        parents.push(parent)\r\n        buffer = parent as HTMLElement\r\n      }\r\n\r\n      i++\r\n    } while (parent !== null && i < 20)\r\n\r\n    if (this.triggerElement) {\r\n      parents.unshift(this.triggerElement)\r\n    }\r\n\r\n    return parents\r\n  }\r\n\r\n  // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\r\n  private _getDropdownPopperConfig = (item: HTMLElement) => {\r\n    // Placement\r\n    const placementOption = this._getItemOption(item, 'placement')\r\n    let placement: PopperPlacement = 'right'\r\n    if (placementOption) {\r\n      placement = placementOption as PopperPlacement\r\n    }\r\n\r\n    // Flip\r\n    // const flipValue = this._getItemOption(item, 'flip')\r\n    // const flip = flipValue ? flipValue.toString().split(',') : []\r\n\r\n    // Offset\r\n    const offsetValue = this._getItemOption(item, 'offset')\r\n    const offset = offsetValue ? offsetValue.toString().split(',') : []\r\n\r\n    // Strategy\r\n    const strategy: 'absolute' | 'fixed' | undefined =\r\n      this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\r\n\r\n    return {\r\n      placement: placement,\r\n      strategy: strategy,\r\n      modifiers: [\r\n        {\r\n          name: 'offset',\r\n          options: {\r\n            offset: offset,\r\n          },\r\n        },\r\n        {\r\n          name: 'preventOverflow',\r\n        },\r\n        {\r\n          name: 'flip',\r\n          options: {\r\n            // altBoundary: true,\r\n            // fallbackPlacements: flip,\r\n            flipVariations: false,\r\n          },\r\n        },\r\n      ],\r\n    }\r\n  }\r\n\r\n  // Get item child element\r\n  private _getItemChildElement = (item: HTMLElement): HTMLElement | null => {\r\n    let selector = item\r\n\r\n    const subItem = DataUtil.get(item, 'sub')\r\n    if (subItem) {\r\n      selector = subItem as HTMLElement\r\n    }\r\n\r\n    if (selector) {\r\n      //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\r\n      const element = selector.querySelector<HTMLElement>('.menu-item[data-kt-menu-trigger]')\r\n      if (element) {\r\n        return element\r\n      }\r\n    }\r\n    return null\r\n  }\r\n\r\n  // Get item child elements\r\n  private _getItemChildElements = (item: HTMLElement) => {\r\n    const children: Array<HTMLElement> = []\r\n    let child: HTMLElement | null\r\n    let i = 0\r\n    let buffer = item\r\n    do {\r\n      child = this._getItemChildElement(buffer)\r\n      if (child) {\r\n        children.push(child)\r\n        buffer = child as HTMLElement\r\n      }\r\n\r\n      i++\r\n    } while (child !== null && i < 20)\r\n\r\n    return children\r\n  }\r\n\r\n  // Get item sub element\r\n  private _getItemSubElement = (item: HTMLElement): HTMLElement | null => {\r\n    if (!item) {\r\n      return null\r\n    }\r\n\r\n    if (this._isTriggerElement(item)) {\r\n      return this.element\r\n    }\r\n\r\n    if (item.classList.contains('menu-sub')) {\r\n      return item\r\n    } else if (DataUtil.has(item, 'sub')) {\r\n      const itemSub = DataUtil.get(item, 'sub')\r\n      return itemSub ? (itemSub as HTMLElement) : null\r\n    } else {\r\n      return getElementChild(item, '.menu-sub')\r\n    }\r\n  }\r\n\r\n  private _getCss = (el: HTMLElement, styleProp: string) => {\r\n    const defaultView = (el.ownerDocument || document).defaultView\r\n    if (!defaultView) {\r\n      return ''\r\n    }\r\n\r\n    // sanitize property name to css notation\r\n    // (hyphen separated words eg. font-Size)\r\n    styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n    return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n  }\r\n\r\n  // Get item sub type\r\n  private _getItemSubType = (element: HTMLElement) => {\r\n    const sub = this._getItemSubElement(element)\r\n    if (sub && parseInt(this._getCss(sub as HTMLElement, 'z-index')) > 0) {\r\n      return 'dropdown'\r\n    } else {\r\n      return 'accordion'\r\n    }\r\n  }\r\n\r\n  // Test if item's sub is shown\r\n  private _isItemSubShown = (item: HTMLElement) => {\r\n    let sub = this._getItemSubElement(item)\r\n    if (sub) {\r\n      if (this._getItemSubType(item) === 'dropdown') {\r\n        const subHTMLElement = sub as HTMLElement\r\n        return (\r\n          subHTMLElement.classList.contains('show') &&\r\n          subHTMLElement.hasAttribute('data-popper-placement')\r\n        )\r\n      } else {\r\n        return item.classList.contains('show')\r\n      }\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  // Test if item dropdown is permanent\r\n  private _isItemDropdownPermanent = (item: HTMLElement) => {\r\n    return this._getItemOption(item, 'permanent') === true\r\n  }\r\n\r\n  // Test if item's parent is shown\r\n  private _isItemParentShown = (item: HTMLElement) => {\r\n    return getElementParents(item, '.menu-item.show').length > 0\r\n  }\r\n\r\n  // Test of it is item sub element\r\n  private _isItemSubElement = (item: HTMLElement) => {\r\n    return item.classList.contains('menu-sub')\r\n  }\r\n\r\n  // Test if item has sub\r\n  private _hasItemSub = (item: HTMLElement) => {\r\n    return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\r\n  }\r\n\r\n  // Get link element\r\n  private _getItemLinkElement = (item: HTMLElement) => {\r\n    return getElementChild(item, '.menu-link')\r\n  }\r\n\r\n  // Get toggle element\r\n  private _getItemToggleElement = (item: HTMLElement) => {\r\n    if (this.triggerElement) {\r\n      return this.triggerElement\r\n    }\r\n\r\n    return this._getItemLinkElement(item)\r\n  }\r\n\r\n  // Show item dropdown\r\n  private _showDropdown = (item: HTMLElement) => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\r\n      return\r\n    }\r\n\r\n    // Hide all currently shown dropdowns except current one\r\n    MenuComponent.hideDropdowns(item)\r\n\r\n    // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\r\n    const sub = this._getItemSubElement(item)\r\n    const width = this._getItemOption(item, 'width')\r\n    const height = this._getItemOption(item, 'height')\r\n\r\n    let zindex = this.options.dropdown.zindex\r\n    const parentZindex = getHighestZindex(item) // update\r\n    // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\r\n    if (parentZindex !== null && parentZindex >= zindex) {\r\n      zindex = parentZindex + 1\r\n    }\r\n\r\n    if (zindex && sub) {\r\n      ElementStyleUtil.set(sub, 'z-index', zindex)\r\n    }\r\n\r\n    if (width && sub) {\r\n      ElementStyleUtil.set(sub, 'width', width)\r\n    }\r\n\r\n    if (height && sub) {\r\n      ElementStyleUtil.set(sub, 'height', height)\r\n    }\r\n\r\n    this.initDropdownPopper(item, sub as HTMLElement)\r\n\r\n    item.classList.add('show')\r\n    item.classList.add('menu-dropdown')\r\n    sub?.classList.add('show')\r\n\r\n    // Append the sub the the root of the menu\r\n    if (this._getItemOption(item, 'overflow') === true) {\r\n      if (sub) {\r\n        document.body.appendChild(sub)\r\n        DataUtil.set(item, 'sub', sub)\r\n        DataUtil.set(sub, 'item', item)\r\n        DataUtil.set(sub, 'menu', this)\r\n      }\r\n    } else {\r\n      if (sub) {\r\n        DataUtil.set(sub, 'item', item)\r\n      }\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\r\n  }\r\n\r\n  // Init dropdown popper(new)\r\n  private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\r\n    // Setup popper instance\r\n    let reference\r\n    const attach = this._getItemOption(item, 'attach') as string\r\n\r\n    if (attach) {\r\n      if (attach === 'parent') {\r\n        reference = item.parentNode\r\n      } else {\r\n        reference = document.querySelector(attach)\r\n      }\r\n    } else {\r\n      reference = item\r\n    }\r\n\r\n    if (reference) {\r\n      const popper = createPopper(\r\n        reference as Element | VirtualElement,\r\n        sub,\r\n        this._getDropdownPopperConfig(item)\r\n      )\r\n      DataUtil.set(item, 'popper', popper)\r\n    }\r\n  }\r\n\r\n  // Hide item dropdown\r\n  private _hideDropdown = (item: HTMLElement) => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\r\n      return\r\n    }\r\n\r\n    const sub = this._getItemSubElement(item)\r\n    if (sub) {\r\n      ElementStyleUtil.set(sub, 'z-index', '')\r\n      ElementStyleUtil.set(sub, 'width', '')\r\n      ElementStyleUtil.set(sub, 'height', '')\r\n    }\r\n\r\n    item.classList.remove('show')\r\n    item.classList.remove('menu-dropdown')\r\n    if (sub) {\r\n      sub.classList.remove('show')\r\n    }\r\n\r\n    // Append the sub back to it's parent\r\n    if (this._getItemOption(item, 'overflow') === true) {\r\n      if (item.classList.contains('menu-item')) {\r\n        if (sub) {\r\n          item.appendChild(sub)\r\n        }\r\n      } else {\r\n        insertAfterElement(this.element, item)\r\n      }\r\n\r\n      if (sub) {\r\n        DataUtil.remove(item, 'sub')\r\n        DataUtil.remove(sub, 'item')\r\n        DataUtil.remove(sub, 'menu')\r\n      }\r\n    }\r\n\r\n    if (DataUtil.has(item, 'popper') === true) {\r\n      // @ts-ignore\r\n      DataUtil.get(item, 'popper').destroy()\r\n      DataUtil.remove(item, 'popper')\r\n    }\r\n\r\n    // Destroy popper(new)\r\n    this.destroyDropdownPopper(item)\r\n    EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n  }\r\n\r\n  // Destroy dropdown popper(new)\r\n  private destroyDropdownPopper = (item: HTMLElement) => {\r\n    if (DataUtil.has(item, 'popper') === true) {\r\n      // @ts-ignore\r\n      DataUtil.get(item, 'popper').destroy()\r\n      DataUtil.remove(item, 'popper')\r\n    }\r\n\r\n    EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n  }\r\n\r\n  private _showAccordion = (item: HTMLElement) => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\r\n      return\r\n    }\r\n\r\n    if (this.options.accordion.expand === false) {\r\n      this._hideAccordions(item)\r\n    }\r\n\r\n    if (DataUtil.has(item, 'popper') === true) {\r\n      this._hideDropdown(item)\r\n    }\r\n\r\n    item.classList.add('hover') // updateWW\r\n    item.classList.add('showing')\r\n\r\n    const subElement = this._getItemSubElement(item)\r\n    if (subElement) {\r\n      const sub = subElement as HTMLElement\r\n      slideDown(sub, this.options.accordion.slideSpeed, () => {\r\n        item.classList.remove('showing')\r\n        item.classList.add('show')\r\n        sub.classList.add('show')\r\n        EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\r\n      })\r\n    }\r\n  }\r\n\r\n  private _hideAccordion = (item: HTMLElement) => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\r\n      return\r\n    }\r\n\r\n    const sub = this._getItemSubElement(item)\r\n    item.classList.add('hiding')\r\n\r\n    if (sub) {\r\n      slideUp(sub, this.options.accordion.slideSpeed, () => {\r\n        item.classList.remove('hiding')\r\n        item.classList.remove('show')\r\n        sub.classList.remove('show')\r\n        item.classList.remove('hover') // update\r\n        EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\r\n      })\r\n    }\r\n  }\r\n\r\n  // Hide all shown accordions of item\r\n  private _hideAccordions = (item: HTMLElement) => {\r\n    const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\r\n    if (itemsToHide && itemsToHide.length > 0) {\r\n      for (var i = 0, len = itemsToHide.length; i < len; i++) {\r\n        const itemToHide = itemsToHide[i] as HTMLElement\r\n\r\n        if (\r\n          this._getItemSubType(itemToHide) === 'accordion' &&\r\n          itemToHide !== item &&\r\n          item.contains(itemToHide) === false &&\r\n          itemToHide.contains(item) === false\r\n        ) {\r\n          this._hideAccordion(itemToHide)\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  // Event Handlers\r\n  // Reset item state classes if item sub type changed\r\n  private _reset = (item: HTMLElement) => {\r\n    if (this._hasItemSub(item) === false) {\r\n      return\r\n    }\r\n\r\n    const sub = this._getItemSubElement(item)\r\n\r\n    // Reset sub state if sub type is changed during the window resize\r\n    if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\r\n      // updated\r\n      item.classList.remove('hover')\r\n      item.classList.remove('show')\r\n      item.classList.remove('show')\r\n      if (sub) {\r\n        sub.classList.remove('show')\r\n      }\r\n    } // updated\r\n  }\r\n\r\n  // TODO: not done\r\n  private _destroy = () => {}\r\n\r\n  // Update all item state classes if item sub type changed\r\n  private _update = () => {\r\n    const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\r\n    items.forEach((el) => this._reset(el as HTMLElement))\r\n  }\r\n\r\n  // Hide item sub\r\n  private _hide = (item: HTMLElement) => {\r\n    if (!item) {\r\n      return\r\n    }\r\n\r\n    if (this._isItemSubShown(item) === false) {\r\n      return\r\n    }\r\n\r\n    if (this._getItemSubType(item) === 'dropdown') {\r\n      this._hideDropdown(item)\r\n    } else if (this._getItemSubType(item) === 'accordion') {\r\n      this._hideAccordion(item)\r\n    }\r\n  }\r\n\r\n  // Show item sub\r\n  private _show = (item: HTMLElement) => {\r\n    if (!item) {\r\n      return\r\n    }\r\n\r\n    if (this._isItemSubShown(item) === true) {\r\n      return\r\n    }\r\n\r\n    if (this._getItemSubType(item) === 'dropdown') {\r\n      this._showDropdown(item) // // show current dropdown\r\n    } else if (this._getItemSubType(item) === 'accordion') {\r\n      this._showAccordion(item)\r\n    }\r\n\r\n    // Remember last submenu type\r\n\r\n    DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\r\n  }\r\n\r\n  // Toggle item sub\r\n  private _toggle = (item: HTMLElement) => {\r\n    if (!item) {\r\n      return\r\n    }\r\n\r\n    if (this._isItemSubShown(item) === true) {\r\n      this._hide(item)\r\n    } else {\r\n      this._show(item)\r\n    }\r\n  }\r\n\r\n  // Mouseout handle\r\n  private _mouseout = (element: HTMLElement, e: MouseEvent) => {\r\n    const item = this._getItemElement(element)\r\n    if (!item) {\r\n      return\r\n    }\r\n\r\n    if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n      return\r\n    }\r\n\r\n    const timeout = setTimeout(() => {\r\n      if (DataUtil.get(item, 'hover') === '1') {\r\n        this._hide(item)\r\n      }\r\n    }, this.options.dropdown.hoverTimeout)\r\n\r\n    DataUtil.set(item, 'hover', '1')\r\n    DataUtil.set(item, 'timeout', timeout)\r\n  }\r\n\r\n  // Mouseover handle\r\n  private _mouseover = (element: HTMLElement, e: MouseEvent) => {\r\n    const item = this._getItemElement(element)\r\n    if (!item) {\r\n      return\r\n    }\r\n\r\n    if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n      return\r\n    }\r\n\r\n    if (DataUtil.get(item, 'hover') === '1') {\r\n      const timeout = DataUtil.get(item, 'timeout')\r\n      if (timeout) {\r\n        clearTimeout(timeout as number)\r\n      }\r\n      DataUtil.remove(item, 'hover')\r\n      DataUtil.remove(item, 'timeout')\r\n    }\r\n\r\n    this._show(item)\r\n  }\r\n\r\n  // Dismiss handler\r\n  private _dismiss = (element: HTMLElement, e: Event) => {\r\n    const item = this._getItemElement(element)\r\n    if (!item) {\r\n      return\r\n    }\r\n    const items = this._getItemChildElements(item)\r\n    //if ( item !== null && _getItemOption(item, 'trigger') === 'click' &&  _getItemSubType(item) === 'dropdown' ) {\r\n    const itemSubType = this._getItemSubType(item)\r\n    if (item !== null && itemSubType === 'dropdown') {\r\n      this._hide(item) // hide items dropdown\r\n\r\n      // Hide all child elements as well\r\n      if (items.length > 0) {\r\n        for (let i = 0, len = items.length; i < len; i++) {\r\n          //if ( _getItemOption(item, 'trigger') === 'click' &&  _getItemSubType(item) === 'dropdown' ) {\r\n          if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\r\n            this._hide(items[i] as HTMLElement)\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  // Link handler\r\n  private _link = (element: HTMLElement, e: Event) => {\r\n    if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\r\n      return\r\n    }\r\n\r\n    // Dismiss all shown dropdowns\r\n    MenuComponent.hideDropdowns(undefined)\r\n    EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\r\n  }\r\n\r\n  private _click = (element: HTMLElement, e: Event) => {\r\n    e.preventDefault()\r\n    const item = this._getItemElement(element)\r\n    if (item) {\r\n      if (this._getItemOption(item, 'trigger') !== 'click') {\r\n        return\r\n      }\r\n\r\n      if (this._getItemOption(item, 'toggle') === false) {\r\n        this._show(item)\r\n      } else {\r\n        this._toggle(item)\r\n      }\r\n    }\r\n  }\r\n\r\n  ///////////////////////\r\n  // ** Public API  ** //\r\n  ///////////////////////\r\n  public click = (element: HTMLElement, e: Event) => {\r\n    return this._click(element, e)\r\n  }\r\n\r\n  public link = (element: HTMLElement, e: Event) => {\r\n    return this._link(element, e)\r\n  }\r\n\r\n  public dismiss = (element: HTMLElement, e: Event) => {\r\n    return this._dismiss(element, e)\r\n  }\r\n\r\n  public mouseover = (element: HTMLElement, e: Event) => {\r\n    return this._mouseover(element, e as MouseEvent)\r\n  }\r\n\r\n  public mouseout = (element: HTMLElement, e: Event) => {\r\n    return this._mouseout(element, e as MouseEvent)\r\n  }\r\n\r\n  // General Methods\r\n  public getItemTriggerType = (item: HTMLElement) => {\r\n    return this._getItemOption(item, 'trigger')\r\n  }\r\n\r\n  public getItemSubType = (element: HTMLElement) => {\r\n    return this._getItemSubType(element)\r\n  }\r\n\r\n  public show = (item: HTMLElement) => {\r\n    return this._show(item)\r\n  }\r\n\r\n  public hide = (item: HTMLElement) => {\r\n    return this._hide(item)\r\n  }\r\n\r\n  public reset = (item: HTMLElement) => {\r\n    return this._reset(item)\r\n  }\r\n\r\n  public update = () => {\r\n    return this._update()\r\n  }\r\n\r\n  public getElement = () => {\r\n    return this.element\r\n  }\r\n\r\n  public getItemLinkElement = (item: HTMLElement) => {\r\n    return this._getItemLinkElement(item)\r\n  }\r\n\r\n  public getItemToggleElement = (item: HTMLElement) => {\r\n    return this._getItemToggleElement(item)\r\n  }\r\n\r\n  public getItemSubElement = (item: HTMLElement) => {\r\n    return this._getItemSubElement(item)\r\n  }\r\n\r\n  public getItemParentElements = (item: HTMLElement) => {\r\n    return this._getItemParentElements(item)\r\n  }\r\n\r\n  public isItemSubShown = (item: HTMLElement) => {\r\n    return this._isItemSubShown(item)\r\n  }\r\n\r\n  public isItemParentShown = (item: HTMLElement) => {\r\n    return this._isItemParentShown(item)\r\n  }\r\n\r\n  public getTriggerElement = () => {\r\n    return this.triggerElement\r\n  }\r\n\r\n  public isItemDropdownPermanent = (item: HTMLElement) => {\r\n    return this._isItemDropdownPermanent(item)\r\n  }\r\n\r\n  // Accordion Mode Methods\r\n  public hideAccordions = (item: HTMLElement) => {\r\n    return this._hideAccordions(item)\r\n  }\r\n\r\n  // Event API\r\n  public on = (name: string, handler: any) => {\r\n    return EventHandlerUtil.on(this.element, name, handler)\r\n  }\r\n\r\n  public one = (name: string, handler: any) => {\r\n    return EventHandlerUtil.one(this.element, name, handler)\r\n  }\r\n\r\n  public off = (name: string, handlerId: string) => {\r\n    return EventHandlerUtil.off(this.element, name, handlerId)\r\n  }\r\n\r\n  // public static methods\r\n  // Get KTMenu instance by element\r\n  public static getInstance = (element: HTMLElement): MenuComponent | null => {\r\n    // Element has menu DOM reference in it's DATA storage\r\n    const elementMenu = DataUtil.get(element, 'menu')\r\n    if (elementMenu) {\r\n      return elementMenu as MenuComponent\r\n    }\r\n\r\n    // Element has .menu parent\r\n    const menu = element.closest('.menu')\r\n    if (menu) {\r\n      const menuData = DataUtil.get(menu as HTMLElement, 'menu')\r\n      if (menuData) {\r\n        return menuData as MenuComponent\r\n      }\r\n    }\r\n\r\n    // Element has a parent with DOM reference to .menu in it's DATA storage\r\n    if (element.classList.contains('menu-link')) {\r\n      const sub = element.closest('.menu-sub')\r\n      if (sub) {\r\n        const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\r\n        if (subMenu) {\r\n          return subMenu as MenuComponent\r\n        }\r\n      }\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  // Hide all dropdowns and skip one if provided\r\n  public static hideDropdowns = (skip: HTMLElement | undefined) => {\r\n    const items = document.querySelectorAll<HTMLElement>(\r\n      '.show.menu-dropdown[data-kt-menu-trigger]'\r\n    )\r\n\r\n    if (items && items.length > 0) {\r\n      for (let i = 0, len = items.length; i < len; i++) {\r\n        const item = items[i]\r\n        const menu = MenuComponent.getInstance(item as HTMLElement)\r\n\r\n        if (menu && menu.getItemSubType(item) === 'dropdown') {\r\n          if (skip) {\r\n            if (\r\n              // @ts-ignore\r\n              menu.getItemSubElement(item).contains(skip) === false &&\r\n              item.contains(skip) === false &&\r\n              item !== skip\r\n            ) {\r\n              menu.hide(item)\r\n            }\r\n          } else {\r\n            menu.hide(item)\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  public static updateDropdowns = () => {\r\n    const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n    if (items && items.length > 0) {\r\n      for (var i = 0, len = items.length; i < len; i++) {\r\n        var item = items[i]\r\n\r\n        if (DataUtil.has(item as HTMLElement, 'popper')) {\r\n          // @ts-ignore\r\n          DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  // Global handlers\r\n  public static createInstances = (selector: string) => {\r\n    // Initialize menus\r\n    document.querySelectorAll(selector).forEach((el) => {\r\n      const menuItem = el as HTMLElement\r\n      let menuInstance = MenuComponent.getInstance(menuItem)\r\n      if (!menuInstance) {\r\n        menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\r\n      }\r\n    })\r\n  }\r\n\r\n  public static initGlobalHandlers = () => {\r\n    // Dropdown handler\r\n    document.addEventListener('click', (e) => {\r\n      const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n      if (menuItems && menuItems.length > 0) {\r\n        for (let i = 0; i < menuItems.length; i++) {\r\n          const item = menuItems[i] as HTMLElement\r\n          const menuObj = MenuComponent.getInstance(item) as MenuComponent\r\n          if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\r\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n            const menu = menuObj.getElement()\r\n            const sub = menuObj.getItemSubElement(item) as HTMLElement\r\n            if (item === e.target || item.contains(e.target as HTMLElement)) {\r\n              continue\r\n            }\r\n\r\n            if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\r\n              continue\r\n            }\r\n            menuObj.hide(item)\r\n          }\r\n        }\r\n      }\r\n    })\r\n\r\n    // Sub toggle handler\r\n    DOMEventHandlerUtil.on(\r\n      document.body,\r\n      '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\r\n      'click',\r\n      function (this: HTMLElement, e: Event) {\r\n        const menu = MenuComponent.getInstance(this) as MenuComponent\r\n        if (menu) {\r\n          return menu.click(this, e)\r\n        }\r\n      }\r\n    )\r\n\r\n    // // Link handler\r\n    DOMEventHandlerUtil.on(\r\n      document.body,\r\n      '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\r\n      'click',\r\n      function (this: HTMLElement, e: Event) {\r\n        e.stopPropagation()\r\n        const menu = MenuComponent.getInstance(this)\r\n        if (menu && menu.link) {\r\n          return menu.link(this, e)\r\n        }\r\n      }\r\n    )\r\n\r\n    // Dismiss handler\r\n    DOMEventHandlerUtil.on(\r\n      document.body,\r\n      '[data-kt-menu-dismiss=\"true\"]',\r\n      'click',\r\n      function (this: HTMLElement, e: Event) {\r\n        const menu = MenuComponent.getInstance(this) as MenuComponent\r\n        if (menu) {\r\n          return menu.dismiss(this, e)\r\n        }\r\n      }\r\n    )\r\n\r\n    // Mouseover handler\r\n    DOMEventHandlerUtil.on(\r\n      document.body,\r\n      '[data-kt-menu-trigger], .menu-sub',\r\n      'mouseover',\r\n      function (this: HTMLElement, e: Event) {\r\n        const menu = MenuComponent.getInstance(this) as MenuComponent\r\n        if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n          return menu.mouseover(this, e)\r\n        }\r\n      }\r\n    )\r\n\r\n    // Mouseout handler\r\n    DOMEventHandlerUtil.on(\r\n      document.body,\r\n      '[data-kt-menu-trigger], .menu-sub',\r\n      'mouseout',\r\n      function (this: HTMLElement, e: Event) {\r\n        const menu = MenuComponent.getInstance(this) as MenuComponent\r\n        if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n          return menu.mouseout(this, e)\r\n        }\r\n      }\r\n    )\r\n\r\n    // Resize handler\r\n    window.addEventListener('resize', () => {\r\n      let timer\r\n      throttle(\r\n        timer,\r\n        () => {\r\n          // Locate and update Drawer instances on window resize\r\n          const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\r\n          elements.forEach((el) => {\r\n            const menu = MenuComponent.getInstance(el as HTMLElement)\r\n            if (menu) {\r\n              menu.update()\r\n            }\r\n          })\r\n        },\r\n        200\r\n      )\r\n    })\r\n  }\r\n\r\n  public static bootstrap = () => {\r\n    MenuComponent.initGlobalHandlers()\r\n    MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n  }\r\n\r\n  public static reinitialization = () => {\r\n    MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n  }\r\n\r\n  public static createInsance = (\r\n    selector: string,\r\n    options: MenuOptions = defaultMenuOptions\r\n  ): MenuComponent | undefined => {\r\n    const element = document.body.querySelector(selector)\r\n    if (!element) {\r\n      return\r\n    }\r\n    const item = element as HTMLElement\r\n    let menu = MenuComponent.getInstance(item)\r\n    if (!menu) {\r\n      menu = new MenuComponent(item, options)\r\n    }\r\n    return menu\r\n  }\r\n}\r\n\r\nexport {MenuComponent, defaultMenuOptions}\r\n","import { EventHandlerUtil } from '../_utils'\n\ntype Mode = 'light' | 'dark' | 'system'\n\nclass ThemeMode {\n    menu: HTMLElement | null = null\n    element: HTMLElement | null = null\n\n    private getParamName = (postfix: string): string => {\n        const ktName = document.body.hasAttribute('data-kt-name')\n        const name = ktName ? ktName + '_' : ''\n        return 'kt_' + name + 'theme_mode_' + postfix\n    }\n\n    public getMode = (): Mode => {\n        const modeParam: string = this.getParamName('value')\n        const menuMode: Mode | '' = this.getMenuMode()\n        const defaultMode = 'light'\n        if (!localStorage) {\n            return defaultMode\n        }\n\n        const ls = localStorage.getItem(modeParam)\n        if (ls) {\n            return ls as Mode\n        }\n\n        const dataTheme = this.element?.getAttribute('data-theme')\n        if (dataTheme) {\n            return dataTheme as Mode\n        }\n\n        if (!menuMode) {\n            return defaultMode\n        }\n\n        if (menuMode === 'system') {\n            return this.getSystemMode()\n        }\n\n        return menuMode\n    }\n\n    public setMode = (mode: Mode, menuMode: Mode | ''): void => {\n        // Check input values\n        if (mode !== 'light' && mode !== 'dark') {\n            return\n        }\n\n        // Get param names\n        const modeParam: string = this.getParamName('value')\n        const menuModeParam: string = this.getParamName('menu')\n\n        // Reset mode if system mode was changed\n        if (menuMode === 'system') {\n            if (this.getSystemMode() !== mode) {\n                mode = this.getSystemMode()\n            }\n        }\n\n        // Check menu mode\n        if (!menuMode) {\n            menuMode = mode\n        }\n\n        // Read active menu mode value\n        const activeMenuItem: HTMLElement | null =\n            this.menu?.querySelector('[data-kt-element=\"mode\"][data-kt-value=\"' + menuMode + '\"]') || null\n\n        // Enable switching state\n        this.element?.setAttribute(\"data-kt-theme-mode-switching\", \"true\");\n\n        // Set mode to the target element\n        this.element?.setAttribute('data-theme', mode);\n\n        // Disable switching state\n        const self = this;\n        setTimeout(function () {\n            self.element?.removeAttribute(\"data-kt-theme-mode-switching\");\n        }, 300);\n\n        // Store mode value in storage\n        if (localStorage) {\n            localStorage.setItem(modeParam, mode)\n        }\n\n        // Set active menu item\n        if (activeMenuItem && localStorage) {\n            localStorage.setItem(menuModeParam, menuMode)\n            this.setActiveMenuItem(activeMenuItem)\n        }\n\n        // Flip images\n        this.flipImages()\n    }\n\n    public getMenuMode = (): Mode | '' => {\n        const menuModeParam = this.getParamName('menu')\n        const menuItem = this.menu?.querySelector('.active[data-kt-element=\"mode\"]')\n        const dataKTValue = menuItem?.getAttribute('data-kt-value')\n        if (dataKTValue) {\n            return dataKTValue as Mode\n        }\n\n        if (!menuModeParam) {\n            return ''\n        }\n\n        const ls = localStorage ? localStorage.getItem(menuModeParam) : null\n        return (ls as Mode) || ''\n    }\n\n    public getSystemMode = (): Mode => {\n        return window.matchMedia('(prefers-color-scheme: dark)') ? 'dark' : 'light'\n    }\n\n    private initMode = (): void => {\n        this.setMode(this.getMode(), this.getMenuMode())\n        if (this.element) {\n            EventHandlerUtil.trigger(this.element, 'kt.thememode.init')\n        }\n    }\n\n    private getActiveMenuItem = (): HTMLElement | null => {\n        return (\n            this.menu?.querySelector(\n                '[data-kt-element=\"mode\"][data-kt-value=\"' + this.getMenuMode() + '\"]'\n            ) || null\n        )\n    }\n\n    private setActiveMenuItem = (item: HTMLElement): void => {\n        const menuModeParam = this.getParamName('menu')\n        const menuMode = item.getAttribute('data-kt-value')\n        const activeItem = this.menu?.querySelector('.active[data-kt-element=\"mode\"]')\n        if (activeItem) {\n            activeItem.classList.remove('active')\n        }\n\n        item.classList.add('active')\n        if (localStorage && menuMode && menuModeParam) {\n            localStorage.setItem(menuModeParam, menuMode)\n        }\n    }\n\n    private handleMenu = (): void => {\n        this.menu\n            ?.querySelectorAll<HTMLElement>('[data-kt-element=\"mode\"]')\n            ?.forEach((item: HTMLElement) => {\n                item.addEventListener('click', (e) => {\n                    e.preventDefault()\n\n                    const menuMode: string | null = item.getAttribute('data-kt-value')\n                    const mode = menuMode === 'system' ? this.getSystemMode() : menuMode\n\n                    if (mode) {\n                        this.setMode(mode as Mode, menuMode as Mode | '')\n                    }\n                })\n            })\n    }\n\n    public flipImages = () => {\n        document.querySelectorAll<HTMLElement>('[data-kt-img-dark]')?.forEach((item: HTMLElement) => {\n            if (item.tagName === 'IMG') {\n                if (this.getMode() === 'dark' && item.hasAttribute('data-kt-img-dark')) {\n                    item.setAttribute('data-kt-img-light', item.getAttribute('src') || '')\n                    item.setAttribute('src', item.getAttribute('data-kt-img-dark') || '')\n                } else if (this.getMode() === 'light' && item.hasAttribute('data-kt-img-light')) {\n                    item.setAttribute('data-kt-img-dark', item.getAttribute('src') || '')\n                    item.setAttribute('src', item.getAttribute('data-kt-img-light') || '')\n                }\n            } else {\n                if (this.getMode() === 'dark' && item.hasAttribute('data-kt-img-dark')) {\n                    item.setAttribute('data-kt-img-light', item.getAttribute('src') || '')\n                    item.style.backgroundImage = \"url('\" + item.getAttribute('data-kt-img-dark') + \"')\"\n                } else if (this.getMode() === 'light' && item.hasAttribute('data-kt-img-light')) {\n                    item.setAttribute('data-kt-img-dark', item.getAttribute('src') || '')\n                    item.style.backgroundImage = \"url('\" + item.getAttribute('data-kt-img-light') + \"')\"\n                }\n            }\n        })\n    }\n\n    public on = (name: string, hander: Function) => {\n        if (this.element) {\n            return EventHandlerUtil.on(this.element, name, hander)\n        }\n    }\n\n    public off = (name: string, handlerId: string) => {\n        if (this.element) {\n            return EventHandlerUtil.off(this.element, name, handlerId)\n        }\n    }\n\n    public init = () => {\n        this.menu = document.querySelector<HTMLElement>('[data-kt-element=\"theme-mode-menu\"]')\n        this.element = document.documentElement\n\n        this.initMode()\n\n        if (this.menu) {\n            this.handleMenu()\n        }\n    }\n}\n\nconst ThemeModeComponent = new ThemeMode()\n// Initialize app on document ready => ThemeModeComponent.init()\nexport { ThemeModeComponent }\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport {\r\n    DrawerComponent,\r\n    ImageInputComponent,\r\n    MenuComponent,\r\n    PasswordMeterComponent,\r\n    ScrollComponent,\r\n    StepperComponent,\r\n    StickyComponent,\r\n    SwapperComponent,\r\n    ToggleComponent,\r\n} from '../../../../kt/components';\r\n\r\n\r\n@Component({\r\n    selector: 'iatec-metronic-scripts-init',\r\n    template: '',\r\n})\r\nexport class ScriptsInitComponent implements AfterViewInit {\r\n\r\n    pluginsInitialization() {\r\n        ToggleComponent.bootstrap();\r\n        DrawerComponent.bootstrap();\r\n        ImageInputComponent.bootstrap();\r\n        PasswordMeterComponent.bootstrap();\r\n        StepperComponent.bootstrap();\r\n        StickyComponent.bootstrap();\r\n        SwapperComponent.bootstrap();\r\n        MenuComponent.bootstrap();\r\n        ScrollComponent.bootstrap();\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        setTimeout(() => {\r\n            this.pluginsInitialization();\r\n        }, 1000);\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScriptsInitComponent } from './component/scripts-init.component';\n\n\n@NgModule({\n    declarations: [\n        ScriptsInitComponent\n    ],\n    imports: [\n        CommonModule\n    ],\n    exports: [\n        ScriptsInitComponent\n    ]\n})\nexport class IatecMetronicScriptInitModule {\n}\n","import { LayoutFooterTermsModel } from \"./layout-footer-terms.model\";\n\nexport class LayoutFooterModel {\n    poweredBy?: string;\n    version?: string;\n    terms?: Array<LayoutFooterTermsModel>\n}\n","export class LayoutFooterTermsModel {\n    title: string;\n    link: string;\n}\n","export class LayoutMenuModel {\n    id: string | number;\n    text: string;\n    icon?: string;\n    route?: string;\n    children?: Array<LayoutMenuModel>;\n    parent?: string | number;\n    isActive: boolean = false;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { LayoutFooterModel, LayoutMenuModel } from \"../models\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LayoutService {\n\n    private _layoutContainer: BehaviorSubject<string> = new BehaviorSubject<string>('container-xxl');\n\n    private _layoutLogoSubject: BehaviorSubject<string | undefined> = new BehaviorSubject<string | undefined>(undefined);\n    private _layoutLogoClickSubject: BehaviorSubject<any> = new BehaviorSubject<unknown>(undefined);\n\n    private _layoutMenuSubject: BehaviorSubject<Array<LayoutMenuModel> | undefined> = new BehaviorSubject<Array<LayoutMenuModel> | undefined>(undefined);\n\n    private _layoutFooterSubject: BehaviorSubject<LayoutFooterModel | undefined> = new BehaviorSubject<LayoutFooterModel | undefined>(undefined);\n\n    constructor() {\n    }\n\n    set container(value: string) {\n        this._layoutContainer.next(value);\n    }\n\n    get container$(): Observable<string> {\n        return this._layoutContainer.asObservable();\n    }\n\n    set logo(value: string) {\n        this._layoutLogoSubject.next(value);\n    }\n\n    get logo$(): Observable<string | undefined> {\n        return this._layoutLogoSubject.asObservable();\n    }\n\n    get hasLogoClick$(): Observable<unknown> {\n        return this._layoutLogoClickSubject.asObservable();\n    }\n\n    public clickLogo(): void {\n        this._layoutLogoClickSubject.next(true);\n    }\n\n    set menu(menus: Array<LayoutMenuModel>) {\n        this._layoutMenuSubject.next(menus);\n    }\n\n    get menus$(): Observable<Array<LayoutMenuModel> | undefined> {\n        return this._layoutMenuSubject.asObservable();\n    }\n\n    set footer(value: LayoutFooterModel) {\n        this._layoutFooterSubject.next(value);\n    }\n\n    get footer$(): Observable<LayoutFooterModel | undefined> {\n        return this._layoutFooterSubject.asObservable();\n    }\n\n    public searchActivePage(route: string, menus: Array<LayoutMenuModel>, branch: number = 0): boolean {\n        let active: LayoutMenuModel | undefined;\n\n        menus.forEach(menu => {\n            menu.isActive = false;\n\n            if (menu.children?.length) {\n                menu.isActive = this.searchActivePage(route, menu.children, (branch + 1));\n\n                if (!active && menu.isActive) {\n                    active = menu;\n                }\n\n            } else if (menu.route && (menu.route == route || route.includes(menu.route as string))) {\n                menu.isActive = true;\n\n                if (active && branch == 0) {\n                    active.isActive = false;\n                }\n\n                active = menu;\n            }\n        })\n\n        let first = menus[0];\n\n        if (branch == 0 && !active && !first.route) {\n            first.isActive = true;\n        }\n\n        return active?.isActive || false;\n    }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'iatec-metronic-avatar',\n    templateUrl: './avatar.component.html',\n    styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent implements OnInit {\n\n    public finallySizeCircle: string;\n    public finallyColors: string;\n    public finallyFontSize: string = \"\";\n    public finallyImageUrl: string;\n    public path: string = \"\";\n\n    private _finallyIndex: string = '';\n    private _finallyBackgroundColor: string;\n    private _finallyTextColor: string;\n    private _light: boolean = false;\n    private _colors: Array<string> = [\n        \"bg-danger\",\n        \"bg-primary\",\n        \"bg-warning\",\n        \"bg-success\",\n        \"bg-info\",\n        \"bg-danger\",\n        \"bg-primary\",\n        \"bg-warning\",\n        \"bg-success\",\n        \"bg-info\"\n    ];\n\n    @Input() personName: string;\n\n    @Input() set sizeCircle(value: string) {\n        this.setFontSize(parseInt(value));\n        if (parseInt(value) >= 50) {\n            this.finallySizeCircle = `symbol-${value}px`;\n        } else {\n            this.finallySizeCircle = `symbol-${value}px`;\n        }\n    };\n\n    @Input() set backgroundColor(value: string) {\n        this._finallyBackgroundColor = value;\n    }\n\n    @Input() set textColor(value: string) {\n        this._finallyTextColor = value;\n    }\n\n    @Input() set imageUrl(value: string) {\n        this.finallyImageUrl = value;\n    };\n\n    @Input() set lightTheme(value: boolean) {\n        if (value) {\n            this._light = value;\n        }\n    };\n\n    @Input() set colorIndexSource(value: any) {\n        if (typeof value == 'string') {\n            const i = value.substring(0, 1).toLowerCase().charCodeAt(0).toString();\n            this._finallyIndex = (i.slice(-1));\n\n        } else if (typeof value == 'number' && value >= 0) {\n            const i: string = value.toString();\n            this._finallyIndex = (i.slice(-1));\n        }\n    };\n\n\n    constructor() {\n    }\n\n    ngOnInit(): void {\n        if (this.finallyImageUrl === undefined) {\n            this.finallyImageUrl = '';\n        }\n        this.getColors()\n    }\n\n    public getFirstLetterName(): string {\n        return this.personName?.charAt(0).toUpperCase();\n    }\n\n    private getColors() {\n        if (this._finallyBackgroundColor === undefined) {\n            this.getBackgroundColor();\n        }\n\n        if (this._finallyTextColor == undefined) {\n            this.getTextColor(this._finallyBackgroundColor);\n        }\n\n        this.finallyColors = `${this._finallyTextColor} ${this._finallyBackgroundColor}`\n    }\n\n    private getTextColor(value: string) {\n        if (this._light) {\n            let arrayClass = value.split(\"-\");\n            this._finallyTextColor = `text-${arrayClass[arrayClass.length - 1]}`\n        } else {\n            this._finallyTextColor = `text-light`;\n        }\n    }\n\n    private getBackgroundColor() {\n        if (this._finallyIndex !== '') {\n            const color = this._colors[Number(this._finallyIndex)];\n\n            if (this._light) {\n                const colorOptions = color.split('-');\n                this._finallyBackgroundColor = `${colorOptions[0]}-light-${colorOptions[1]}`;\n            } else {\n                this._finallyBackgroundColor = color;\n            }\n        } else {\n            const color = this._colors[this.getRandomIntInclusive(0, 9)];\n            if (this._light) {\n                const colorOptions = color.split('-');\n                this._finallyBackgroundColor = `${colorOptions[0]}-light-${colorOptions[1]}`;\n            } else {\n                this._finallyBackgroundColor = color;\n            }\n        }\n    }\n\n    private getRandomIntInclusive(min: number, max: number) {\n        min = Math.ceil(min);\n        max = Math.floor(max);\n        return Math.floor(Math.random() * (max - min + 1)) + min;\n    }\n\n    private setFontSize(value: number): void {       \n            this.finallyFontSize = (value / 2).toString() + \"px\"        \n    }\n}\n","<div [class]=\"finallySizeCircle\" class=\"symbol symbol-circle mb-5\" *ngIf=\"finallyImageUrl == ''\">\n\n     <span [ngClass]=\"finallyColors\" \n          [ngStyle]=\"{'font-size': finallyFontSize}\" \n          class=\"symbol-label fw-semibold\">\n          {{getFirstLetterName()}}\n     </span>\n</div>\n\n<div [class]=\"finallySizeCircle\" class=\"symbol symbol-circle mb-7\" *ngIf=\"finallyImageUrl != ''\">\n     <img src=\"{{finallyImageUrl}}\" alt=\"image\" />\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './component/avatar.component';\n\n@NgModule({\n    declarations: [\n        AvatarComponent\n    ],\n    imports: [\n        CommonModule\n    ],\n    exports: [\n        AvatarComponent\n    ]\n})\nexport class IatecMetronicAvatarModule {\n}\n","export class MyAppsModel {\n    route: string;\n    icon: string;\n    title: string;\n\n    constructor(route: string, icon: string, title: string) {\n        this.route = route;\n        this.icon = icon;\n        this.title = title\n    }\n}","import { Component, HostBinding, Input } from '@angular/core';\nimport { MyAppsModel } from \"../models\";\nimport { ApplicationModel, Environment } from \"iatec-7you-core\";\n\n@Component({\n    selector: 'iatec-metronic-layout-quick-links-inner',\n    templateUrl: './quick-links-inner.component.html',\n    styleUrls: ['./quick-links-inner.component.scss']\n})\nexport class QuickLinksInnerComponent {\n    public finallyApps: Array<MyAppsModel> = []\n\n    @HostBinding('class') class = `d-flex align-items-center`;\n    @Input() titleKey: string = 'general.global.my-apps';\n    @Input() toggleBtnClass: string = '';\n    @Input() toggleBtnIconClass: string = 'svg-icon-2';\n\n    @Input() set myApps(value: Array<ApplicationModel> | undefined | null) {\n        if (value) {\n            let schema = this._environment.environment == 'Local' ? 'http' : 'https';\n\n            this.finallyApps = value.map(x =>\n                new MyAppsModel(\n                    `${schema}://${x.urlPrefix || ''}${x.urlDomain || (this._environment.domainApp || '')}${x.urlSuffix || ''}`,\n                    x.logo as string,\n                    x.description as string\n                ));\n        } else {\n            this.finallyApps = [];\n        }\n    }\n\n    constructor(\n        private _environment: Environment\n    ) {\n    }\n}\n","<!-- begin::Menu toggle -->\n<div class=\"btn btn-icon \"\n     [ngClass]=\"toggleBtnClass\"\n     data-kt-menu-trigger=\"{default: 'click', lg: 'hover'}\"\n     data-kt-menu-attach=\"parent\"\n     data-kt-menu-placement=\"bottom-end\">\n    <span class=\"svg-icon svg-icon-2\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\"\n             width=\"24\"\n             height=\"24\"\n             viewBox=\"0 0 24 24\"\n             fill=\"none\">\n            <rect x=\"2\"\n                  y=\"2\"\n                  width=\"9\"\n                  height=\"9\"\n                  rx=\"2\"\n                  fill=\"currentColor\"/>\n            <rect opacity=\"0.3\"\n                  x=\"13\"\n                  y=\"2\"\n                  width=\"9\"\n                  height=\"9\"\n                  rx=\"2\"\n                  fill=\"currentColor\"/>\n            <rect opacity=\"0.3\"\n                  x=\"13\"\n                  y=\"13\"\n                  width=\"9\"\n                  height=\"9\"\n                  rx=\"2\"\n                  fill=\"currentColor\"/>\n            <rect opacity=\"0.3\"\n                  x=\"2\"\n                  y=\"13\"\n                  width=\"9\"\n                  height=\"9\"\n                  rx=\"2\"\n                  fill=\"currentColor\"/>\n        </svg>\n    </span>\n</div>\n<!-- end::Menu toggle -->\n\n<!--begin::My apps-->\n<div class=\"menu menu-sub menu-sub-dropdown menu-column w-100 w-sm-350px\"\n     data-kt-menu=\"true\">\n    <!--begin::Card-->\n    <div class=\"card\">\n        <!--begin::Card header-->\n        <div class=\"card-header\">\n            <!--begin::Card title-->\n            <div class=\"card-title\">{{titleKey | transloco}}</div>\n            <!--end::Card title-->\n        </div>\n        <!--end::Card header-->\n        <!--begin::Card body-->\n        <div class=\"card-body py-5\">\n            <!--begin::Scroll-->\n            <div class=\"mh-450px scroll-y me-n5 pe-5\">\n                <!--begin::Row-->\n                <div class=\"row g-2\">\n                    <!--begin::Col-->\n                    <div class=\"col-4\"\n                         *ngFor=\"let app of finallyApps\">\n                        <a [href]=\"[app.route]\"\n                           class=\"d-flex flex-column flex-center text-center text-hover-primary bg-hover-light rounded py-4 px-3 mb-3\">\n                            <i class=\"{{app.icon}} mb-2 text-primary\"></i>\n                            <span class=\"fw-semibold text-primary\">{{app.title}}</span>\n                        </a>\n                    </div>\n                    <!--end::Col-->\n                </div>\n                <!--end::Row-->\n            </div>\n            <!--end::Scroll-->\n        </div>\n        <!--end::Card body-->\n    </div>\n    <!--end::Card-->\n</div>\n<!--end::My apps-->","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuickLinksInnerComponent } from './component/quick-links-inner.component';\nimport { InlineSVGModule } from 'ng-inline-svg-2';\nimport { TranslocoModule } from \"@ngneat/transloco\";\nimport { RouterLink } from \"@angular/router\";\n\n\n@NgModule({\n    declarations: [\n        QuickLinksInnerComponent\n    ],\n    imports: [\n        CommonModule,\n        InlineSVGModule,\n        InlineSVGModule,\n        TranslocoModule,\n        RouterLink\n    ],\n    exports: [\n        QuickLinksInnerComponent\n    ]\n})\nexport class IatecMetronicDropdownQuickLinksInnerModule {\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { ContractModel, UserModel } from \"../models\";\nimport { LanguageModel } from \"../../languages\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserInnerService {\n\n    private _userSubject: BehaviorSubject<UserModel | undefined> = new BehaviorSubject<UserModel | undefined>(undefined);\n\n    private _profileClickSubject: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n\n    private _singOutSubject: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n\n    private _availableLanguageOutSubject: BehaviorSubject<Array<LanguageModel> | undefined> = new BehaviorSubject<Array<LanguageModel> | undefined>(undefined);\n    private _languageSubject: BehaviorSubject<LanguageModel | undefined> = new BehaviorSubject<LanguageModel | undefined>(undefined);\n\n    private _contractsSubject: BehaviorSubject<Array<ContractModel> | undefined> = new BehaviorSubject<Array<ContractModel> | undefined>(undefined);\n    private _versionsSubject: BehaviorSubject<string | undefined> = new BehaviorSubject<string | undefined>(undefined);\n     private _versionClickSubject: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n\n    constructor() {\n    }\n\n    set user(user: UserModel) {\n        this._userSubject.next(user);\n    }\n\n    get user$(): Observable<UserModel | undefined> {\n        return this._userSubject.asObservable();\n    }\n\n    public startProfileRedirect(): void {\n        this._profileClickSubject.next(true);\n    }\n\n    public startVersionRedirect(): void {\n        this._versionClickSubject.next(true);\n    }\n\n    get profileRedirect$(): Observable<unknown> {\n        return this._profileClickSubject.asObservable()\n    }\n\n    get versionRedirect$(): Observable<unknown> {\n        return this._versionClickSubject.asObservable()\n    }\n\n    public startSignOut(): void {\n        this._singOutSubject.next(true);\n    }\n\n    get signOut$(): Observable<unknown> {\n        return this._singOutSubject.asObservable()\n    }\n\n    set language(language: LanguageModel) {\n        this._languageSubject.next(language);\n    }\n\n    get languageChange$(): Observable<LanguageModel | undefined> {\n        return this._languageSubject.asObservable();\n    }\n\n    set availableLanguages(languages: Array<LanguageModel>) {\n        this._availableLanguageOutSubject.next(languages);\n    }\n\n    get availableLanguages$(): Observable<Array<LanguageModel> | undefined> {\n        return this._availableLanguageOutSubject.asObservable();\n    }\n\n    set contracts(contracts: Array<ContractModel>) {\n        this._contractsSubject.next(contracts);\n    }\n\n    get contracts$(): Observable<Array<ContractModel> | undefined> {\n        return this._contractsSubject.asObservable();\n    }\n\n    set versions(version: string) {\n        this._versionsSubject.next(version);\n    }\n\n    get versions$(): Observable<string | undefined> {\n        return this._versionsSubject.asObservable();\n    }\n}\n","import { Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { TranslocoService } from \"@ngneat/transloco\";\nimport { UserInnerService } from \"../services\";\nimport { LanguageModel } from \"../../languages\";\nimport { UserModel, ContractModel } from \"../models\";\n\n\n@Component({\n    selector: 'iatec-metronic-layout-user-inner',\n    styleUrls: ['./user-inner.component.scss'],\n    templateUrl: './user-inner.component.html',\n})\nexport class UserInnerComponent implements OnInit, OnDestroy {\n    @HostBinding('class') class = `d-flex align-items-center ms-1`;\n\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n    @Input() avatarLettersClass: string = '';\n    @Input() sideDetailsClass: string = '';\n    @Input() showSideDetailsClass: boolean = true;\n    @Input() showProfileMenu: boolean = true;\n\n    public selectedLanguage: LanguageModel = {\n        lang: 'pt',\n        country: 'BR',\n        name: 'Portuguese'\n    };\n\n    public user$: Observable<UserModel | undefined>;\n    public languages: Array<LanguageModel> = [];\n    public contracts$: Observable<Array<ContractModel> | undefined>;\n    public versions$: Observable<string | undefined>;\n\n    constructor(\n        private _userInnerService: UserInnerService,\n        private _translateService: TranslocoService\n    ) {\n        this.user$ = _userInnerService.user$;\n        this.contracts$ = _userInnerService.contracts$;\n        this.versions$ = _userInnerService.versions$;\n    }\n\n    ngOnInit(): void {\n        this._userInnerService.languageChange$\n            .pipe(\n                takeUntil(this._unsubscribeAll)\n            )\n            .subscribe(\n                language => {\n                    if (language) {\n                        this.selectedLanguage = language;\n                        this._translateService.setActiveLang(`${language.lang}-${language.country}`)\n                    }\n                }\n            )\n\n        this._userInnerService.availableLanguages$\n            .pipe(\n                takeUntil(this._unsubscribeAll)\n            )\n            .subscribe(\n                languages => {\n                    if (languages) {\n                        this.languages = languages;\n                        this._translateService.setAvailableLangs(languages.map(x => `${x.lang}-${x.country}`))\n                    }\n                }\n            )\n    }\n\n    ngOnDestroy(): void {\n        this._unsubscribeAll.next(false);\n        this._unsubscribeAll.complete();\n    }\n\n    profileRedirect(): void {\n        this._userInnerService.startProfileRedirect();\n    }\n\n    versionRedirect(): void {\n        this._userInnerService.startVersionRedirect();\n    }\n\n    signOut(): void {\n        this._userInnerService.startSignOut();\n    }\n\n    selectLanguage(language: LanguageModel): void {\n        this._userInnerService.language = language;\n    }\n}\n","<ng-container *ngIf=\"user$ | async as user\">\n    <!--begin::User info-->\n    <div class=\"btn btn-flex align-items-center bg-hover-white bg-hover-opacity-10 py-2 px-2 px-md-3\"\n         data-kt-menu-trigger=\"{default: 'click', lg: 'hover'}\"\n         data-kt-menu-attach=\"parent\"\n         data-kt-menu-placement=\"bottom-end\">\n        <!--begin::Name-->\n        <div class=\"d-none d-md-flex flex-column align-items-end justify-content-center me-2 me-md-4\"\n             *ngIf=\"showSideDetailsClass\">\n            <span class=\"opacity-75 fs-8 fw-bold lh-1 mb-1\"\n                  [ngClass]=\"sideDetailsClass\">{{user.firstName}}</span>\n            <span class=\"fs-8 fw-bolder lh-1\"\n                  [ngClass]=\"sideDetailsClass\"\n                  *ngIf=\"user.positionName; else lastName\">{{user.positionName}}</span>\n            <ng-template #lastName>\n                <span class=\"fs-8 fw-bolder lh-1\"\n                      [ngClass]=\"sideDetailsClass\">{{user.lastName}}</span>\n            </ng-template>\n        </div>\n        <!--end::Name-->\n\n        <div id=\"user-avatar-letters\"\n             class=\"rounded-2 fs-2 fw-bold d-flex align-items-center justify-content-center\"\n             [ngClass]=\"avatarLettersClass\"\n             *ngIf=\"!user.avatar\">\n            {{user.firstName | slice : 0:1}}{{user.lastName | slice : 0:1}}\n        </div>\n\n        <!--begin::Symbol-->\n        <div class=\"symbol symbol-30px symbol-md-40px\"\n             *ngIf=\"user.avatar\">\n            <img [src]=\"user.avatar\"\n                 alt=\"image\"/>\n        </div>\n        <!--end::Symbol-->\n    </div>\n    <!--end::User info-->\n\n    <!--begin::User account menu-->\n    <div class=\"menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg menu-state-primary fw-bold py-4 fs-6 w-275px\"\n         data-kt-menu=\"true\">\n        <div class=\"menu-item px-3 \">\n            <div class=\"menu-content d-flex align-items-center px-3\">\n                <div class=\"symbol symbol-50px me-5\"\n                     *ngIf=\"user.avatar\">\n                    <img alt=\"avatar\"\n                         [src]=\"user.avatar\"/>\n                </div>\n\n                <div id=\"user-avatar-letters-inner\"\n                     class=\"bg-primary rounded-2 fs-1 text-white fw-bold d-flex align-items-center justify-content-center me-5\"\n                     *ngIf=\"!user.avatar\">\n                    {{user.firstName | slice : 0:1}}{{user.lastName | slice : 0:1}}\n                </div>\n\n                <div class=\"d-flex flex-column\">\n                    <div class=\"fw-bolder d-flex align-items-center fs-5 truncateLongTexts\"\n                         [ngbTooltip]=\"user.firstName+' '+ user.lastName\">\n                        {{ user.firstName }} {{ user.lastName }}\n                    </div>\n                    <a class=\"fw-bold text-muted text-hover-primary fs-7 cursor-pointer truncateLongTexts\"\n                       [ngbTooltip]=\"user.email\">\n                        <span>\n                            {{user.email}}\n                        </span>\n                       \n                    </a>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"separator my-2\"></div>\n\n        <div class=\"menu-item px-5\" *ngIf=\"showProfileMenu\">\n            <a (click)=\"profileRedirect()\"\n               class=\"menu-link px-5\">\n                {{'general.global.my-profile' | transloco}}\n            </a>\n        </div>\n\n        <div class=\"menu-item px-5\"\n             data-kt-menu-trigger=\"hover\"\n             data-kt-menu-placement=\"left-start\"\n             data-kt-menu-flip=\"bottom\">\n            <a class=\"menu-link px-5 cursor-pointer\">\n                <span class=\"menu-title position-relative\">\n                    {{'general.global.language' | transloco}}\n                    <span class=\"fs-8 rounded bg-light px-3 py-2 position-absolute translate-middle-y top-50 end-0\">\n                        {{ selectedLanguage.name }}\n                        <img class=\"w-15px h-15px rounded-1 ms-2\"\n                             [src]=\"'https://purecatamphetamine.github.io/country-flag-icons/1x1/'+(selectedLanguage.country | uppercase)+'.svg'\"\n                             alt=\"lang\"/>\n                    </span>\n                </span>\n            </a>\n\n            <div class=\"menu-sub menu-sub-dropdown w-175px py-4 transformed-menu-dropdown-item\">\n                <div *ngFor=\"let language of languages\"\n                     class=\"menu-item px-3 cursor-pointer\"\n                     (click)=\"selectLanguage(language)\">\n                    <a class=\"menu-link d-flex px-5\"\n                       [ngClass]=\"(language == selectedLanguage) ? 'active' : ''\">\n                        <span class=\"symbol symbol-20px me-4\">\n                            <img class=\"rounded-1\"\n                                 src=\"https://purecatamphetamine.github.io/country-flag-icons/1x1/{{language?.country | uppercase}}.svg\"\n                                 alt=\"lang\"/>\n                        </span>\n                        {{ language?.name }}\n                    </a>\n                </div>\n            </div>\n        </div>       \n\n        <div class=\"menu-item px-5\">\n            <div *ngIf=\"contracts$ | async as contracts\">\n                <div class=\"menu-item\"\n                     *ngFor=\"let contract of contracts\">\n                    <a [href]=\"contract.link\"\n                       target=\"_blank\"\n                       class=\"menu-link px-5\">{{contract.title}}</a>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"separator my-2\"></div>\n\n        <div class=\"menu-item px-5\">\n            <a (click)=\"signOut()\"\n               class=\"menu-link px-5 cursor-pointer\"> {{'general.global.sign-out' | transloco}} </a>\n        </div>\n\n        <div *ngIf=\"versions$ | async as versions\"\n             class=\"menu-item px-5\">\n            <div class=\"menu-link px-5 fw-bold menu-gray-600 fs-7 text-gray-500\">\n                <a (click)=\"versionRedirect()\"> {{versions}} </a>\n            </div>\n        </div>\n    </div>\n    <!--end::User account menu-->\n</ng-container>","export class UserModel {\n    uId: string;\n    avatar?: string | undefined;\n    email: string;\n    positionName?: string | undefined;\n\n    // personal information\n    firstName: string;\n    lastName: string;\n\n    constructor(uId: string, avatar: string, name: string, email: string) {\n        this.uId = uId;\n        this.avatar = avatar;\n        this.email = email;\n\n        if (name) {\n            const splitName = name.split(' ');\n            this.firstName = splitName[0];\n            if (splitName.length > 1) {\n                this.lastName = splitName[splitName.length - 1];\n            }\n        }\n    }\n}\n","export class ContractModel {\n    title: string;\n    link: string;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserInnerComponent } from './component/user-inner.component';\nimport { RouterModule } from '@angular/router';\nimport { NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslocoModule } from '@ngneat/transloco';\nimport { InlineSVGModule } from 'ng-inline-svg-2';\nimport { UserInnerService } from \"./services\";\n\n@NgModule({\n    declarations: [\n        UserInnerComponent\n    ],\n    imports: [\n        CommonModule,\n        RouterModule,\n        NgbTooltipModule,\n        NgbDropdownModule,\n        TranslocoModule,\n        InlineSVGModule\n    ],\n    exports: [\n        UserInnerComponent\n    ],\n    providers: [\n        UserInnerService\n    ]\n})\nexport class IatecMetronicDropdownUserInnerModule {\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ThemeModeComponent } from '../../../../../kt/layout';\n\nexport type ThemeModeType = 'dark' | 'light' | 'system';\n\nconst systemMode = ThemeModeComponent.getSystemMode() as 'light' | 'dark';\n\nconst themeMode = 'kt_theme_mode_value';\nconst themeMenuMode = 'kt_theme_mode_menu';\n\nconst getThemeModeFromLocalStorage = (key: string): ThemeModeType => {\n\n    const defaultThemeMenuMode = 'light';\n\n    let mode = localStorage.getItem(key);\n\n    if (!mode) {\n        return defaultThemeMenuMode;\n    }\n\n    return mode as ThemeModeType;\n};\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class ThemeModeService {\n    public mode: BehaviorSubject<ThemeModeType> =\n        new BehaviorSubject<ThemeModeType>(\n            getThemeModeFromLocalStorage(themeMode)\n        );\n    public menuMode: BehaviorSubject<ThemeModeType> =\n        new BehaviorSubject<ThemeModeType>(\n            getThemeModeFromLocalStorage(themeMenuMode)\n        );\n\n    constructor() {\n    }\n\n    public updateMode(mode: ThemeModeType) {\n        const updatedMode = mode === 'system' ? systemMode : mode;\n        localStorage.setItem(themeMode, updatedMode);\n        document.documentElement.setAttribute('data-theme', updatedMode);\n        this.mode.next(updatedMode);\n    }\n\n    public updateMenuMode(menuMode: ThemeModeType) {\n        localStorage.setItem(themeMenuMode, menuMode);\n        this.menuMode.next(menuMode);\n    }\n\n    public init() {\n        const mode = getThemeModeFromLocalStorage(themeMenuMode);\n        this.switchMode(mode);\n    }\n\n    public switchMode(mode: ThemeModeType) {\n        this.updateMode(mode);\n        this.updateMenuMode(mode);\n    }\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ThemeModeService, ThemeModeType } from '../services';\n\n@Component({\n    selector: 'iatec-metronic-layout-theme-mode-switcher',\n    templateUrl: './theme-mode-switcher.component.html',\n})\nexport class ThemeModeSwitcherComponent implements OnInit {\n    @HostBinding('class') class = `d-flex align-items-center`;\n\n    @Input() toggleBtnClass: string = '';\n    @Input() toggleBtnIconClass: string = 'svg-icon-2';\n    @Input() menuPlacement: string = 'bottom-end';\n    @Input() menuTrigger: string = \"{default: 'click', lg: 'hover'}\";\n    mode$: Observable<ThemeModeType>;\n    menuMode$: Observable<ThemeModeType>;\n\n    constructor(\n        private _modeService: ThemeModeService\n    ) {\n    }\n\n    ngOnInit(): void {\n        this.mode$ = this._modeService.mode.asObservable();\n        this.menuMode$ = this._modeService.menuMode.asObservable();\n\n        this._modeService.init();\n    }\n\n    switchMode(_mode: ThemeModeType): void {\n        this._modeService.switchMode(_mode);\n    }\n}\n","<!-- begin::Menu toggle -->\n<div class=\"btn btn-icon\"\n     [ngClass]=\"toggleBtnClass\"\n     data-kt-menu-trigger=\"{default: 'click', lg: 'hover'}\"\n     data-kt-menu-attach=\"parent\"\n     data-kt-menu-placement=\"bottom-end\">\n    <ng-container *ngIf=\"mode$ | async as mode\">\n        <ng-container *ngIf=\"mode === 'dark'\">\n            <span [ngClass]=\"toggleBtnIconClass\"\n                  class=\"svg-icon theme-light-hide\">\n                <svg width=\"24\"\n                     height=\"24\"\n                     viewBox=\"0 0 24 24\"\n                     fill=\"none\"\n                     xmlns=\"http://www.w3.org/2000/svg\">\n                    <path\n                            d=\"M19.0647 5.43757C19.3421 5.43757 19.567 5.21271 19.567 4.93534C19.567 4.65796 19.3421 4.43311 19.0647 4.43311C18.7874 4.43311 18.5625 4.65796 18.5625 4.93534C18.5625 5.21271 18.7874 5.43757 19.0647 5.43757Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M20.0692 9.48884C20.3466 9.48884 20.5714 9.26398 20.5714 8.98661C20.5714 8.70923 20.3466 8.48438 20.0692 8.48438C19.7918 8.48438 19.567 8.70923 19.567 8.98661C19.567 9.26398 19.7918 9.48884 20.0692 9.48884Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M12.0335 20.5714C15.6943 20.5714 18.9426 18.2053 20.1168 14.7338C20.1884 14.5225 20.1114 14.289 19.9284 14.161C19.746 14.034 19.5003 14.0418 19.3257 14.1821C18.2432 15.0546 16.9371 15.5156 15.5491 15.5156C12.2257 15.5156 9.48884 12.8122 9.48884 9.48886C9.48884 7.41079 10.5773 5.47137 12.3449 4.35752C12.5342 4.23832 12.6 4.00733 12.5377 3.79251C12.4759 3.57768 12.2571 3.42859 12.0335 3.42859C7.32556 3.42859 3.42857 7.29209 3.42857 12C3.42857 16.7079 7.32556 20.5714 12.0335 20.5714Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M13.0379 7.47998C13.8688 7.47998 14.5446 8.15585 14.5446 8.98668C14.5446 9.26428 14.7693 9.48891 15.0469 9.48891C15.3245 9.48891 15.5491 9.26428 15.5491 8.98668C15.5491 8.15585 16.225 7.47998 17.0558 7.47998C17.3334 7.47998 17.558 7.25535 17.558 6.97775C17.558 6.70015 17.3334 6.47552 17.0558 6.47552C16.225 6.47552 15.5491 5.76616 15.5491 4.93534C15.5491 4.65774 15.3245 4.43311 15.0469 4.43311C14.7693 4.43311 14.5446 4.65774 14.5446 4.93534C14.5446 5.76616 13.8688 6.47552 13.0379 6.47552C12.7603 6.47552 12.5357 6.70015 12.5357 6.97775C12.5357 7.25535 12.7603 7.47998 13.0379 7.47998Z\"\n                            fill=\"currentColor\"/>\n                </svg>\n            </span>\n        </ng-container>\n        <ng-container *ngIf=\"mode === 'light'\">\n            <span [ngClass]=\"toggleBtnIconClass\"\n                  class=\"svg-icon theme-dark-hide\">\n                <svg width=\"24\"\n                     height=\"24\"\n                     viewBox=\"0 0 24 24\"\n                     fill=\"none\"\n                     xmlns=\"http://www.w3.org/2000/svg\">\n                    <path\n                            d=\"M11.9905 5.62598C10.7293 5.62574 9.49646 5.9995 8.44775 6.69997C7.39903 7.40045 6.58159 8.39619 6.09881 9.56126C5.61603 10.7263 5.48958 12.0084 5.73547 13.2453C5.98135 14.4823 6.58852 15.6185 7.48019 16.5104C8.37186 17.4022 9.50798 18.0096 10.7449 18.2557C11.9818 18.5019 13.2639 18.3757 14.429 17.8931C15.5942 17.4106 16.5901 16.5933 17.2908 15.5448C17.9915 14.4962 18.3655 13.2634 18.3655 12.0023C18.3637 10.3119 17.6916 8.69129 16.4964 7.49593C15.3013 6.30056 13.6808 5.62806 11.9905 5.62598Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M22.1258 10.8771H20.627C20.3286 10.8771 20.0424 10.9956 19.8314 11.2066C19.6204 11.4176 19.5018 11.7038 19.5018 12.0023C19.5018 12.3007 19.6204 12.5869 19.8314 12.7979C20.0424 13.0089 20.3286 13.1274 20.627 13.1274H22.1258C22.4242 13.1274 22.7104 13.0089 22.9214 12.7979C23.1324 12.5869 23.2509 12.3007 23.2509 12.0023C23.2509 11.7038 23.1324 11.4176 22.9214 11.2066C22.7104 10.9956 22.4242 10.8771 22.1258 10.8771Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M11.9905 19.4995C11.6923 19.5 11.4064 19.6187 11.1956 19.8296C10.9848 20.0405 10.8663 20.3265 10.866 20.6247V22.1249C10.866 22.4231 10.9845 22.7091 11.1953 22.9199C11.4062 23.1308 11.6922 23.2492 11.9904 23.2492C12.2886 23.2492 12.5746 23.1308 12.7854 22.9199C12.9963 22.7091 13.1147 22.4231 13.1147 22.1249V20.6247C13.1145 20.3265 12.996 20.0406 12.7853 19.8296C12.5745 19.6187 12.2887 19.5 11.9905 19.4995Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M4.49743 12.0023C4.49718 11.704 4.37865 11.4181 4.16785 11.2072C3.95705 10.9962 3.67119 10.8775 3.37298 10.8771H1.87445C1.57603 10.8771 1.28984 10.9956 1.07883 11.2066C0.867812 11.4176 0.749266 11.7038 0.749266 12.0023C0.749266 12.3007 0.867812 12.5869 1.07883 12.7979C1.28984 13.0089 1.57603 13.1274 1.87445 13.1274H3.37299C3.6712 13.127 3.95706 13.0083 4.16785 12.7973C4.37865 12.5864 4.49718 12.3005 4.49743 12.0023Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M11.9905 4.50058C12.2887 4.50012 12.5745 4.38141 12.7853 4.17048C12.9961 3.95954 13.1147 3.67361 13.1149 3.3754V1.87521C13.1149 1.57701 12.9965 1.29103 12.7856 1.08017C12.5748 0.869313 12.2888 0.750854 11.9906 0.750854C11.6924 0.750854 11.4064 0.869313 11.1955 1.08017C10.9847 1.29103 10.8662 1.57701 10.8662 1.87521V3.3754C10.8664 3.67359 10.9849 3.95952 11.1957 4.17046C11.4065 4.3814 11.6923 4.50012 11.9905 4.50058Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M18.8857 6.6972L19.9465 5.63642C20.0512 5.53209 20.1343 5.40813 20.1911 5.27163C20.2479 5.13513 20.2772 4.98877 20.2774 4.84093C20.2775 4.69309 20.2485 4.54667 20.192 4.41006C20.1355 4.27344 20.0526 4.14932 19.948 4.04478C19.8435 3.94024 19.7194 3.85734 19.5828 3.80083C19.4462 3.74432 19.2997 3.71531 19.1519 3.71545C19.0041 3.7156 18.8577 3.7449 18.7212 3.80167C18.5847 3.85845 18.4607 3.94159 18.3564 4.04633L17.2956 5.10714C17.1909 5.21147 17.1077 5.33543 17.0509 5.47194C16.9942 5.60844 16.9649 5.7548 16.9647 5.90264C16.9646 6.05048 16.9936 6.19689 17.0501 6.33351C17.1066 6.47012 17.1895 6.59425 17.294 6.69878C17.3986 6.80332 17.5227 6.88621 17.6593 6.94272C17.7959 6.99923 17.9424 7.02824 18.0902 7.02809C18.238 7.02795 18.3844 6.99865 18.5209 6.94187C18.6574 6.88509 18.7814 6.80195 18.8857 6.6972Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M18.8855 17.3073C18.7812 17.2026 18.6572 17.1195 18.5207 17.0627C18.3843 17.006 18.2379 16.9767 18.0901 16.9766C17.9423 16.9764 17.7959 17.0055 17.6593 17.062C17.5227 17.1185 17.3986 17.2014 17.2941 17.3059C17.1895 17.4104 17.1067 17.5345 17.0501 17.6711C16.9936 17.8077 16.9646 17.9541 16.9648 18.1019C16.9649 18.2497 16.9942 18.3961 17.0509 18.5326C17.1077 18.6691 17.1908 18.793 17.2955 18.8974L18.3563 19.9582C18.4606 20.0629 18.5846 20.146 18.721 20.2027C18.8575 20.2595 19.0039 20.2887 19.1517 20.2889C19.2995 20.289 19.4459 20.26 19.5825 20.2035C19.7191 20.147 19.8432 20.0641 19.9477 19.9595C20.0523 19.855 20.1351 19.7309 20.1916 19.5943C20.2482 19.4577 20.2772 19.3113 20.277 19.1635C20.2769 19.0157 20.2476 18.8694 20.1909 18.7329C20.1341 18.5964 20.051 18.4724 19.9463 18.3681L18.8855 17.3073Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M5.09528 17.3072L4.0345 18.368C3.92972 18.4723 3.84655 18.5963 3.78974 18.7328C3.73294 18.8693 3.70362 19.0156 3.70346 19.1635C3.7033 19.3114 3.7323 19.4578 3.78881 19.5944C3.84532 19.7311 3.92822 19.8552 4.03277 19.9598C4.13732 20.0643 4.26147 20.1472 4.3981 20.2037C4.53473 20.2602 4.68117 20.2892 4.82902 20.2891C4.97688 20.2889 5.12325 20.2596 5.25976 20.2028C5.39627 20.146 5.52024 20.0628 5.62456 19.958L6.68536 18.8973C6.79007 18.7929 6.87318 18.6689 6.92993 18.5325C6.98667 18.396 7.01595 18.2496 7.01608 18.1018C7.01621 17.954 6.98719 17.8076 6.93068 17.671C6.87417 17.5344 6.79129 17.4103 6.68676 17.3058C6.58224 17.2012 6.45813 17.1183 6.32153 17.0618C6.18494 17.0053 6.03855 16.9763 5.89073 16.9764C5.74291 16.9766 5.59657 17.0058 5.46007 17.0626C5.32358 17.1193 5.19962 17.2024 5.09528 17.3072Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M5.09541 6.69715C5.19979 6.8017 5.32374 6.88466 5.4602 6.94128C5.59665 6.9979 5.74292 7.02708 5.89065 7.02714C6.03839 7.0272 6.18469 6.99815 6.32119 6.94164C6.45769 6.88514 6.58171 6.80228 6.68618 6.69782C6.79064 6.59336 6.87349 6.46933 6.93 6.33283C6.9865 6.19633 7.01556 6.05003 7.01549 5.9023C7.01543 5.75457 6.98625 5.60829 6.92963 5.47184C6.87301 5.33539 6.79005 5.21143 6.6855 5.10706L5.6247 4.04626C5.5204 3.94137 5.39643 3.8581 5.25989 3.80121C5.12335 3.74432 4.97692 3.71493 4.82901 3.71472C4.68109 3.71452 4.53458 3.7435 4.39789 3.80001C4.26119 3.85652 4.13699 3.93945 4.03239 4.04404C3.9278 4.14864 3.84487 4.27284 3.78836 4.40954C3.73185 4.54624 3.70287 4.69274 3.70308 4.84066C3.70329 4.98858 3.73268 5.135 3.78957 5.27154C3.84646 5.40808 3.92974 5.53205 4.03462 5.63635L5.09541 6.69715Z\"\n                            fill=\"currentColor\"/>\n                </svg>\n            </span>\n        </ng-container>\n    </ng-container>\n</div>\n<!-- end::Menu toggle -->\n\n<!-- begin::Menu -->\n<div class='menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-title-gray-700 menu-icon-muted menu-active-bg menu-state-primary fw-semibold py-4 fs-base w-175px'\n     data-kt-menu=\"true\">\n    <ng-container *ngIf=\"menuMode$ | async as menuMode\">\n        <!-- begin::Menu item  -->\n        <div class='menu-item px-3 my-0'>\n            <a class=\"menu-link px-3 py-2\"\n               [ngClass]=\"{'active': menuMode === 'light'}\"\n               (click)=\"switchMode('light')\">\n                <span class='menu-icon'\n                      data-kt-element='icon'>\n                    <span class=\"svg-icon svg-icon-3\">\n                        <svg width=\"24\"\n                             height=\"24\"\n                             viewBox=\"0 0 24 24\"\n                             fill=\"none\"\n                             xmlns=\"http://www.w3.org/2000/svg\">\n                    <path\n                            d=\"M11.9905 5.62598C10.7293 5.62574 9.49646 5.9995 8.44775 6.69997C7.39903 7.40045 6.58159 8.39619 6.09881 9.56126C5.61603 10.7263 5.48958 12.0084 5.73547 13.2453C5.98135 14.4823 6.58852 15.6185 7.48019 16.5104C8.37186 17.4022 9.50798 18.0096 10.7449 18.2557C11.9818 18.5019 13.2639 18.3757 14.429 17.8931C15.5942 17.4106 16.5901 16.5933 17.2908 15.5448C17.9915 14.4962 18.3655 13.2634 18.3655 12.0023C18.3637 10.3119 17.6916 8.69129 16.4964 7.49593C15.3013 6.30056 13.6808 5.62806 11.9905 5.62598Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M22.1258 10.8771H20.627C20.3286 10.8771 20.0424 10.9956 19.8314 11.2066C19.6204 11.4176 19.5018 11.7038 19.5018 12.0023C19.5018 12.3007 19.6204 12.5869 19.8314 12.7979C20.0424 13.0089 20.3286 13.1274 20.627 13.1274H22.1258C22.4242 13.1274 22.7104 13.0089 22.9214 12.7979C23.1324 12.5869 23.2509 12.3007 23.2509 12.0023C23.2509 11.7038 23.1324 11.4176 22.9214 11.2066C22.7104 10.9956 22.4242 10.8771 22.1258 10.8771Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M11.9905 19.4995C11.6923 19.5 11.4064 19.6187 11.1956 19.8296C10.9848 20.0405 10.8663 20.3265 10.866 20.6247V22.1249C10.866 22.4231 10.9845 22.7091 11.1953 22.9199C11.4062 23.1308 11.6922 23.2492 11.9904 23.2492C12.2886 23.2492 12.5746 23.1308 12.7854 22.9199C12.9963 22.7091 13.1147 22.4231 13.1147 22.1249V20.6247C13.1145 20.3265 12.996 20.0406 12.7853 19.8296C12.5745 19.6187 12.2887 19.5 11.9905 19.4995Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M4.49743 12.0023C4.49718 11.704 4.37865 11.4181 4.16785 11.2072C3.95705 10.9962 3.67119 10.8775 3.37298 10.8771H1.87445C1.57603 10.8771 1.28984 10.9956 1.07883 11.2066C0.867812 11.4176 0.749266 11.7038 0.749266 12.0023C0.749266 12.3007 0.867812 12.5869 1.07883 12.7979C1.28984 13.0089 1.57603 13.1274 1.87445 13.1274H3.37299C3.6712 13.127 3.95706 13.0083 4.16785 12.7973C4.37865 12.5864 4.49718 12.3005 4.49743 12.0023Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M11.9905 4.50058C12.2887 4.50012 12.5745 4.38141 12.7853 4.17048C12.9961 3.95954 13.1147 3.67361 13.1149 3.3754V1.87521C13.1149 1.57701 12.9965 1.29103 12.7856 1.08017C12.5748 0.869313 12.2888 0.750854 11.9906 0.750854C11.6924 0.750854 11.4064 0.869313 11.1955 1.08017C10.9847 1.29103 10.8662 1.57701 10.8662 1.87521V3.3754C10.8664 3.67359 10.9849 3.95952 11.1957 4.17046C11.4065 4.3814 11.6923 4.50012 11.9905 4.50058Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M18.8857 6.6972L19.9465 5.63642C20.0512 5.53209 20.1343 5.40813 20.1911 5.27163C20.2479 5.13513 20.2772 4.98877 20.2774 4.84093C20.2775 4.69309 20.2485 4.54667 20.192 4.41006C20.1355 4.27344 20.0526 4.14932 19.948 4.04478C19.8435 3.94024 19.7194 3.85734 19.5828 3.80083C19.4462 3.74432 19.2997 3.71531 19.1519 3.71545C19.0041 3.7156 18.8577 3.7449 18.7212 3.80167C18.5847 3.85845 18.4607 3.94159 18.3564 4.04633L17.2956 5.10714C17.1909 5.21147 17.1077 5.33543 17.0509 5.47194C16.9942 5.60844 16.9649 5.7548 16.9647 5.90264C16.9646 6.05048 16.9936 6.19689 17.0501 6.33351C17.1066 6.47012 17.1895 6.59425 17.294 6.69878C17.3986 6.80332 17.5227 6.88621 17.6593 6.94272C17.7959 6.99923 17.9424 7.02824 18.0902 7.02809C18.238 7.02795 18.3844 6.99865 18.5209 6.94187C18.6574 6.88509 18.7814 6.80195 18.8857 6.6972Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M18.8855 17.3073C18.7812 17.2026 18.6572 17.1195 18.5207 17.0627C18.3843 17.006 18.2379 16.9767 18.0901 16.9766C17.9423 16.9764 17.7959 17.0055 17.6593 17.062C17.5227 17.1185 17.3986 17.2014 17.2941 17.3059C17.1895 17.4104 17.1067 17.5345 17.0501 17.6711C16.9936 17.8077 16.9646 17.9541 16.9648 18.1019C16.9649 18.2497 16.9942 18.3961 17.0509 18.5326C17.1077 18.6691 17.1908 18.793 17.2955 18.8974L18.3563 19.9582C18.4606 20.0629 18.5846 20.146 18.721 20.2027C18.8575 20.2595 19.0039 20.2887 19.1517 20.2889C19.2995 20.289 19.4459 20.26 19.5825 20.2035C19.7191 20.147 19.8432 20.0641 19.9477 19.9595C20.0523 19.855 20.1351 19.7309 20.1916 19.5943C20.2482 19.4577 20.2772 19.3113 20.277 19.1635C20.2769 19.0157 20.2476 18.8694 20.1909 18.7329C20.1341 18.5964 20.051 18.4724 19.9463 18.3681L18.8855 17.3073Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M5.09528 17.3072L4.0345 18.368C3.92972 18.4723 3.84655 18.5963 3.78974 18.7328C3.73294 18.8693 3.70362 19.0156 3.70346 19.1635C3.7033 19.3114 3.7323 19.4578 3.78881 19.5944C3.84532 19.7311 3.92822 19.8552 4.03277 19.9598C4.13732 20.0643 4.26147 20.1472 4.3981 20.2037C4.53473 20.2602 4.68117 20.2892 4.82902 20.2891C4.97688 20.2889 5.12325 20.2596 5.25976 20.2028C5.39627 20.146 5.52024 20.0628 5.62456 19.958L6.68536 18.8973C6.79007 18.7929 6.87318 18.6689 6.92993 18.5325C6.98667 18.396 7.01595 18.2496 7.01608 18.1018C7.01621 17.954 6.98719 17.8076 6.93068 17.671C6.87417 17.5344 6.79129 17.4103 6.68676 17.3058C6.58224 17.2012 6.45813 17.1183 6.32153 17.0618C6.18494 17.0053 6.03855 16.9763 5.89073 16.9764C5.74291 16.9766 5.59657 17.0058 5.46007 17.0626C5.32358 17.1193 5.19962 17.2024 5.09528 17.3072Z\"\n                            fill=\"currentColor\"/>\n                    <path\n                            d=\"M5.09541 6.69715C5.19979 6.8017 5.32374 6.88466 5.4602 6.94128C5.59665 6.9979 5.74292 7.02708 5.89065 7.02714C6.03839 7.0272 6.18469 6.99815 6.32119 6.94164C6.45769 6.88514 6.58171 6.80228 6.68618 6.69782C6.79064 6.59336 6.87349 6.46933 6.93 6.33283C6.9865 6.19633 7.01556 6.05003 7.01549 5.9023C7.01543 5.75457 6.98625 5.60829 6.92963 5.47184C6.87301 5.33539 6.79005 5.21143 6.6855 5.10706L5.6247 4.04626C5.5204 3.94137 5.39643 3.8581 5.25989 3.80121C5.12335 3.74432 4.97692 3.71493 4.82901 3.71472C4.68109 3.71452 4.53458 3.7435 4.39789 3.80001C4.26119 3.85652 4.13699 3.93945 4.03239 4.04404C3.9278 4.14864 3.84487 4.27284 3.78836 4.40954C3.73185 4.54624 3.70287 4.69274 3.70308 4.84066C3.70329 4.98858 3.73268 5.135 3.78957 5.27154C3.84646 5.40808 3.92974 5.53205 4.03462 5.63635L5.09541 6.69715Z\"\n                            fill=\"currentColor\"/>\n                </svg>\n                    </span>\n                </span>\n                <span class='menu-title'>Light</span>\n            </a>\n        </div>\n        <!-- end::Menu item -->\n\n        <!-- begin::Menu item  -->\n        <div class='menu-item px-3 my-0'>\n            <a class=\"menu-link px-3 py-2\"\n               [ngClass]=\"{'active': menuMode === 'dark'}\"\n               (click)=\"switchMode('dark')\">\n                <span class='menu-icon'\n                      data-kt-element='icon'>\n                    <span class=\"svg-icon svg-icon-3\">\n                        <svg width=\"24\"\n                             height=\"24\"\n                             viewBox=\"0 0 24 24\"\n                             fill=\"none\"\n                             xmlns=\"http://www.w3.org/2000/svg\">\n                            <path\n                                    d=\"M19.0647 5.43757C19.3421 5.43757 19.567 5.21271 19.567 4.93534C19.567 4.65796 19.3421 4.43311 19.0647 4.43311C18.7874 4.43311 18.5625 4.65796 18.5625 4.93534C18.5625 5.21271 18.7874 5.43757 19.0647 5.43757Z\"\n                                    fill=\"currentColor\"/>\n                            <path\n                                    d=\"M20.0692 9.48884C20.3466 9.48884 20.5714 9.26398 20.5714 8.98661C20.5714 8.70923 20.3466 8.48438 20.0692 8.48438C19.7918 8.48438 19.567 8.70923 19.567 8.98661C19.567 9.26398 19.7918 9.48884 20.0692 9.48884Z\"\n                                    fill=\"currentColor\"/>\n                            <path\n                                    d=\"M12.0335 20.5714C15.6943 20.5714 18.9426 18.2053 20.1168 14.7338C20.1884 14.5225 20.1114 14.289 19.9284 14.161C19.746 14.034 19.5003 14.0418 19.3257 14.1821C18.2432 15.0546 16.9371 15.5156 15.5491 15.5156C12.2257 15.5156 9.48884 12.8122 9.48884 9.48886C9.48884 7.41079 10.5773 5.47137 12.3449 4.35752C12.5342 4.23832 12.6 4.00733 12.5377 3.79251C12.4759 3.57768 12.2571 3.42859 12.0335 3.42859C7.32556 3.42859 3.42857 7.29209 3.42857 12C3.42857 16.7079 7.32556 20.5714 12.0335 20.5714Z\"\n                                    fill=\"currentColor\"/>\n                            <path\n                                    d=\"M13.0379 7.47998C13.8688 7.47998 14.5446 8.15585 14.5446 8.98668C14.5446 9.26428 14.7693 9.48891 15.0469 9.48891C15.3245 9.48891 15.5491 9.26428 15.5491 8.98668C15.5491 8.15585 16.225 7.47998 17.0558 7.47998C17.3334 7.47998 17.558 7.25535 17.558 6.97775C17.558 6.70015 17.3334 6.47552 17.0558 6.47552C16.225 6.47552 15.5491 5.76616 15.5491 4.93534C15.5491 4.65774 15.3245 4.43311 15.0469 4.43311C14.7693 4.43311 14.5446 4.65774 14.5446 4.93534C14.5446 5.76616 13.8688 6.47552 13.0379 6.47552C12.7603 6.47552 12.5357 6.70015 12.5357 6.97775C12.5357 7.25535 12.7603 7.47998 13.0379 7.47998Z\"\n                                    fill=\"currentColor\"/>\n                        </svg>\n                    </span>\n                </span>\n                <span class='menu-title'>Dark</span>\n            </a>\n        </div>\n        <!-- end::Menu item -->\n\n        <!-- begin::Menu item  -->\n        <div class='menu-item px-3 my-0'>\n            <a class=\"menu-link px-3 py-2\"\n               [ngClass]=\"{'active': menuMode === 'system'}\"\n               (click)=\"switchMode('system')\">\n                <span class='menu-icon'\n                      data-kt-element='icon'>\n                    <span class=\"svg-icon svg-icon-3\">\n                        <svg width=\"24\"\n                             height=\"24\"\n                             viewBox=\"0 0 24 24\"\n                             fill=\"none\"\n                             xmlns=\"http://www.w3.org/2000/svg\">\n                            <path fill-rule=\"evenodd\"\n                                  clip-rule=\"evenodd\"\n                                  d=\"M1.34375 3.9463V15.2178C1.34375 16.119 2.08105 16.8563 2.98219 16.8563H8.65093V19.4594H6.15702C5.38853 19.4594 4.75981 19.9617 4.75981 20.5757V21.6921H19.2403V20.5757C19.2403 19.9617 18.6116 19.4594 17.8431 19.4594H15.3492V16.8563H21.0179C21.919 16.8563 22.6562 16.119 22.6562 15.2178V3.9463C22.6562 3.04516 21.9189 2.30786 21.0179 2.30786H2.98219C2.08105 2.30786 1.34375 3.04516 1.34375 3.9463ZM12.9034 9.9016C13.241 9.98792 13.5597 10.1216 13.852 10.2949L15.0393 9.4353L15.9893 10.3853L15.1297 11.5727C15.303 11.865 15.4366 12.1837 15.523 12.5212L16.97 12.7528V13.4089H13.9851C13.9766 12.3198 13.0912 11.4394 12 11.4394C10.9089 11.4394 10.0235 12.3198 10.015 13.4089H7.03006V12.7528L8.47712 12.5211C8.56345 12.1836 8.69703 11.8649 8.87037 11.5727L8.0107 10.3853L8.96078 9.4353L10.148 10.2949C10.4404 10.1215 10.759 9.98788 11.0966 9.9016L11.3282 8.45467H12.6718L12.9034 9.9016ZM16.1353 7.93758C15.6779 7.93758 15.3071 7.56681 15.3071 7.1094C15.3071 6.652 15.6779 6.28122 16.1353 6.28122C16.5926 6.28122 16.9634 6.652 16.9634 7.1094C16.9634 7.56681 16.5926 7.93758 16.1353 7.93758ZM2.71385 14.0964V3.90518C2.71385 3.78023 2.81612 3.67796 2.94107 3.67796H21.0589C21.1839 3.67796 21.2861 3.78023 21.2861 3.90518V14.0964C15.0954 14.0964 8.90462 14.0964 2.71385 14.0964Z\"\n                                  fill=\"currentColor\"/>\n                        </svg>\n                    </span>\n                </span>\n                <span class='menu-title'>System</span>\n            </a>\n        </div>\n        <!-- end::Menu item -->\n    </ng-container>\n</div>\n<!-- end::Menu -->\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InlineSVGModule } from 'ng-inline-svg-2';\nimport { ThemeModeSwitcherComponent } from './component/theme-mode-switcher.component';\n\n@NgModule({\n    declarations: [\n        ThemeModeSwitcherComponent\n    ],\n    imports: [\n        CommonModule,\n        InlineSVGModule\n    ],\n    exports: [\n        ThemeModeSwitcherComponent\n    ],\n})\nexport class IatecMetronicDropdownThemeModeModule {\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs';\nimport { LanguageModel, Languages } from '../models';\n\n@Component({\n\tselector: 'iatec-metronic-layout-languages',\n\ttemplateUrl: './languages.component.html',\n\tstyleUrls: ['./languages.component.scss']\n})\nexport class LanguagesComponent implements OnInit {\n\n\t@Output() languageSelected = new EventEmitter();\n\t@Input() language: LanguageModel;\n\t@Input() languages: Languages;\n\t@Input() set font(value: string) {\t\t\n\t\tthis.finallyFont = value;\n\t}\n\n\t@Input() set placement(value: string) {\t\t\n\t\tthis.finallyPlacement = value;\n\t}\n\t\n\tpublic finallyFont: string = \"fs-5\";\n\tpublic finallyPlacement : string = \"bottom-end\";\n\tpublic queryField = new FormControl();\n\tpublic filteredLanguages: Languages;\n\tpublic lengthInitial: number = 0;\n\tpublic class:Array<string> = [];\t\n\n\tconstructor() { }\n\n\tngOnInit(): void {\n\t\tthis.lengthInitial = this.languages.length;\n\t\tthis.filteredLanguages = this.languages;\n\n\t\tthis.queryField.valueChanges\n\t\t\t.pipe(\n\t\t\t\tmap((value) => value.trim()),\n\t\t\t\tdebounceTime(200),\n\t\t\t\tdistinctUntilChanged())\n\t\t\t.subscribe(\n\t\t\t\tresult => {\n\t\t\t\t\tthis.filteredLanguages = this.languages.filter(l =>\n\t\t\t\t\t\tl.country.toLowerCase().includes(result.toLowerCase()) ||\n\t\t\t\t\t\tl.lang?.toLowerCase().includes(result.toLowerCase()) ||\n\t\t\t\t\t\tl.name.toLowerCase().includes(result.toLowerCase()))\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tpublic select(language: any): void {\n\t\tthis.language = language\n\t\tthis.languageSelected.emit(language);\n\t}\n}","<div class=\"d-flex align-items-center cursor-pointer\"\n     data-kt-menu-trigger=\"click\"\n     data-kt-menu-attach=\"parent\"\n     [attr.data-kt-menu-placement]=\"finallyPlacement\"\n     *ngIf=\"language\">\n\n    <img data-kt-element=\"current-lang-flag\"\n         class=\"rounded-circle me-3 flags\"\n         src=\"https://purecatamphetamine.github.io/country-flag-icons/1x1/{{language.country | uppercase}}.svg\"\n         alt=\"lang\">\n    <span class=\"d-none d-xl-flex lh-1 mb-1\"\n          [ngClass]=\"finallyFont\">\n        {{language.name}}\n    </span>\n    <span class=\"d-xl-none d-flex lh-1 mb-1\"\n          [ngClass]=\"finallyFont\">\n        {{language.lang | uppercase}}\n    </span>\n    <span class=\"svg-icon svg-icon-3 svg-icon-muted rotate-180 ms-2\">\n        <svg width=\"24\"\n             height=\"24\"\n             viewBox=\"0 0 24 24\"\n             fill=\"none\"\n             xmlns=\"http://www.w3.org/2000/svg\">\n            <path d=\"M11.4343 12.7344L7.25 8.55005C6.83579 8.13583 6.16421 8.13584 5.75 8.55005C5.33579 8.96426 5.33579 9.63583 5.75 10.05L11.2929 15.5929C11.6834 15.9835 12.3166 15.9835 12.7071 15.5929L18.25 10.05C18.6642 9.63584 18.6642 8.96426 18.25 8.55005C17.8358 8.13584 17.1642 8.13584 16.75 8.55005L12.5657 12.7344C12.2533 13.0468 11.7467 13.0468 11.4343 12.7344Z\"\n                  fill=\"currentColor\">\n            </path>\n        </svg>\n    </span>\n\n</div>\n<div class='menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary fw-semibold w-200px py-4 mb-3'\n     data-kt-menu=\"true\">\n\n    <div *ngIf=\"lengthInitial > 5\">\n        <div class=\"rounded-3 d-flex border-1 rounded-3\">\n            <form data-kt-search-element=\"form\"\n                  class=\"w-100 position-relative ps-5\"\n                  autocomplete=\"off\">\n                <span\n                        class=\"svg-icon svg-icon-2 svg-icon-lg-1 svg-icon-gray-500 position-absolute top-50 translate-middle-y ms-0\">\n                    <svg width=\"24\"\n                         height=\"24\"\n                         viewBox=\"0 0 24 24\"\n                         fill=\"none\"\n                         xmlns=\"http://www.w3.org/2000/svg\">\n                        <rect opacity=\"0.5\"\n                              x=\"17.0365\"\n                              y=\"15.1223\"\n                              width=\"8.15546\"\n                              height=\"2\"\n                              rx=\"1\"\n                              transform=\"rotate(45 17.0365 15.1223)\"\n                              fill=\"currentColor\"></rect>\n                        <path d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\n                              fill=\"currentColor\"></path>\n                    </svg>\n                </span>\n                <input [formControl]=\"queryField\"\n                       [placeholder]=\"'general.global.search' | transloco\"\n                       type=\"text\"\n                       class=\"search-input form-control form-control-flush ps-10 opacity-75 fs-5 fw-bold lh-1 mb-1 text-gray-900\"\n                       name=\"search\"\n                       value=\"\"\n                       placeholder=\"Search...\"\n                       data-kt-search-element=\"input\">\n                <span class=\"btn btn-flush btn-active-color-primary position-absolute top-50 end-0 translate-middle-y lh-0 d-none\"\n                      data-kt-search-element=\"clear\">\n                    <span class=\"svg-icon svg-icon-2 svg-icon-lg-1 me-0\">\n                        <svg width=\"24\"\n                             height=\"24\"\n                             viewBox=\"0 0 24 24\"\n                             fill=\"none\"\n                             xmlns=\"http://www.w3.org/2000/svg\">\n                            <rect opacity=\"0.5\"\n                                  x=\"6\"\n                                  y=\"17.3137\"\n                                  width=\"16\"\n                                  height=\"2\"\n                                  rx=\"1\"\n                                  transform=\"rotate(-45 6 17.3137)\"\n                                  fill=\"currentColor\"></rect>\n                            <rect x=\"7.41422\"\n                                  y=\"6\"\n                                  width=\"16\"\n                                  height=\"2\"\n                                  rx=\"1\"\n                                  transform=\"rotate(45 7.41422 6)\"\n                                  fill=\"currentColor\"></rect>\n                        </svg>\n                    </span>\n                </span>\n            </form>\n        </div>\n        <div class=\"separator border-gray-200 mb-1 mx-3\"></div>\n    </div>\n\n    <div class=\"scroll-y mh-200px mh-lg-325px\">\n        <div *ngFor=\"let language of filteredLanguages\"\n             class=\"menu-item rounded-4 ms-2 me-1\"\n             (click)=\"select(language)\">\n            <a class=\"menu-link d-flex px-5 bg-hover-light\">\n                <img data-kt-element=\"current-lang-flag\"\n                     class=\"w-26px h-26px rounded-circle me-3 border border-3 flags\"\n                     src=\"https://purecatamphetamine.github.io/country-flag-icons/1x1/{{language.country | uppercase}}.svg\"\n                     alt=\"lang\">\n                <span class=\"d-flex opacity-75 fs-5 fw-bold lh-1 mb-1 text-gray-900 text-hover-primary w-100\">\n                    {{language.name}}\n                </span>\n            </a>\n        </div>\n    </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslocoModule } from '@ngneat/transloco';\nimport { LanguagesComponent } from './component/languages.component';\n\n@NgModule({\n  declarations: [\n    LanguagesComponent\n  ],\n  imports: [\n    CommonModule,\n    NgbDropdownModule,\n    NgbTooltipModule,\n    ReactiveFormsModule,\n    TranslocoModule\n  ],\n  exports: [\n    LanguagesComponent\n  ]\n})\nexport class IatecMetronicDropdownLanguagesModule { }\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'iatec-metronic-layout-notifications',\n    templateUrl: './notifications.component.html',\n    styleUrls: ['./notifications.component.css']\n})\nexport class NotificationsComponent implements OnInit {\n\n    @HostBinding('class') class = `d-flex align-items-center`;\n    @Input() toggleBtnClass: string = '';\n    @Input() toggleBtnIconClass: string = 'fs-3';\n\n    constructor() {\n    }\n\n    ngOnInit(): void {\n    }\n\n}\n","<!--begin::Drawer toggle-->\n<div class=\"btn btn-icon\"\n     [ngClass]=\"toggleBtnClass\"\n     id=\"kt_drawer_notifications_toggle\">\n    <i class=\"fa-duotone fa-bell\"\n       [ngClass]=\"toggleBtnIconClass\"></i>\n</div>\n<!--end::Drawer toggle-->\n\n<!--begin::Notifications drawer-->\n<div id=\"kt_drawer_notifications\"\n     class=\"bg-body\"\n     data-kt-drawer=\"true\"\n     data-kt-drawer-name=\"notifications\"\n     data-kt-drawer-activate=\"true\"\n     data-kt-drawer-overlay=\"true\"\n     data-kt-drawer-width=\"{default:'300px', 'md': '500px'}\"\n     data-kt-drawer-direction=\"end\"\n     data-kt-drawer-toggle=\"#kt_drawer_notifications_toggle\"\n     data-kt-drawer-close=\"#kt_drawer_notifications_close\">\n    <!--begin::Messenger-->\n    <div class=\"card w-100 rounded-0 border-0\"\n         id=\"kt_drawer_chat_messenger\">\n        <!--begin::Card header-->\n        <div class=\"card-header pe-5\"\n             id=\"kt_drawer_chat_messenger_header\">\n            <!--begin::Title-->\n            <div class=\"card-title\">\n                <!--begin::User-->\n                <div class=\"d-flex justify-content-center flex-column me-3\">\n                    <a href=\"#\"\n                       class=\"fs-4 fw-bold text-gray-900 text-hover-primary me-1 mb-2 lh-1\">Notifications</a>\n                </div>\n                <!--end::User-->\n            </div>\n            <!--end::Title-->\n            <!--begin::Card toolbar-->\n            <div class=\"card-toolbar\">\n                <!--begin::Close-->\n                <div class=\"btn btn-sm btn-icon btn-active-light-primary\"\n                     id=\"kt_drawer_notifications_close\">\n                    <!--begin::Svg Icon | path: icons/duotune/arrows/arr061.svg-->\n                    <span class=\"svg-icon svg-icon-2\">\n                            <svg width=\"24\"\n                                 height=\"24\"\n                                 viewBox=\"0 0 24 24\"\n                                 fill=\"none\"\n                                 xmlns=\"http://www.w3.org/2000/svg\">\n                                <rect opacity=\"0.5\"\n                                      x=\"6\"\n                                      y=\"17.3137\"\n                                      width=\"16\"\n                                      height=\"2\"\n                                      rx=\"1\"\n                                      transform=\"rotate(-45 6 17.3137)\"\n                                      fill=\"currentColor\"/>\n                                <rect x=\"7.41422\"\n                                      y=\"6\"\n                                      width=\"16\"\n                                      height=\"2\"\n                                      rx=\"1\"\n                                      transform=\"rotate(45 7.41422 6)\"\n                                      fill=\"currentColor\"/>\n                            </svg>\n                        </span>\n                    <!--end::Svg Icon-->\n                </div>\n                <!--end::Close-->\n            </div>\n            <!--end::Card toolbar-->\n        </div>\n        <!--end::Card header-->\n\n        <!--begin::Card body-->\n        <div class=\"card-body\"\n             id=\"kt_drawer_chat_messenger_body\">\n        </div>\n        <!--end::Card body-->\n\n        <!--begin::Card footer-->\n        <div class=\"card-footer pt-4\"\n             id=\"kt_drawer_chat_messenger_footer\">\n        </div>\n        <!--end::Card footer-->\n    </div>\n    <!--end::Messenger-->\n</div>\n<!--end::Notifications drawer-->\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NotificationsComponent } from './component/notifications.component';\n\n\n@NgModule({\n    declarations: [\n        NotificationsComponent\n    ],\n    imports: [\n        CommonModule\n    ],\n    exports: [\n        NotificationsComponent\n    ]\n})\nexport class IatecMetronicDrawerNotificationsModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'iatec-metronic-environment-highlight',\n    templateUrl: './environment-highlight.component.html',\n    styleUrls: ['./environment-highlight.component.scss']\n})\nexport class EnvironmentHighlightComponent implements OnInit {\n\n    @Input() environment: string;\n\n    constructor() {\n    }\n\n    ngOnInit(): void {\n    }\n}\n","<div class=\"environment-bar\"\n     [ngClass]=\"environment\">{{environment}}</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EnvironmentHighlightComponent } from \"./component/environment-highlight.component\";\n\n\n@NgModule({\n    declarations: [EnvironmentHighlightComponent],\n    imports: [\n        CommonModule\n    ],\n    exports: [\n        EnvironmentHighlightComponent\n    ]\n})\nexport class IatecMetronicEnvironmentHighlightModule {\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n    selector: 'iatec-metronic-default-form-modal',\n    templateUrl: './default.component.html',\n    styleUrls: ['./default.component.scss']\n})\nexport class DefaultComponent implements OnInit {\n\n    @Input() title: string;\n    @Input() showCloseIcon: boolean = true;\n    @Output() dismiss: EventEmitter<any> = new EventEmitter()\n\n    constructor() {\n    }\n\n    ngOnInit(): void {\n    }\n\n    public startDismiss(): void {\n        this.dismiss.emit();\n    }\n}\n","<!--begin::Modal header-->\n<div class=\"modal-header\">\n    <!--begin::Modal title-->\n    <ng-content select=\"[title]\"></ng-content>\n    <!--end::Modal title-->\n\n    <!--begin::Close-->\n    <div class=\"btn btn-sm btn-icon btn-active-color-primary\"\n         data-bs-dismiss=\"modal\"\n         (click)=\"startDismiss()\"\n         *ngIf=\"showCloseIcon\">\n        <!--begin::Svg Icon | path: icons/duotune/arrows/arr061.svg-->\n        <i class=\"fa-solid fa-xmark fs-1\"></i>        \n        <!--end::Svg Icon-->\n    </div>\n    <!--end::Close-->\n</div>\n<!--end::Modal header-->\n\n<!--begin::Modal body-->\n<div class=\"modal-body py-lg-10 px-lg-10\">\n    <ng-content select=\"[body]\"></ng-content>\n</div>\n<!--end::Modal body-->\n\n<!--begin::Modal footer-->\n<div class=\"modal-footer flex-center\">\n    <ng-content select=\"[footer]\"></ng-content>\n</div>\n<!--end::Modal footer-->\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DefaultComponent } from './component/default.component';\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\n\n\n@NgModule({\n    declarations: [\n        DefaultComponent\n    ],\n    imports: [\n        CommonModule,\n        NgbModalModule\n    ],\n    exports:[\n        DefaultComponent\n    ]\n})\nexport class IatecMetronicDefaultFormModalModule {\n}\n","import { PolicyTypeEnum } from \"../enums\";\n\n\nexport class PolicyVersionModel {\n    id: number;\n    description: string;\n    policyTypeEnum: PolicyTypeEnum;\n    content: string;\n    lang?: string;\n}","import { AdditionalAcceptancePolicyItemModel } from \"./additional-acceptance-policy-item.model\";\nimport { AcceptanceModel } from \"./acceptance.model\";\n\nexport class AcceptancePolicyPersonModel {\n    applicationKey: string;\n    personId: number;\n    acceptances: Array<AcceptanceModel>;\n    additionalAcceptancePolicyItems: Array<AdditionalAcceptancePolicyItemModel>;\n}","export class AcceptanceModel{\n    policyVersionId: number;\n}","import { AdditionalPolicyDataTypeEnum } from \"../enums\";\n\nexport class AdditionalAcceptancePolicyItemModel {\n    additionalPolicyDataTypeEnum: AdditionalPolicyDataTypeEnum;\n    value: string;\n}\n","export class UserIpAddressModel {\n    ip: string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { AcceptancePolicyPersonModel } from \"../models\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AcceptanceService{\n    constructor(){\n    }\n\n    private _acceptancePolicyVersionChange: BehaviorSubject<AcceptancePolicyPersonModel | undefined> =\n        new BehaviorSubject<AcceptancePolicyPersonModel | undefined>(undefined);\n\n    private _hasButtonSendClicked: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n    private _hasButtonDismissClicked: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n    private _wasAcceptanceFinished: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n\n    set acceptancePolicyVersion(acceptancePolicyVersion: AcceptancePolicyPersonModel){\n        this._acceptancePolicyVersionChange.next(acceptancePolicyVersion);\n    }\n\n    get acceptancePolicyVersion$(): Observable<AcceptancePolicyPersonModel | undefined>{\n        return this._acceptancePolicyVersionChange.asObservable();\n    }\n\n    public hasButtonSendClicked(){\n        this._hasButtonSendClicked.next(true);\n    }\n\n    get hasButtonSendClicked$() : Observable<boolean | unknown>{\n        return this._hasButtonSendClicked.asObservable();\n    }\n\n    public hasButtonDismissClicked(){\n        this._hasButtonDismissClicked.next(true);\n    }\n\n    get hasButtonDismissClicked$() : Observable<boolean | unknown>{\n        return this._hasButtonDismissClicked.asObservable();\n    }\n\n    get wasAcceptanceFinished$() : Observable<boolean | unknown>{\n        return this._wasAcceptanceFinished.asObservable();\n    }\n\n    public wasAcceptanceFinished(){\n        this._wasAcceptanceFinished.next(true);\n    }\n}","import { Injectable } from \"@angular/core\";\nimport { PolicyVersionModel } from \"../models\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ContractsService{\n    constructor(){ }\n    private _contracts: Array<PolicyVersionModel> = [];\n    set contracts(contracts: Array<PolicyVersionModel>){\n        this._contracts = contracts;\n    }\n\n    get contracts(): Array<PolicyVersionModel>{\n        return this._contracts;\n    }\n}","export enum PolicyTypeEnum{\n    TERMS_OF_CONSENT = 1,\n    TERMS_OF_USER = 2,\n    PRIVACY_POLICY = 3\n}","export enum AdditionalPolicyDataTypeEnum{\n    IP = 1,\n    OPERATIONAL_SYSTEM = 2,\n    EXPIRATION_DATE = 3\n}","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n@Injectable({\n    providedIn: 'root'\n})\nexport class ModalsService{\n    private _hasCheckedTermsAndFormValid: BehaviorSubject<boolean | unknown> = new BehaviorSubject<boolean | unknown>(undefined);\n\n    set hasCheckedTermsAndFormValid(value: boolean){\n        this._hasCheckedTermsAndFormValid.next(value);\n    }\n\n    get hasCheckedTermsAndFormValid$() : Observable<boolean | unknown>{\n        return this._hasCheckedTermsAndFormValid.asObservable();\n    }\n}","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { debounceTime, Subject, takeUntil } from \"rxjs\";\nimport {\n    AcceptanceModel,\n    AcceptancePolicyPersonModel,\n    AdditionalAcceptancePolicyItemModel,\n    PolicyVersionModel\n} from \"../../../../models\";\nimport { ModalsService } from \"../../services\";\nimport { AcceptanceService } from \"../../../../services\";\nimport { AdditionalPolicyDataTypeEnum, PolicyTypeEnum } from \"../../../../enums\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\nimport { TranslocoUtils } from \"iatec-7you-core\";\n\n@Component({\n    selector: 'iatec-metronic-layout-contracts-modals-form',\n    templateUrl: 'form.component.html',\n    styleUrls: ['form.component.scss']\n})\nexport class FormComponent implements OnInit, OnDestroy {\n    @Input() contracts: Array<PolicyVersionModel> = [];\n    public showDivPolicies: boolean = false;\n    public policiesContent: string = \"\";\n    public textTermsAndConsent: string = \"\";\n    public isCheckedTerms: boolean = false;\n    public form: FormGroup;\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n    constructor(\n        private _formBuilder: FormBuilder,\n        private _deviceDetector: DeviceDetectorService,\n        private _modalsService: ModalsService,\n        private _acceptanceService: AcceptanceService,\n        private _translateUtil: TranslocoUtils) {\n    }\n\n    ngOnInit(): void {\n        this.form = this._formBuilder.group({\n            expiryTime: new FormControl<string | null>(\"\", [Validators.required])\n        });\n\n        this.form.valueChanges\n            .pipe(\n                takeUntil(this._unsubscribeAll),\n                debounceTime(200)\n            )\n            .subscribe(() => {\n                this._submitForm();\n            });\n\n        this.textTermsAndConsent = this._translateTextTermsUseAndConsent();\n\n        this.policiesContent = this.contracts\n            .filter(c => c.policyTypeEnum !== PolicyTypeEnum.PRIVACY_POLICY)\n            .map(item => item.content).join(\"\");\n    }\n\n    ngOnDestroy(): void {\n        this._unsubscribeAll.next(false);\n        this._unsubscribeAll.complete();\n    }\n\n    public showPolicies(): void {\n        this.showDivPolicies = true;\n    }\n\n    public checkedTerms(): void {\n        this.isCheckedTerms = !this.isCheckedTerms;\n        this._modalsService.hasCheckedTermsAndFormValid = this.isCheckedTerms && this.form.valid;\n    }\n\n    private _translateTextTermsUseAndConsent(): string {\n        let policyTypes = this.contracts.map(x => x.policyTypeEnum);\n\n        if (policyTypes.includes(PolicyTypeEnum.TERMS_OF_USER) &&\n            policyTypes.includes(PolicyTypeEnum.TERMS_OF_CONSENT)) {\n            return \"module.contract.modal.form.term.label.link.use-and-consent\";\n        }\n\n        if (policyTypes.includes(PolicyTypeEnum.TERMS_OF_USER)) {\n            return \"module.contract.modal.form.term.label.link.use\";\n        }\n\n        return \"module.contract.modal.form.term.label.link.consent\";\n    }\n\n    private _submitForm(): void {\n        if (this.form.valid) {\n            this._modalsService.hasCheckedTermsAndFormValid = this.isCheckedTerms && this.form.valid;\n            let acceptancePolicyVersion: AcceptancePolicyPersonModel = new AcceptancePolicyPersonModel();\n\n            acceptancePolicyVersion.acceptances = this._getAcceptances();\n            acceptancePolicyVersion.additionalAcceptancePolicyItems =\n                this._getAdditionalAcceptancePolicyItems(parseInt(this.form.get('expiryTime')?.value));\n\n            this._acceptanceService.acceptancePolicyVersion = acceptancePolicyVersion;\n        }\n    }\n\n    private _getAcceptances(): Array<AcceptanceModel> {\n        let acceptances: Array<AcceptanceModel> = [];\n\n        this.contracts.forEach(contract => {\n            acceptances.push({\n                policyVersionId: contract.id\n            });\n        });\n\n        return acceptances;\n    }\n\n    private _getAdditionalAcceptancePolicyItems(expiryTime: number): Array<AdditionalAcceptancePolicyItemModel> {\n        let additionalAcceptancePolicyItems: Array<AdditionalAcceptancePolicyItemModel> = [];\n\n        additionalAcceptancePolicyItems.push({\n            additionalPolicyDataTypeEnum: AdditionalPolicyDataTypeEnum.EXPIRATION_DATE,\n            value: this._calculateExpirationDate(expiryTime)\n        });\n\n        additionalAcceptancePolicyItems.push({\n            additionalPolicyDataTypeEnum: AdditionalPolicyDataTypeEnum.OPERATIONAL_SYSTEM,\n            value: this._getUserOperationalSystem()\n        });\n\n        return additionalAcceptancePolicyItems;\n    }\n\n    private _calculateExpirationDate(expiryTime: number): string {\n        let date = new Date();\n        return `${date.getFullYear() + expiryTime}-${date.getMonth() + 1}-${date.getDate()}`;\n    }\n\n    private _getUserOperationalSystem(): string {\n        return `${this._deviceDetector.os}`;\n    }\n}","<form [formGroup]=\"form\">\n    <div class=\"pb-5 pb-lg-5\">\n        <h3 class=\"fw-semibold fs-5 text-center lh-base\">\n            {{\"module.contract.modal.form.title\" | transloco}}\n        </h3>\n    </div>\n\n    <div class=\"fv-row mb-10\"\n         *ngIf=\"showDivPolicies\">\n        <div [innerHTML]=\"policiesContent\"\n             class=\"px-5 pt-3 border fs-4 policies\"></div>\n    </div>\n\n    <div class=\"d-flex flex-wrap mb-10 terms\">\n        <label class=\"form-check form-check-sm form-check-custom form-check-inline form-check-solid\">\n            <input type=\"checkbox\"\n                   class=\"form-check-input cursor-pointer\"\n                   [checked]=\"isCheckedTerms\"\n                   (click)=\"checkedTerms();\">\n            <span class=\"fw-semibold ms-2 fs-5 text-gray-600\">\n                    {{\"module.contract.modal.form.term.label.read\" | transloco}}\n                </span>\n        </label>\n\n        <span (click)=\"showPolicies()\"\n              class=\"cursor-pointer text-primary fw-semibold fs-5 ms-1\">\n            <span>{{textTermsAndConsent | transloco}}</span>\n        </span>\n    </div>\n\n    <div class=\"fv-row\">\n        <label class=\"required fs-6 fw-semibold form-label mb-2\">\n            {{\"module.contract.modal.form.expiry-time.label\" | transloco}}\n        </label>\n\n        <select class=\"form-select form-select-solid form-select-lg fs-5\"\n                [ngClass]=\"{\n                    'text-gray-600':!form.valid,\n                    'text-gray-800': form.valid\n                }\"\n                data-select2-id=\"select2-data-10-3gn3\"\n                formControlName=\"expiryTime\">\n            <option value=\"\"\n                    selected\n                    disabled>\n                {{\"module.contract.modal.form.expiry-time.select-option\" | transloco}}\n            </option>\n            <option *ngFor=\"let year of [10,9,8,7,6,5,4,3,2,1]\"\n                    [value]=\"year\">\n                {{year}}\n                <span *ngIf=\"year === 1\">\n                    {{\"module.contract.modal.form.year\" | transloco}}\n                </span>\n                <span *ngIf=\"year > 1\">\n                    {{(\"module.contract.modal.form.year\" | transloco).concat(\"s\")}}\n                </span>\n            </option>\n        </select>\n    </div>\n</form>","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { LoadingService } from \"iatec-7you-core\";\nimport { PolicyVersionModel } from \"../../../models\";\nimport { Subject, takeUntil } from \"rxjs\";\nimport { AcceptanceService } from \"../../../services\";\nimport { ModalsService } from \"../services\";\n@Component({\n    selector: 'iatec-metronic-layout-contracts-modals',\n    templateUrl: 'modals.component.html',\n    styleUrls: ['modals.component.scss']\n})\nexport class ModalsComponent implements OnInit, OnDestroy{\n    @Input() contracts: Array<PolicyVersionModel> = []\n    public disableButton: boolean | unknown = false;\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n    constructor(\n        public loadingService: LoadingService,\n        private _acceptanceService: AcceptanceService,\n        private _modalsService: ModalsService) {\n    }\n    ngOnInit() : void{\n        this._modalsService.hasCheckedTermsAndFormValid$\n            .pipe(\n                takeUntil(this._unsubscribeAll)\n            )\n            .subscribe(result => {\n                this.disableButton = result;\n            });\n    }\n\n    ngOnDestroy() : void{\n        this._unsubscribeAll.next(false);\n        this._unsubscribeAll.complete();\n    }\n\n    public dismiss(): void{\n        this._acceptanceService.hasButtonDismissClicked();\n    }\n\n    public sendAcceptances(): void{\n        this._acceptanceService.hasButtonSendClicked();\n    }\n}","<iatec-metronic-default-form-modal (dismiss)=\"dismiss()\"\n                                   [showCloseIcon]=\"!loadingService.isBusy\">\n    <ng-container title>\n        <h2 class=\"fw-bold fs-2\">\n            {{\"module.contract.modal.title\" | transloco}}\n        </h2>\n    </ng-container>\n\n    <ng-container body>\n        <iatec-metronic-layout-contracts-modals-form [contracts]=\"contracts\"></iatec-metronic-layout-contracts-modals-form>\n    </ng-container>\n\n    <ng-container footer>\n        <!--begin::Button-->\n        <button (click)=\"sendAcceptances()\"\n                type=\"button\"\n                id=\"kt_modal_new_address_submit\"\n                class=\"btn btn-primary fs-5\"\n                [attr.data-kt-indicator]=\"loadingService.isBusy ? 'on' :''\"\n                [disabled]=\"loadingService.isBusy || !disableButton\">\n            <span class=\"indicator-label\">\n                {{\"module.contract.modal.continues\" | transloco}}\n            </span>\n\n            <span class=\"indicator-progress\">\n                 {{ \"general.ui.noty.please-wait\" | transloco }}\n                <span class=\"spinner-border spinner-border-sm align-middle ms-2\"></span>\n            </span>\n\n        </button>\n        <!--end::Button-->\n    </ng-container>\n</iatec-metronic-default-form-modal>","import { Component, OnInit } from \"@angular/core\";\nimport { NgbModal, NgbModalConfig } from \"@ng-bootstrap/ng-bootstrap\";\nimport { ModalsComponent } from \"../components/modals/component/modals.component\";\nimport { ContractsService } from \"../services\";\n\n@Component({\n    selector: 'iatec-metronic-layout-contracts',\n    template: ''\n})\nexport class ContractsComponent implements OnInit{\n    constructor(\n        private _modalConfig: NgbModalConfig,\n        private _modalService: NgbModal,\n        private _contractService: ContractsService\n    ) {\n        _modalConfig.backdrop = 'static';\n        _modalConfig.keyboard = false;\n        _modalConfig.centered = true;\n        _modalConfig.size = \"xl\";\n    }\n\n    ngOnInit(){\n        if(this._contractService.contracts.length > 0){\n            const modalRef = this._modalService.open(ModalsComponent);\n            const {contracts} = this._contractService;\n            modalRef.componentInstance.contracts = Object.assign(contracts);\n        }\n    }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ContractsComponent } from \"./component/contracts.component\";\nimport { ModalsComponent } from \"./components\";\nimport { TranslocoModule } from \"@ngneat/transloco\";\nimport { FormComponent } from \"./components/modals/components\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { IatecMetronicDefaultFormModalModule } from \"../modals\";\n\n@NgModule({\n    declarations: [\n        ContractsComponent,\n        ModalsComponent,\n        FormComponent\n    ],\n    imports: [\n        CommonModule,\n        IatecMetronicDefaultFormModalModule,\n        TranslocoModule,\n        ReactiveFormsModule\n    ],\n    exports: [\n        ContractsComponent\n    ]\n})\nexport class IatecMetronicContractsModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i1.UserInnerService","i4","i1.ThemeModeService","i3.ModalsService","i4.AcceptanceService","i5","i6","i7","i2.AcceptanceService","i4.DefaultComponent","i5.FormComponent","i2.ContractsService"],"mappings":"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"}