{"version":3,"file":"vimersvn-vex-template.mjs","sources":["../../src/lib/services/vex-splash-screen.service.ts","../../src/lib/services/vex-layout.service.ts","../../src/lib/utils/merge-deep.ts","../../src/lib/config/vex-config.interface.ts","../../src/lib/utils/deep-clone.ts","../../src/lib/config/vex-configs.ts","../../src/lib/config/config.token.ts","../../src/lib/config/vex-config.service.ts","../../src/lib/services/vex-demo.service.ts","../../src/lib/services/vex-platform.service.ts","../../src/lib/components/vex-highlight/vex-highlight.model.ts","../../src/lib/components/vex-highlight/vex-highlight.service.ts","../../src/lib/components/vex-highlight/vex-highlight.directive.ts","../../src/lib/components/vex-highlight/vex-highlight.module.ts","../../src/lib/vex.provider.ts","../../src/lib/config/color-variables.ts","../../src/lib/config/constants.ts","../../src/lib/animations/dropdown.animation.ts","../../src/lib/animations/fade-in-right.animation.ts","../../src/lib/animations/fade-in-up.animation.ts","../../src/lib/animations/popover.animation.ts","../../src/lib/animations/scale-fade-in.animation.ts","../../src/lib/animations/scale-in-out.animation.ts","../../src/lib/animations/scale-in.animation.ts","../../src/lib/animations/stagger.animation.ts","../../src/lib/pipes/vex-date-format-relative/vex-date-format-relative.pipe.ts","../../src/lib/pipes/vex-date-format-tokens/vex-date-format-tokens.pipe.ts","../../src/lib/pipes/vex-strip-html/vex-strip-html.pipe.ts","../../src/lib/utils/check-router-childs-data.ts","../../src/lib/utils/create-date-array.ts","../../src/lib/utils/default-chart-options.ts","../../src/lib/utils/is-nil.ts","../../src/lib/utils/track-by.ts","../../src/lib/components/vex-breadcrumbs/vex-breadcrumb/vex-breadcrumb.component.ts","../../src/lib/components/vex-breadcrumbs/vex-breadcrumbs.component.ts","../../src/lib/components/vex-chart/vex-chart.component.ts","../../src/lib/components/vex-page-layout/vex-page-layout.component.ts","../../src/lib/components/vex-page-layout/vex-page-layout-content.directive.ts","../../src/lib/components/vex-page-layout/vex-page-layout-header.directive.ts","../../src/lib/components/vex-popover/vex-popover-ref.ts","../../src/lib/components/vex-popover/vex-popover.component.ts","../../src/lib/components/vex-popover/vex-popover.component.html","../../src/lib/components/vex-popover/vex-popover.service.ts","../../src/lib/components/vex-progress-bar/vex-progress-bar.component.ts","../../src/lib/components/vex-progress-bar/vex-progress-bar.component.html","../../src/lib/components/vex-scrollbar/vex-scrollbar.component.ts","../../src/lib/components/vex-secondary-toolbar/vex-secondary-toolbar.component.ts","../../src/lib/components/vex-showdown/vex-showdown-config.provider.ts","../../src/lib/components/vex-showdown/vex-showdown-converter.provider.ts","../../src/lib/components/vex-showdown/vex-showdown.component.ts","../../src/lib/components/vex-showdown/vex-showdown-source.directive.ts","../../src/lib/components/vex-showdown/vex-showdown.pipe.ts","../../src/lib/components/vex-showdown/vex-showdown.module.ts","../../src/lib/components/vex-sidebar/vex-sidebar.component.ts","../../src/lib/components/vex-sidebar/vex-sidebar.component.html","../../src/public-api.ts","../../src/vimersvn-vex-template.ts"],"sourcesContent":["import { Inject, Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { animate, AnimationBuilder, style } from '@angular/animations';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VexSplashScreenService {\r\n  splashScreenElem?: HTMLElement;\r\n\r\n  constructor(\r\n    private router: Router,\r\n    @Inject(DOCUMENT) private document: Document,\r\n    private animationBuilder: AnimationBuilder\r\n  ) {\r\n    this.splashScreenElem =\r\n      this.document.body.querySelector('#vex-splash-screen') ?? undefined;\r\n\r\n    if (this.splashScreenElem) {\r\n      this.router.events\r\n        .pipe(\r\n          filter((event) => event instanceof NavigationEnd),\r\n          take(1)\r\n        )\r\n        .subscribe(() => this.hide());\r\n    }\r\n  }\r\n\r\n  hide() {\r\n    const player = this.animationBuilder\r\n      .build([\r\n        style({\r\n          opacity: 1\r\n        }),\r\n        animate(\r\n          '400ms cubic-bezier(0.25, 0.8, 0.25, 1)',\r\n          style({\r\n            opacity: 0\r\n          })\r\n        )\r\n      ])\r\n      .create(this.splashScreenElem);\r\n\r\n    player.onDone(() => this.splashScreenElem?.remove());\r\n    player.play();\r\n  }\r\n}\r\n","import { DestroyRef, inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VexLayoutService {\r\n  private _quickpanelOpenSubject = new BehaviorSubject<boolean>(false);\r\n  quickpanelOpen$ = this._quickpanelOpenSubject.asObservable();\r\n\r\n  private _sidenavOpenSubject = new BehaviorSubject<boolean>(false);\r\n  sidenavOpen$ = this._sidenavOpenSubject.asObservable();\r\n\r\n  private _sidenavCollapsedSubject = new BehaviorSubject<boolean>(false);\r\n  sidenavCollapsed$ = this._sidenavCollapsedSubject.asObservable();\r\n\r\n  private _sidenavCollapsedOpenSubject = new BehaviorSubject<boolean>(false);\r\n  sidenavCollapsedOpen$ = this._sidenavCollapsedOpenSubject.asObservable();\r\n\r\n  protected destroyRef: DestroyRef = inject(DestroyRef);\r\n  private _configPanelOpenSubject = new BehaviorSubject<boolean>(false);\r\n\r\n  private _searchOpen = new BehaviorSubject<boolean>(false);\r\n  searchOpen$ = this._searchOpen.asObservable();\r\n\r\n  isDesktop$ = this.breakpointObserver\r\n    .observe(`(min-width: 1280px)`)\r\n    .pipe(map((state) => state.matches));\r\n  ltLg$ = this.breakpointObserver\r\n    .observe(`(max-width: 1279px)`)\r\n    .pipe(map((state) => state.matches));\r\n  gtMd$ = this.breakpointObserver\r\n    .observe(`(min-width: 960px)`)\r\n    .pipe(map((state) => state.matches));\r\n  ltMd$ = this.breakpointObserver\r\n    .observe(`(max-width: 959px)`)\r\n    .pipe(map((state) => state.matches));\r\n  gtSm$ = this.breakpointObserver\r\n    .observe(`(min-width: 600px)`)\r\n    .pipe(map((state) => state.matches));\r\n  isMobile$ = this.breakpointObserver\r\n    .observe(`(max-width: 599px)`)\r\n    .pipe(map((state) => state.matches));\r\n\r\n  isLtLg = () => this.breakpointObserver.isMatched(`(max-width: 1279px)`);\r\n\r\n  isMobile = () => this.breakpointObserver.isMatched(`(max-width: 599px)`);\r\n  configPanelOpen$ = this._configPanelOpenSubject.asObservable();\r\n\r\n  constructor(private readonly breakpointObserver: BreakpointObserver) {\r\n    /**\r\n     * Expand Sidenav when we switch from mobile to desktop view\r\n     */\r\n    this.isDesktop$\r\n      .pipe(\r\n        filter((matches) => !matches),\r\n        takeUntilDestroyed(this.destroyRef)\r\n      )\r\n      .subscribe(() => this.expandSidenav());\r\n  }\r\n\r\n  openQuickpanel() {\r\n    this._quickpanelOpenSubject.next(true);\r\n  }\r\n\r\n  closeQuickpanel() {\r\n    this._quickpanelOpenSubject.next(false);\r\n  }\r\n\r\n  openSidenav() {\r\n    this._sidenavOpenSubject.next(true);\r\n  }\r\n\r\n  closeSidenav() {\r\n    this._sidenavOpenSubject.next(false);\r\n  }\r\n\r\n  collapseSidenav() {\r\n    this._sidenavCollapsedSubject.next(true);\r\n  }\r\n\r\n  expandSidenav() {\r\n    this._sidenavCollapsedSubject.next(false);\r\n  }\r\n\r\n  collapseOpenSidenav() {\r\n    this._sidenavCollapsedOpenSubject.next(true);\r\n  }\r\n\r\n  collapseCloseSidenav() {\r\n    this._sidenavCollapsedOpenSubject.next(false);\r\n  }\r\n\r\n  openConfigpanel() {\r\n    this._configPanelOpenSubject.next(true);\r\n  }\r\n\r\n  closeConfigpanel() {\r\n    this._configPanelOpenSubject.next(false);\r\n  }\r\n\r\n  openSearch() {\r\n    this._searchOpen.next(true);\r\n  }\r\n\r\n  closeSearch() {\r\n    this._searchOpen.next(false);\r\n  }\r\n}\r\n","/**\r\n * Performs a deep merge of `source` into `target`.\r\n * Mutates `target` only but not its objects and arrays.\r\n *\r\n * @author inspired by [jhildenbiddle](https://stackoverflow.com/a/48218209).\r\n */\r\nexport function mergeDeep<T, P>(target: T, source: P): T & P {\r\n  const isObject = (obj: any) => obj && typeof obj === 'object';\r\n\r\n  if (!isObject(target) || !isObject(source)) {\r\n    return source as T & P;\r\n  }\r\n\r\n  Object.keys(source as any).forEach((key) => {\r\n    const targetValue = (target as any)[key];\r\n    const sourceValue = (source as any)[key];\r\n\r\n    if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\r\n      (target as any)[key] = targetValue.concat(sourceValue);\r\n    } else if (isObject(targetValue) && isObject(sourceValue)) {\r\n      (target as any)[key] = mergeDeep(\r\n        Object.assign({}, targetValue),\r\n        sourceValue\r\n      );\r\n    } else {\r\n      (target as any)[key] = sourceValue;\r\n    }\r\n  });\r\n\r\n  return target as T & P;\r\n}\r\n","import { CSSValue } from '../interfaces/css-value.type';\r\n\r\nexport enum VexTheme {\r\n  DEFAULT = 'vex-theme-default',\r\n  TEAL = 'vex-theme-teal'\r\n}\r\n\r\nexport enum VexConfigName {\r\n  apollo = 'apollo',\r\n  zeus = 'zeus',\r\n  hermes = 'hermes',\r\n  poseidon = 'poseidon',\r\n  ares = 'ares',\r\n  ikaros = 'ikaros'\r\n}\r\n\r\nexport enum VexColorScheme {\r\n  LIGHT = 'light',\r\n  DARK = 'dark'\r\n}\r\n\r\nexport interface VexConfig {\r\n  id: VexConfigName;\r\n  name: string;\r\n  bodyClass: string;\r\n  imgSrc: string;\r\n  direction: 'ltr' | 'rtl';\r\n  style: {\r\n    themeClassName: string;\r\n    colorScheme: VexColorScheme;\r\n    borderRadius: CSSValue;\r\n    button: {\r\n      borderRadius: CSSValue | undefined;\r\n    };\r\n  };\r\n  layout: 'vertical' | 'horizontal';\r\n  boxed: boolean;\r\n  sidenav: {\r\n    title: string;\r\n    imageUrl: string;\r\n    showCollapsePin: boolean;\r\n    user: {\r\n      visible: boolean;\r\n    };\r\n    search: {\r\n      visible: boolean;\r\n    };\r\n    state: 'expanded' | 'collapsed';\r\n  };\r\n  toolbar: {\r\n    fixed: boolean;\r\n    user: {\r\n      visible: boolean;\r\n    };\r\n  };\r\n  navbar: {\r\n    position: 'below-toolbar' | 'in-toolbar';\r\n  };\r\n  footer: {\r\n    visible: boolean;\r\n    fixed: boolean;\r\n  };\r\n}\r\n\r\nexport type VexConfigs = Record<VexConfigName, VexConfig>;\r\n\r\nexport interface VexThemeProvider {\r\n  name: string;\r\n  className: string;\r\n}\r\n","// TS does not allow for circular types, but there is a trick with interfaces:\r\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\r\n// eslint-disable-next-line no-use-before-define\r\ntype DeepCloneSupportedType =\r\n  | boolean\r\n  | number\r\n  | bigint\r\n  | string\r\n  | undefined\r\n  | null\r\n  | Date\r\n  | object\r\n  | IDeepCloneSupportedTypeArray;\r\n\r\n// the part of the trick above\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\ninterface IDeepCloneSupportedTypeArray extends Array<DeepCloneSupportedType> {}\r\n\r\nfunction deepClone<T extends DeepCloneSupportedType>(obj: T): T;\r\nfunction deepClone(obj: DeepCloneSupportedType): DeepCloneSupportedType {\r\n  if (obj == null || typeof obj !== 'object') {\r\n    return obj;\r\n  }\r\n\r\n  if (obj instanceof Date) {\r\n    const copy = new Date();\r\n    copy.setTime(obj.getTime());\r\n    return copy;\r\n  }\r\n\r\n  if (obj instanceof Array) {\r\n    const copy: IDeepCloneSupportedTypeArray = [];\r\n    for (let i = 0, len = obj.length; i < len; i++) {\r\n      copy[i] = deepClone(obj[i]);\r\n    }\r\n    return copy;\r\n  }\r\n\r\n  const copy: typeof obj = {};\r\n\r\n  Object.keys(obj).forEach((key) => {\r\n    (copy as any)[key] = deepClone((obj as any)[key]);\r\n  });\r\n\r\n  return copy;\r\n}\r\n\r\nexport default deepClone;\r\n","import { mergeDeep } from '../utils/merge-deep';\r\nimport {\r\n  VexColorScheme,\r\n  VexConfig,\r\n  VexConfigName,\r\n  VexConfigs,\r\n  VexTheme\r\n} from './vex-config.interface';\r\nimport deepClone from '../utils/deep-clone';\r\n\r\nconst baseConfig: VexConfig = {\r\n  id: VexConfigName.apollo,\r\n  name: 'Apollo',\r\n  bodyClass: 'vex-layout-apollo',\r\n  style: {\r\n    themeClassName: VexTheme.DEFAULT,\r\n    colorScheme: VexColorScheme.LIGHT,\r\n    borderRadius: {\r\n      value: 0.5,\r\n      unit: 'rem'\r\n    },\r\n    button: {\r\n      borderRadius: {\r\n        value: 9999,\r\n        unit: 'px'\r\n      }\r\n    }\r\n  },\r\n  direction: 'ltr',\r\n  imgSrc: '//vex-landing.visurel.com/assets/img/layouts/apollo.png',\r\n  layout: 'horizontal',\r\n  boxed: false,\r\n  sidenav: {\r\n    title: '',\r\n    imageUrl: 'assets/img/logo/logo_vimers.png',\r\n    showCollapsePin: true,\r\n    user: {\r\n      visible: true\r\n    },\r\n    search: {\r\n      visible: true\r\n    },\r\n    state: 'expanded'\r\n  },\r\n  toolbar: {\r\n    fixed: true,\r\n    user: {\r\n      visible: true\r\n    }\r\n  },\r\n  navbar: {\r\n    position: 'below-toolbar'\r\n  },\r\n  footer: {\r\n    visible: true,\r\n    fixed: true\r\n  }\r\n};\r\n\r\nexport const vexConfigs: VexConfigs = {\r\n  apollo: baseConfig,\r\n  poseidon: mergeDeep(deepClone(baseConfig), {\r\n    id: VexConfigName.poseidon,\r\n    name: 'Poseidon',\r\n    bodyClass: 'vex-layout-poseidon',\r\n    imgSrc: '//vex-landing.visurel.com/assets/img/layouts/poseidon.png',\r\n    sidenav: {\r\n      user: {\r\n        visible: true\r\n      },\r\n      search: {\r\n        visible: true\r\n      }\r\n    },\r\n    toolbar: {\r\n      user: {\r\n        visible: false\r\n      }\r\n    }\r\n  }),\r\n  hermes: mergeDeep(deepClone(baseConfig), {\r\n    id: VexConfigName.hermes,\r\n    name: 'Hermes',\r\n    bodyClass: 'vex-layout-hermes',\r\n    imgSrc: '//vex-landing.visurel.com/assets/img/layouts/hermes.png',\r\n    layout: 'vertical',\r\n    boxed: true,\r\n    sidenav: {\r\n      user: {\r\n        visible: false\r\n      },\r\n      search: {\r\n        visible: false\r\n      }\r\n    },\r\n    toolbar: {\r\n      fixed: false\r\n    },\r\n    footer: {\r\n      fixed: false\r\n    }\r\n  }),\r\n  ares: mergeDeep(deepClone(baseConfig), {\r\n    id: VexConfigName.ares,\r\n    name: 'Ares',\r\n    bodyClass: 'vex-layout-ares',\r\n    imgSrc: '//vex-landing.visurel.com/assets/img/layouts/ares.png',\r\n    sidenav: {\r\n      user: {\r\n        visible: false\r\n      },\r\n      search: {\r\n        visible: false\r\n      }\r\n    },\r\n    toolbar: {\r\n      fixed: false\r\n    },\r\n    navbar: {\r\n      position: 'in-toolbar'\r\n    },\r\n    footer: {\r\n      fixed: false\r\n    }\r\n  }),\r\n  zeus: mergeDeep(deepClone(baseConfig), {\r\n    id: VexConfigName.zeus,\r\n    name: 'Zeus',\r\n    bodyClass: 'vex-layout-zeus',\r\n    imgSrc: '//vex-landing.visurel.com/assets/img/layouts/zeus.png',\r\n    sidenav: {\r\n      state: 'collapsed'\r\n    }\r\n  }),\r\n  ikaros: mergeDeep(deepClone(baseConfig), {\r\n    id: VexConfigName.ikaros,\r\n    name: 'Ikaros',\r\n    bodyClass: 'vex-layout-ikaros',\r\n    imgSrc: '//vex-landing.visurel.com/assets/img/layouts/ikaros.png',\r\n    layout: 'vertical',\r\n    boxed: true,\r\n    sidenav: {\r\n      user: {\r\n        visible: false\r\n      },\r\n      search: {\r\n        visible: false\r\n      }\r\n    },\r\n    toolbar: {\r\n      fixed: false\r\n    },\r\n    navbar: {\r\n      position: 'in-toolbar'\r\n    },\r\n    footer: {\r\n      fixed: false\r\n    }\r\n  })\r\n};\r\n","import { InjectionToken } from '@angular/core';\r\nimport { VexConfig, VexThemeProvider } from './vex-config.interface';\r\n\r\nexport const VEX_CONFIG = new InjectionToken<VexConfig>('VEX_CONFIG');\r\nexport const VEX_THEMES = new InjectionToken<VexThemeProvider[]>('VEX_THEMES');\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { DeepPartial } from '../interfaces/deep-partial.type';\r\nimport { mergeDeep } from '../utils/merge-deep';\r\nimport { VexLayoutService } from '../services/vex-layout.service';\r\nimport { vexConfigs } from './vex-configs';\r\nimport {\r\n  VexColorScheme,\r\n  VexConfig,\r\n  VexConfigName,\r\n  VexConfigs,\r\n  VexThemeProvider\r\n} from './vex-config.interface';\r\nimport { CSSValue } from '../interfaces/css-value.type';\r\nimport { map } from 'rxjs/operators';\r\nimport { VEX_CONFIG, VEX_THEMES } from './config.token';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VexConfigService {\r\n  readonly configMap: VexConfigs = vexConfigs;\r\n  readonly configs: VexConfig[] = Object.values(this.configMap);\r\n  private _configSubject = new BehaviorSubject<VexConfig>(this.config);\r\n\r\n  constructor(\r\n    @Inject(VEX_CONFIG) private readonly config: VexConfig,\r\n    @Inject(VEX_THEMES) private readonly themes: VexThemeProvider[],\r\n    @Inject(DOCUMENT) private readonly document: Document,\r\n    private readonly layoutService: VexLayoutService\r\n  ) {\r\n    this.config$.subscribe((config) => this._updateConfig(config));\r\n  }\r\n\r\n  get config$(): Observable<VexConfig> {\r\n    return this._configSubject.asObservable();\r\n  }\r\n\r\n  select<R>(selector: (config: VexConfig) => R): Observable<R> {\r\n    return this.config$.pipe(map(selector));\r\n  }\r\n\r\n  setConfig(configName: VexConfigName) {\r\n    const settings = this.configMap[configName];\r\n\r\n    if (!settings) {\r\n      throw new Error(`Config with name '${configName}' does not exist!`);\r\n    }\r\n\r\n    this._configSubject.next(settings);\r\n  }\r\n\r\n  updateConfig(config: DeepPartial<VexConfig>) {\r\n    this._configSubject.next(\r\n      mergeDeep({ ...this._configSubject.getValue() }, config)\r\n    );\r\n  }\r\n\r\n  private _updateConfig(config: VexConfig): void {\r\n    this._setLayoutClass(config.bodyClass);\r\n    this._setStyle(config.style);\r\n    this._setDensity();\r\n    this._setDirection(config.direction);\r\n    this._setSidenavState(config.sidenav.state);\r\n    this._emitResize();\r\n  }\r\n\r\n  private _setStyle(style: VexConfig['style']): void {\r\n    /**\r\n     * Set light/dark mode\r\n     */\r\n    switch (style.colorScheme) {\r\n      case VexColorScheme.LIGHT:\r\n        this.document.body.classList.remove(VexColorScheme.DARK);\r\n        this.document.body.classList.add(VexColorScheme.LIGHT);\r\n        break;\r\n\r\n      case VexColorScheme.DARK:\r\n        this.document.body.classList.remove(VexColorScheme.LIGHT);\r\n        this.document.body.classList.add(VexColorScheme.DARK);\r\n        break;\r\n    }\r\n\r\n    /**\r\n     * Set theme class\r\n     */\r\n    this.document.body.classList.remove(...this.themes.map((t) => t.className));\r\n    this.document.body.classList.add(style.themeClassName);\r\n\r\n    /**\r\n     * Border Radius\r\n     */\r\n    this.document.body.style.setProperty(\r\n      '--vex-border-radius',\r\n      `${style.borderRadius.value}${style.borderRadius.unit}`\r\n    );\r\n\r\n    const buttonBorderRadius: CSSValue =\r\n      style.button.borderRadius ?? style.borderRadius;\r\n    this.document.body.style.setProperty(\r\n      '--vex-button-border-radius',\r\n      `${buttonBorderRadius.value}${buttonBorderRadius.unit}`\r\n    );\r\n  }\r\n\r\n  private _setDensity(): void {\r\n    if (!this.document.body.classList.contains('vex-mat-dense-default')) {\r\n      this.document.body.classList.add('vex-mat-dense-default');\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Emit event so charts and other external libraries know they have to resize on layout switch\r\n   * @private\r\n   */\r\n  private _emitResize(): void {\r\n    if (window) {\r\n      window.dispatchEvent(new Event('resize'));\r\n      setTimeout(() => window.dispatchEvent(new Event('resize')), 200);\r\n    }\r\n  }\r\n\r\n  private _setDirection(direction: 'ltr' | 'rtl') {\r\n    this.document.body.dir = direction;\r\n  }\r\n\r\n  private _setSidenavState(sidenavState: 'expanded' | 'collapsed'): void {\r\n    sidenavState === 'expanded'\r\n      ? this.layoutService.expandSidenav()\r\n      : this.layoutService.collapseSidenav();\r\n  }\r\n\r\n  private _setLayoutClass(bodyClass: string): void {\r\n    this.configs.forEach((c) => {\r\n      if (this.document.body.classList.contains(c.bodyClass)) {\r\n        this.document.body.classList.remove(c.bodyClass);\r\n      }\r\n    });\r\n\r\n    this.document.body.classList.add(bodyClass);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { VexConfigService } from '../config/vex-config.service';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport {\r\n  VexColorScheme,\r\n  VexConfigName,\r\n  VexTheme\r\n} from '../config/vex-config.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VexDemoService {\r\n  constructor(\r\n    private readonly router: Router,\r\n    private readonly configService: VexConfigService\r\n  ) {\r\n    /**\r\n     * Config Related Subscriptions\r\n     * You can remove this if you don't need the functionality of being able to enable specific configs with queryParams\r\n     * Example: example.com/?layout=apollo&style=default\r\n     */\r\n    this.router.events\r\n      .pipe(\r\n        filter(\r\n          (event): event is NavigationEnd => event instanceof NavigationEnd\r\n        )\r\n      )\r\n      .subscribe((event) => {\r\n        const route = this.router.routerState.root.snapshot;\r\n        if (route.queryParamMap.has('layout')) {\r\n          this.configService.setConfig(\r\n            route.queryParamMap.get('layout') as VexConfigName\r\n          );\r\n        }\r\n\r\n        if (route.queryParamMap.has('style')) {\r\n          this.configService.updateConfig({\r\n            style: {\r\n              colorScheme: route.queryParamMap.get('style') as VexColorScheme\r\n            }\r\n          });\r\n        }\r\n\r\n        // TODO: Adjust primaryColor queryParam and see where it was used?\r\n        const theme: VexTheme | null = route.queryParamMap.get(\r\n          'theme'\r\n        ) as VexTheme | null;\r\n        if (theme) {\r\n          this.configService.updateConfig({\r\n            style: {\r\n              themeClassName: theme\r\n            }\r\n          });\r\n        }\r\n\r\n        if (route.queryParamMap.has('rtl')) {\r\n          this.configService.updateConfig({\r\n            direction: coerceBooleanProperty(route.queryParamMap.get('rtl'))\r\n              ? 'rtl'\r\n              : 'ltr'\r\n          });\r\n        }\r\n      });\r\n  }\r\n}\r\n","import { Inject, Injectable, RendererFactory2 } from '@angular/core';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VexPlatformService {\r\n  constructor(\r\n    @Inject(DOCUMENT) private document: Document,\r\n    private readonly rendererFactory2: RendererFactory2,\r\n    private readonly platform: Platform\r\n  ) {\r\n    const renderer = this.rendererFactory2.createRenderer(null, null);\r\n\r\n    if (this.platform.BLINK) {\r\n      renderer.addClass(this.document.body, 'is-blink');\r\n    }\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const VEX_HIGHLIGHT_OPTIONS = new InjectionToken<VexHighlightOptions>(\r\n  'HIGHLIGHT_OPTIONS'\r\n);\r\n\r\nexport interface VexHighlightOptions {\r\n  languages?: () => VexHighlightLanguage[];\r\n  config?: VexHighlightConfig;\r\n}\r\n\r\nexport interface VexHighlightLanguage {\r\n  name: string;\r\n  func: () => any;\r\n}\r\n\r\nexport interface VexHighlightConfig {\r\n  /** tabReplace: a string used to replace TAB characters in indentation. */\r\n  tabReplace?: string;\r\n  /** useBR: a flag to generate <br> tags instead of new-line characters in the output, useful when code is marked up using a non-<pre> container. */\r\n  useBR?: boolean;\r\n  /** classPrefix: a string prefix added before class names in the generated markup, used for backwards compatibility with stylesheets. */\r\n  classPrefix?: string;\r\n  /** languages: an array of language names and aliases restricting auto detection to only these languages. */\r\n  languages?: string[];\r\n}\r\n\r\nexport interface VexHighlightResult {\r\n  language?: string;\r\n  r?: number;\r\n  second_best?: any;\r\n  top?: any;\r\n  value?: string;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport {\r\n  VEX_HIGHLIGHT_OPTIONS,\r\n  VexHighlightConfig,\r\n  VexHighlightLanguage,\r\n  VexHighlightOptions,\r\n  VexHighlightResult\r\n} from './vex-highlight.model';\r\nimport hljs from 'highlight.js/lib/core';\r\n\r\n@Injectable()\r\nexport class VexHighlightService {\r\n  constructor(@Inject(VEX_HIGHLIGHT_OPTIONS) options: VexHighlightOptions) {\r\n    if (options) {\r\n      // Register HighlightJS languages\r\n      options\r\n        .languages?.()\r\n        .map((language: VexHighlightLanguage) =>\r\n          this.registerLanguage(language.name, language.func)\r\n        );\r\n      if (options.config) {\r\n        // Set global config if present\r\n        this.configure(options.config);\r\n      }\r\n    }\r\n    // Throw an error if no languages were registered.\r\n    if (this.listLanguages().length < 1) {\r\n      throw new Error('[HighlightJS]: No languages were registered!');\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Core highlighting function.\r\n   * @param name Accepts a language name, or an alias\r\n   * @param value A string with the code to highlight.\r\n   * @param ignoreIllegals When present and evaluates to a true value, forces highlighting to finish\r\n   * even in case of detecting illegal syntax for the language instead of throwing an exception.\r\n   * When present, the function will restart parsing from this state instead of initializing a new one\r\n   */\r\n  highlight(\r\n    name: string,\r\n    value: string,\r\n    ignoreIllegals: boolean\r\n  ): VexHighlightResult {\r\n    return hljs.highlight(name, value, ignoreIllegals);\r\n  }\r\n\r\n  /**\r\n   * Highlighting with language detection.\r\n   * @param value Accepts a string with the code to highlight\r\n   * @param languageSubset An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  highlightAuto(value: string, languageSubset: string[]): VexHighlightResult {\r\n    return hljs.highlightAuto(value, languageSubset);\r\n  }\r\n\r\n  /**\r\n   * Applies highlighting to a DOM node containing code.\r\n   * The function uses language detection by default but you can specify the language in the class attribute of the DOM node.\r\n   * See the class reference for all available language names and aliases.\r\n   * @param block The element to apply highlight on.\r\n   */\r\n  highlightBlock(block: HTMLElement) {\r\n    hljs.highlightBlock(block);\r\n  }\r\n\r\n  /**\r\n   * Configures global options:\r\n   */\r\n  configure(config: VexHighlightConfig) {\r\n    hljs.configure(config);\r\n  }\r\n\r\n  /**\r\n   * Applies highlighting to all <pre><code>..</code></pre> blocks on a page.\r\n   */\r\n  initHighlighting() {\r\n    hljs.initHighlighting();\r\n  }\r\n\r\n  /**\r\n   * Adds new language to the library under the specified name. Used mostly internally.\r\n   * @param name A string with the name of the language being registered\r\n   * @param language A function that returns an object which represents the language definition.\r\n   * The function is passed the hljs object to be able to use common regular expressions defined within it.\r\n   */\r\n  registerLanguage(name: string, language: any) {\r\n    hljs.registerLanguage(name, language);\r\n  }\r\n\r\n  /**\r\n   * @return The languages names list.\r\n   */\r\n  listLanguages(): string[] {\r\n    return hljs.listLanguages();\r\n  }\r\n\r\n  /**\r\n   * Looks up a language by name or alias.\r\n   * @param name Language name\r\n   * @return The language object if found, undefined otherwise.\r\n   */\r\n  getLanguage(name: string): any {\r\n    return hljs.getLanguage(name);\r\n  }\r\n}\r\n","import {\r\n  Directive,\r\n  EventEmitter,\r\n  Input,\r\n  NgZone,\r\n  OnChanges,\r\n  Output,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { VexHighlightResult } from './vex-highlight.model';\r\nimport { VexHighlightService } from './vex-highlight.service';\r\n\r\n@Directive({\r\n  selector: '[vexHighlight]',\r\n  host: {\r\n    '[class.hljs]': 'true',\r\n    '[innerHTML]': 'highlightedCode'\r\n  },\r\n  standalone: true\r\n})\r\nexport class VexHighlightDirective implements OnChanges {\r\n  /** Highlighted Code */\r\n  highlightedCode?: string;\r\n\r\n  /** An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  @Input() languages: string[] = [];\r\n\r\n  /** Highlight code input */\r\n  @Input('vexHighlight') code!: string;\r\n\r\n  /** Stream that emits when code string is highlighted */\r\n  @Output() highlighted = new EventEmitter<VexHighlightResult>();\r\n\r\n  constructor(\r\n    private _highlightService: VexHighlightService,\r\n    private _zone: NgZone\r\n  ) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (\r\n      changes['code'] &&\r\n      changes['code'].currentValue !== changes['code'].previousValue\r\n    ) {\r\n      this.highlightElement(this.code, this.languages);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Highlighting with language detection and fix markup.\r\n   * @param code Accepts a string with the code to highlight\r\n   * @param languages An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  highlightElement(code: string, languages: string[]) {\r\n    this._zone.runOutsideAngular(() => {\r\n      const res = this._highlightService.highlightAuto(code, languages);\r\n      this.highlightedCode = res.value;\r\n      this.highlighted.emit(res);\r\n    });\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { VexHighlightDirective } from './vex-highlight.directive';\r\nimport {\r\n  VEX_HIGHLIGHT_OPTIONS,\r\n  VexHighlightOptions\r\n} from './vex-highlight.model';\r\n/**\r\n * Import every language you wish to highlight here\r\n * NOTE: The name of each language must match the file name its imported from\r\n */\r\nimport xml from 'highlight.js/lib/languages/xml';\r\nimport scss from 'highlight.js/lib/languages/scss';\r\nimport typescript from 'highlight.js/lib/languages/typescript';\r\nimport { VexHighlightService } from './vex-highlight.service';\r\n\r\n/**\r\n * Import every language you wish to highlight here\r\n * NOTE: The name of each language must match the file name its imported from\r\n */\r\nexport function hljsLanguages() {\r\n  return [\r\n    { name: 'typescript', func: typescript },\r\n    { name: 'scss', func: scss },\r\n    { name: 'xml', func: xml }\r\n  ];\r\n}\r\n\r\n@NgModule({\r\n  providers: [\r\n    {\r\n      provide: VEX_HIGHLIGHT_OPTIONS,\r\n      useValue: {\r\n        languages: hljsLanguages\r\n      } as VexHighlightOptions\r\n    },\r\n    VexHighlightService\r\n  ],\r\n  imports: [VexHighlightDirective],\r\n  exports: [VexHighlightDirective]\r\n})\r\nexport class VexHighlightModule {}\r\n","import {\r\n  ENVIRONMENT_INITIALIZER,\r\n  EnvironmentProviders,\r\n  importProvidersFrom,\r\n  inject,\r\n  Provider\r\n} from '@angular/core';\r\nimport {\r\n  MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n  MatFormFieldDefaultOptions\r\n} from '@angular/material/form-field';\r\nimport { MATERIAL_SANITY_CHECKS } from '@angular/material/core';\r\nimport { VexSplashScreenService } from './services/vex-splash-screen.service';\r\nimport { VexLayoutService } from './services/vex-layout.service';\r\nimport { VexDemoService } from './services/vex-demo.service';\r\nimport { VexPlatformService } from './services/vex-platform.service';\r\nimport { VexConfig, VexThemeProvider } from './config/vex-config.interface';\r\nimport { VEX_CONFIG, VEX_THEMES } from './config/config.token';\r\nimport { VexHighlightModule } from './components/vex-highlight/vex-highlight.module';\r\n\r\nexport function provideVex(options: {\r\n  config: VexConfig;\r\n  availableThemes: VexThemeProvider[];\r\n}): (Provider | EnvironmentProviders)[] {\r\n  return [\r\n    importProvidersFrom(VexHighlightModule),\r\n    {\r\n      provide: VEX_CONFIG,\r\n      useValue: options.config\r\n    },\r\n    {\r\n      provide: VEX_THEMES,\r\n      useValue: options.availableThemes\r\n    },\r\n    {\r\n      provide: MATERIAL_SANITY_CHECKS,\r\n      useValue: {\r\n        doctype: true,\r\n        theme: false,\r\n        version: true\r\n      }\r\n    },\r\n    {\r\n      provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n      useValue: {\r\n        appearance: 'outline'\r\n      } satisfies MatFormFieldDefaultOptions\r\n    },\r\n    {\r\n      provide: ENVIRONMENT_INITIALIZER,\r\n      useValue: () => inject(VexSplashScreenService),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: ENVIRONMENT_INITIALIZER,\r\n      useValue: () => inject(VexLayoutService),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: ENVIRONMENT_INITIALIZER,\r\n      useValue: () => inject(VexPlatformService),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: ENVIRONMENT_INITIALIZER,\r\n      useValue: () => inject(VexDemoService),\r\n      multi: true\r\n    }\r\n  ];\r\n}\r\n","export interface ColorPalette {\r\n  50: string;\r\n  100: string;\r\n  200: string;\r\n  300: string;\r\n  400: string;\r\n  500: string;\r\n  600: string;\r\n  700: string;\r\n  800: string;\r\n  900: string;\r\n}\r\n\r\nexport interface ColorVariable {\r\n  default: ColorPalette;\r\n  contrast: ColorPalette;\r\n}\r\n\r\nexport const colorVariables: Record<string, ColorVariable> = {\r\n  indigo: {\r\n    default: {\r\n      '50': '238 242 255',\r\n      '100': '224 231 255',\r\n      '200': '199 210 254',\r\n      '300': '165 180 252',\r\n      '400': '129 140 248',\r\n      '500': '99 102 241',\r\n      '600': '79 70 229',\r\n      '700': '67 56 202',\r\n      '800': '55 48 163',\r\n      '900': '49 46 129'\r\n    },\r\n    contrast: {\r\n      '50': '0 0 0',\r\n      '100': '0 0 0',\r\n      '200': '0 0 0',\r\n      '300': '0 0 0',\r\n      '400': '0 0 0',\r\n      '500': '255 255 255',\r\n      '600': '255 255 255',\r\n      '700': '255 255 255',\r\n      '800': '255 255 255',\r\n      '900': '255 255 255'\r\n    }\r\n  },\r\n  blue: {\r\n    default: {\r\n      '50': '239 246 255',\r\n      '100': '219 234 254',\r\n      '200': '191 219 254',\r\n      '300': '147 197 253',\r\n      '400': '96 165 250',\r\n      '500': '59 130 246',\r\n      '600': '37 99 235',\r\n      '700': '29 78 216',\r\n      '800': '30 64 175',\r\n      '900': '30 58 138'\r\n    },\r\n    contrast: {\r\n      '50': '0 0 0',\r\n      '100': '0 0 0',\r\n      '200': '0 0 0',\r\n      '300': '0 0 0',\r\n      '400': '0 0 0',\r\n      '500': '255 255 255',\r\n      '600': '255 255 255',\r\n      '700': '255 255 255',\r\n      '800': '255 255 255',\r\n      '900': '255 255 255'\r\n    }\r\n  },\r\n  gray: {\r\n    default: {\r\n      '50': '249 250 251',\r\n      '100': '243 244 246',\r\n      '200': '229 231 235',\r\n      '300': '209 213 219',\r\n      '400': '156 163 175',\r\n      '500': '107 114 128',\r\n      '600': '75 85 99',\r\n      '700': '55 65 81',\r\n      '800': '31 41 55',\r\n      '900': '17 24 39'\r\n    },\r\n    contrast: {\r\n      '50': '0 0 0',\r\n      '100': '0 0 0',\r\n      '200': '0 0 0',\r\n      '300': '0 0 0',\r\n      '400': '0 0 0',\r\n      '500': '255 255 255',\r\n      '600': '255 255 255',\r\n      '700': '255 255 255',\r\n      '800': '255 255 255',\r\n      '900': '255 255 255'\r\n    }\r\n  },\r\n  red: {\r\n    default: {\r\n      '50': '254 242 242',\r\n      '100': '254 226 226',\r\n      '200': '254 202 202',\r\n      '300': '252 165 165',\r\n      '400': '248 113 113',\r\n      '500': '239 68 68',\r\n      '600': '220 38 38',\r\n      '700': '185 28 28',\r\n      '800': '153 27 27',\r\n      '900': '127 29 29'\r\n    },\r\n    contrast: {\r\n      '50': '0 0 0',\r\n      '100': '0 0 0',\r\n      '200': '0 0 0',\r\n      '300': '0 0 0',\r\n      '400': '0 0 0',\r\n      '500': '255 255 255',\r\n      '600': '255 255 255',\r\n      '700': '255 255 255',\r\n      '800': '255 255 255',\r\n      '900': '255 255 255'\r\n    }\r\n  },\r\n  orange: {\r\n    default: {\r\n      '50': '255 247 237',\r\n      '100': '255 237 213',\r\n      '200': '254 215 170',\r\n      '300': '253 186 116',\r\n      '400': '251 146 60',\r\n      '500': '249 115 22',\r\n      '600': '234 88 12',\r\n      '700': '194 65 12',\r\n      '800': '154 52 18',\r\n      '900': '124 45 18'\r\n    },\r\n    contrast: {\r\n      '50': '0 0 0',\r\n      '100': '0 0 0',\r\n      '200': '0 0 0',\r\n      '300': '0 0 0',\r\n      '400': '0 0 0',\r\n      '500': '255 255 255',\r\n      '600': '255 255 255',\r\n      '700': '255 255 255',\r\n      '800': '255 255 255',\r\n      '900': '255 255 255'\r\n    }\r\n  }\r\n  /*\r\n  amber: {\r\n    default: '255 193 7',\r\n    contrast: '0 0 0'\r\n  },\r\n  green: {\r\n    default: '76 175 80',\r\n    contrast: '255 255 255'\r\n  },\r\n  teal: {\r\n    default: '0 150 136',\r\n    contrast: '255 255 255'\r\n  },\r\n  cyan: {\r\n    default: '0 188 212',\r\n    contrast: '255 255 255'\r\n  },\r\n  purple: {\r\n    default: '156 39 176',\r\n    contrast: '255 255 255'\r\n  },\r\n  pink: {\r\n    default: '233 30 99',\r\n    contrast: '255 255 255'\r\n  }\r\n   */\r\n};\r\n","import { CSSValue } from '../interfaces/css-value.type';\r\n\r\nexport const defaultRoundedButtonBorderRadius: CSSValue = {\r\n  value: 9999,\r\n  unit: 'px'\r\n};\r\n","import {\r\n  animate,\r\n  state,\r\n  style,\r\n  transition,\r\n  trigger\r\n} from '@angular/animations';\r\n\r\nexport const dropdownAnimation = trigger('dropdown', [\r\n  state(\r\n    'false',\r\n    style({\r\n      height: 0,\r\n      opacity: 0\r\n    })\r\n  ),\r\n  state(\r\n    'true',\r\n    style({\r\n      height: '*',\r\n      opacity: 1\r\n    })\r\n  ),\r\n  transition('false <=> true', animate('300ms cubic-bezier(.35, 0, .25, 1)'))\r\n]);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport function fadeInRightAnimation(duration: number) {\r\n  return trigger('fadeInRight', [\r\n    transition(':enter', [\r\n      style({\r\n        transform: 'translateX(-20px)',\r\n        opacity: 0\r\n      }),\r\n      animate(\r\n        `${duration}ms cubic-bezier(0.35, 0, 0.25, 1)`,\r\n        style({\r\n          transform: 'translateX(0)',\r\n          opacity: 1\r\n        })\r\n      )\r\n    ])\r\n  ]);\r\n}\r\n\r\nexport const fadeInRight400ms = fadeInRightAnimation(400);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport function fadeInUpAnimation(duration: number) {\r\n  return trigger('fadeInUp', [\r\n    transition(':enter', [\r\n      style({\r\n        transform: 'translateY(20px)',\r\n        opacity: 0\r\n      }),\r\n      animate(\r\n        `${duration}ms cubic-bezier(0.35, 0, 0.25, 1)`,\r\n        style({\r\n          transform: 'translateY(0)',\r\n          opacity: 1\r\n        })\r\n      )\r\n    ])\r\n  ]);\r\n}\r\n\r\nexport const fadeInUp400ms = fadeInUpAnimation(400);\r\n","import {\r\n  animate,\r\n  group,\r\n  style,\r\n  transition,\r\n  trigger\r\n} from '@angular/animations';\r\n\r\nexport const popoverAnimation = trigger('transformPopover', [\r\n  transition(':enter', [\r\n    style({\r\n      opacity: 0,\r\n      transform: 'scale(0.6)'\r\n    }),\r\n    group([\r\n      animate(\r\n        '100ms linear',\r\n        style({\r\n          opacity: 1\r\n        })\r\n      ),\r\n      animate(\r\n        '150ms cubic-bezier(0, 0, 0.2, 1)',\r\n        style({\r\n          transform: 'scale(1)'\r\n        })\r\n      )\r\n    ])\r\n  ]),\r\n  transition(':leave', [\r\n    style({\r\n      opacity: 1\r\n    }),\r\n    animate(\r\n      '100ms linear',\r\n      style({\r\n        opacity: 0\r\n      })\r\n    )\r\n  ])\r\n]);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport function scaleFadeInAnimation(duration: number) {\r\n  return trigger('scaleFadeIn', [\r\n    transition(':enter', [\r\n      style({\r\n        transform: 'scale(0.8)',\r\n        opacity: 0\r\n      }),\r\n      animate(\r\n        `${duration}ms cubic-bezier(0.35, 0, 0.25, 1)`,\r\n        style({\r\n          transform: 'scale(1)',\r\n          opacity: 1\r\n        })\r\n      )\r\n    ])\r\n  ]);\r\n}\r\n\r\nexport const scaleFadeIn400ms = scaleFadeInAnimation(400);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const scaleInOutAnimation = trigger('scaleInOut', [\r\n  transition(':enter', [\r\n    style({\r\n      transform: 'scale(0)',\r\n      opacity: 0\r\n    }),\r\n    animate(\r\n      '0.2s cubic-bezier(0.35, 0, 0.25, 1)',\r\n      style({\r\n        transform: 'scale(1)',\r\n        opacity: 1\r\n      })\r\n    )\r\n  ]),\r\n  transition(':leave', [\r\n    style({\r\n      transform: 'scale(1)',\r\n      opacity: 1\r\n    }),\r\n    animate(\r\n      '0.2s cubic-bezier(0.35, 0, 0.25, 1)',\r\n      style({\r\n        transform: 'scale(0)',\r\n        opacity: 0\r\n      })\r\n    )\r\n  ])\r\n]);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport function scaleInAnimation(duration: number) {\r\n  return trigger('scaleIn', [\r\n    transition(':enter', [\r\n      style({\r\n        transform: 'scale(0)'\r\n      }),\r\n      animate(\r\n        `${duration}ms cubic-bezier(0.35, 0, 0.25, 1)`,\r\n        style({\r\n          transform: 'scale(1)'\r\n        })\r\n      )\r\n    ])\r\n  ]);\r\n}\r\n\r\nexport const scaleIn400ms = scaleInAnimation(400);\r\n","import {\r\n  animateChild,\r\n  query,\r\n  stagger,\r\n  transition,\r\n  trigger\r\n} from '@angular/animations';\r\n\r\nexport function staggerAnimation(timing: number) {\r\n  return trigger('stagger', [\r\n    transition('* => *', [\r\n      // each time the binding value changes\r\n      query(':enter', stagger(timing, animateChild()), { optional: true })\r\n    ])\r\n  ]);\r\n}\r\n\r\nexport const stagger80ms = staggerAnimation(80);\r\nexport const stagger60ms = staggerAnimation(60);\r\nexport const stagger40ms = staggerAnimation(40);\r\nexport const stagger20ms = staggerAnimation(20);\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Pipe({\r\n  name: 'vexDateFormatRelative',\r\n  standalone: true\r\n})\r\nexport class VexDateFormatRelativePipe implements PipeTransform {\r\n  transform(value: DateTime | null | undefined | string, ...args: any[]): any {\r\n    if (!value) {\r\n      return;\r\n    }\r\n\r\n    if (!(value instanceof DateTime)) {\r\n      value = DateTime.fromISO(value);\r\n    }\r\n\r\n    return value.toRelative();\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Pipe({\r\n  name: 'vexDateFormatTokens',\r\n  standalone: true\r\n})\r\nexport class VexDateFormatTokensPipe implements PipeTransform {\r\n  transform(value: DateTime | null, ...args: string[]): any {\r\n    if (!args[0]) {\r\n      throw new Error(\r\n        '[DateTokensPipe]: No args defined, please define your format.'\r\n      );\r\n    }\r\n\r\n    return value ? value.toFormat(args[0]) : '';\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'vexStripHtml',\r\n  standalone: true\r\n})\r\nexport class VexStripHtmlPipe implements PipeTransform {\r\n  transform(html: string | undefined): string {\r\n    if (!html) {\r\n      return '';\r\n    }\r\n\r\n    return html?.replace(/<[^>]*>?/gm, '');\r\n  }\r\n}\r\n","import { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { VexRouteData } from '../interfaces/vex-route.interface';\r\n\r\nexport function checkRouterChildsData(\r\n  route: ActivatedRouteSnapshot & {\r\n    data?: VexRouteData;\r\n  },\r\n  compareWith: (data: VexRouteData) => boolean\r\n): boolean {\r\n  if (compareWith(route.data)) {\r\n    return true;\r\n  }\r\n\r\n  if (!route.firstChild) {\r\n    return false;\r\n  }\r\n\r\n  return checkRouterChildsData(route.firstChild, compareWith);\r\n}\r\n\r\n/**\r\n * Used to get params from children in their parent\r\n */\r\nexport function getAllParams(\r\n  route: ActivatedRouteSnapshot & {\r\n    data?: VexRouteData;\r\n  },\r\n  result = new Map<string, string>()\r\n): Map<string, string> {\r\n  if (route.params) {\r\n    for (const key of Object.keys(route.params)) {\r\n      result.set(key, route.params[key]);\r\n    }\r\n  }\r\n\r\n  if (!route.firstChild) {\r\n    return result;\r\n  }\r\n\r\n  return getAllParams(route.firstChild, result);\r\n}\r\n","import { DateTime } from 'luxon';\r\n\r\nexport function createDateArray(length: number) {\r\n  const dates: number[] = [];\r\n\r\n  for (let i = 0; i < length; i++) {\r\n    dates.push(+DateTime.local().minus({ day: i }).toJSDate());\r\n  }\r\n\r\n  return dates.reverse();\r\n}\r\n","import { ApexOptions } from '../components/vex-chart/vex-chart.component';\r\nimport { mergeDeep } from './merge-deep';\r\n\r\nexport const defaultChartOptions = (\r\n  options: Partial<ApexOptions> = {}\r\n): ApexOptions =>\r\n  mergeDeep(\r\n    {\r\n      grid: {\r\n        show: false,\r\n        padding: {\r\n          left: 0,\r\n          right: 0\r\n        }\r\n      },\r\n      chart: {\r\n        parentHeightOffset: 0,\r\n        type: 'area',\r\n        toolbar: {\r\n          show: false\r\n        },\r\n        sparkline: {\r\n          enabled: true\r\n        }\r\n      },\r\n      labels: [],\r\n      dataLabels: {\r\n        enabled: false\r\n      },\r\n      stroke: {\r\n        curve: 'smooth',\r\n        width: 2.5\r\n      },\r\n      fill: {\r\n        gradient: {}\r\n      },\r\n      xaxis: {\r\n        type: 'numeric',\r\n        labels: {\r\n          show: false,\r\n          style: {\r\n            cssClass: 'text-secondary fill-current caption font-medium',\r\n            fontFamily: 'inherit'\r\n          }\r\n        },\r\n        axisBorder: {\r\n          show: true,\r\n          color: '#EEEEEE'\r\n        },\r\n        axisTicks: {\r\n          show: false\r\n        },\r\n        floating: false,\r\n        tooltip: {\r\n          enabled: false\r\n        }\r\n      },\r\n      yaxis: {\r\n        labels: {\r\n          show: false,\r\n          style: {\r\n            cssClass: 'text-secondary fill-current caption font-medium',\r\n            fontFamily: 'inherit'\r\n          }\r\n        },\r\n        axisBorder: {\r\n          show: false\r\n        },\r\n        axisTicks: {\r\n          show: false\r\n        }\r\n      },\r\n      legend: {\r\n        position: 'top',\r\n        fontFamily: 'inherit',\r\n        horizontalAlign: 'left',\r\n        offsetX: -18,\r\n        itemMargin: {\r\n          horizontal: 0,\r\n          vertical: 12\r\n        },\r\n        markers: {\r\n          radius: 4,\r\n          width: 12,\r\n          height: 12\r\n        },\r\n        labels: {\r\n          colors: ['var(--vex-text-secondary-color)']\r\n        }\r\n      },\r\n      tooltip: {\r\n        x: { show: false }\r\n      }\r\n    },\r\n    options\r\n  );\r\n","export function isNil<T>(value: T): boolean {\r\n  return value == null;\r\n}\r\n","import { KeyValue } from '@angular/common';\r\n\r\nexport function trackByRoute<T extends { route: string | string[] }>(\r\n  index: number,\r\n  item: T\r\n) {\r\n  return item.route;\r\n}\r\n\r\nexport function trackById<T extends { id: string | number }>(\r\n  index: number,\r\n  item: T\r\n) {\r\n  return item.id;\r\n}\r\n\r\nexport function trackByKey(index: number, item: KeyValue<any, any>) {\r\n  return item.key;\r\n}\r\n\r\nexport function trackByValue(index: number, value: string) {\r\n  return value;\r\n}\r\n\r\nexport function trackByLabel<T extends { label: string }>(\r\n  index: number,\r\n  value: T\r\n) {\r\n  return value.label;\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'vex-breadcrumb',\r\n  template: ` <ng-content></ng-content> `,\r\n  styles: [],\r\n  host: {\r\n    class:\r\n      'vex-breadcrumb body-2 text-hint leading-none hover:text-primary-600 no-underline transition duration-400 ease-out-swift'\r\n  },\r\n  standalone: true\r\n})\r\nexport class VexBreadcrumbComponent {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { trackByValue } from '../../utils/track-by';\r\nimport { VexBreadcrumbComponent } from './vex-breadcrumb/vex-breadcrumb.component';\r\nimport { RouterLink } from '@angular/router';\r\nimport { NgFor } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n  selector: 'vex-breadcrumbs',\r\n  template: `\r\n    <div class=\"flex items-center gap-2\">\r\n      <vex-breadcrumb>\r\n        <a [routerLink]=\"['/']\">\r\n          <mat-icon svgIcon=\"mat:home\" class=\"icon-sm\"></mat-icon>\r\n        </a>\r\n      </vex-breadcrumb>\r\n      <ng-container *ngFor=\"let crumb of crumbs; trackBy: trackByValue\">\r\n        <div class=\"w-1 h-1 bg-gray-600 rounded-full\"></div>\r\n        <vex-breadcrumb>\r\n          <a [routerLink]=\"[]\">{{ crumb }}</a>\r\n        </vex-breadcrumb>\r\n      </ng-container>\r\n    </div>\r\n  `,\r\n  standalone: true,\r\n  imports: [VexBreadcrumbComponent, RouterLink, NgFor, MatIconModule]\r\n})\r\nexport class VexBreadcrumbsComponent {\r\n  @Input() crumbs: string[] = [];\r\n\r\n  trackByValue = trackByValue;\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  NgZone,\r\n  OnChanges,\r\n  OnInit,\r\n  SimpleChanges,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport { asapScheduler } from 'rxjs';\r\n// @ts-ignore\r\nimport ApexCharts from 'apexcharts';\r\n\r\nexport interface ApexOptions {\r\n  annotations?: ApexAnnotations;\r\n  chart?: ApexChart;\r\n  colors?: any[];\r\n  dataLabels?: ApexDataLabels;\r\n  fill?: ApexFill;\r\n  grid?: ApexGrid;\r\n  labels?: string[] | number[];\r\n  legend?: ApexLegend;\r\n  markers?: ApexMarkers;\r\n  noData?: ApexNoData;\r\n  plotOptions?: ApexPlotOptions;\r\n  responsive?: ApexResponsive[];\r\n  series?: ApexAxisChartSeries | ApexNonAxisChartSeries;\r\n  states?: ApexStates;\r\n  stroke?: ApexStroke;\r\n  subtitle?: ApexTitleSubtitle;\r\n  theme?: ApexTheme;\r\n  title?: ApexTitleSubtitle;\r\n  tooltip?: ApexTooltip;\r\n  xaxis?: ApexXAxis;\r\n  yaxis?: ApexYAxis | ApexYAxis[];\r\n}\r\n\r\n@Component({\r\n  selector: 'vex-chart',\r\n  template: ` <div #chart></div> `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  standalone: true\r\n})\r\nexport class VexChartComponent implements OnInit, OnChanges {\r\n  @Input() options: ApexOptions = {};\r\n  @Input() series: ApexAxisChartSeries | ApexNonAxisChartSeries = [];\r\n  @Input() autoUpdateSeries = true;\r\n  public chart?: ApexCharts;\r\n  @ViewChild('chart', { static: true }) private chartElement?: ElementRef;\r\n\r\n  constructor(private ngZone: NgZone) {}\r\n\r\n  ngOnInit() {\r\n    asapScheduler.schedule(() => {\r\n      this._createElement();\r\n    });\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    asapScheduler.schedule(() => {\r\n      if (\r\n        this.autoUpdateSeries &&\r\n        Object.keys(changes).filter((c) => c !== 'series').length === 0\r\n      ) {\r\n        this.chart?.updateSeries(this.series, true);\r\n        return;\r\n      }\r\n\r\n      this._createElement();\r\n    });\r\n  }\r\n\r\n  public render(): void {\r\n    this.chart?.render();\r\n  }\r\n\r\n  private _createElement() {\r\n    if (this.series) {\r\n      this.options.series = this.series;\r\n    }\r\n\r\n    if (this.chart) {\r\n      this.chart.destroy();\r\n    }\r\n\r\n    this.ngZone.runOutsideAngular(() => {\r\n      if (!this.chartElement) {\r\n        return;\r\n      }\r\n\r\n      this.chart = new ApexCharts(\r\n        this.chartElement.nativeElement,\r\n        this.options\r\n      );\r\n\r\n      this.render();\r\n    });\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  HostBinding,\r\n  Input,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'vex-page-layout',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'vex-page-layout'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  styleUrls: ['./vex-page-layout.component.scss'],\r\n  standalone: true\r\n})\r\nexport class VexPageLayoutComponent {\r\n  @Input() mode: 'card' | 'simple' = 'simple';\r\n\r\n  constructor() {}\r\n\r\n  @HostBinding('class.vex-page-layout-card')\r\n  get isCard() {\r\n    return this.mode === 'card';\r\n  }\r\n\r\n  @HostBinding('class.vex-page-layout-simple')\r\n  get isSimple() {\r\n    return this.mode === 'simple';\r\n  }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[vexPageLayoutContent],vex-page-layout-content',\r\n  host: {\r\n    class: 'vex-page-layout-content'\r\n  },\r\n  standalone: true\r\n})\r\nexport class VexPageLayoutContentDirective {\r\n  constructor() {}\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[vexPageLayoutHeader],vex-page-layout-header',\r\n  host: {\r\n    class: 'vex-page-layout-header'\r\n  },\r\n  standalone: true\r\n})\r\nexport class VexPageLayoutHeaderDirective {\r\n  constructor() {}\r\n}\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { Subject } from 'rxjs';\r\nimport { TemplateRef, Type } from '@angular/core';\r\n\r\nexport interface VexPopoverCloseEvent<T = any> {\r\n  type: 'backdropClick' | 'close';\r\n  data: T | undefined;\r\n}\r\n\r\nexport type VexPopoverContent = TemplateRef<any> | Type<any> | string | any;\r\n\r\nexport class VexPopoverRef<T = any> {\r\n  private afterClosed = new Subject<VexPopoverCloseEvent<T>>();\r\n  afterClosed$ = this.afterClosed.asObservable();\r\n\r\n  constructor(\r\n    public overlay: OverlayRef,\r\n    public content: VexPopoverContent,\r\n    public data: T | undefined\r\n  ) {\r\n    overlay.backdropClick().subscribe(() => {\r\n      this._close('backdropClick', undefined);\r\n    });\r\n  }\r\n\r\n  close(data?: T) {\r\n    this._close('close', data);\r\n  }\r\n\r\n  private _close(type: VexPopoverCloseEvent['type'], data?: T) {\r\n    this.overlay.dispose();\r\n    this.afterClosed.next({\r\n      type,\r\n      data\r\n    });\r\n    this.afterClosed.complete();\r\n  }\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { VexPopoverContent, VexPopoverRef } from './vex-popover-ref';\r\nimport { popoverAnimation } from '../../animations/popover.animation';\r\nimport {\r\n  NgComponentOutlet,\r\n  NgSwitch,\r\n  NgSwitchCase,\r\n  NgTemplateOutlet\r\n} from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'vex-popover',\r\n  templateUrl: './vex-popover.component.html',\r\n  styleUrls: ['./vex-popover.component.scss'],\r\n  animations: [popoverAnimation],\r\n  standalone: true,\r\n  imports: [NgSwitch, NgSwitchCase, NgTemplateOutlet, NgComponentOutlet]\r\n})\r\nexport class VexPopoverComponent implements OnInit {\r\n  renderMethod: 'template' | 'component' | 'text' = 'component';\r\n  content: VexPopoverContent;\r\n  context: any;\r\n\r\n  constructor(private popoverRef: VexPopoverRef) {}\r\n\r\n  ngOnInit() {\r\n    this.content = this.popoverRef.content;\r\n\r\n    if (typeof this.content === 'string') {\r\n      this.renderMethod = 'text';\r\n    }\r\n\r\n    if (this.content instanceof TemplateRef) {\r\n      this.renderMethod = 'template';\r\n      this.context = {\r\n        close: this.popoverRef.close.bind(this.popoverRef)\r\n      };\r\n    }\r\n  }\r\n}\r\n","<div @transformPopover class=\"vex-popover\">\r\n  <ng-container [ngSwitch]=\"renderMethod\">\r\n    <div *ngSwitchCase=\"'text'\" [innerHTML]=\"content\"></div>\r\n    <ng-container *ngSwitchCase=\"'template'\">\r\n      <ng-container\r\n        *ngTemplateOutlet=\"content; context: context\"></ng-container>\r\n    </ng-container>\r\n    <ng-container *ngSwitchCase=\"'component'\">\r\n      <ng-container *ngComponentOutlet=\"content\"></ng-container>\r\n    </ng-container>\r\n  </ng-container>\r\n</div>\r\n","import { ElementRef, Injectable, Injector } from '@angular/core';\r\nimport {\r\n  ConnectedPosition,\r\n  ConnectionPositionPair,\r\n  FlexibleConnectedPositionStrategyOrigin,\r\n  Overlay,\r\n  OverlayConfig,\r\n  PositionStrategy\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { VexPopoverContent, VexPopoverRef } from './vex-popover-ref';\r\nimport { VexPopoverComponent } from './vex-popover.component';\r\n\r\nexport interface VexPopoverParams<T> {\r\n  width?: string | number;\r\n  height?: string | number;\r\n  origin: ElementRef | HTMLElement;\r\n  position?: ConnectionPositionPair[];\r\n  content: VexPopoverContent;\r\n  data?: T;\r\n  offsetY?: number;\r\n  offsetX?: number;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VexPopoverService {\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private injector: Injector\r\n  ) {}\r\n\r\n  open<T>({\r\n    origin,\r\n    content,\r\n    data,\r\n    width,\r\n    height,\r\n    position,\r\n    offsetX,\r\n    offsetY\r\n  }: VexPopoverParams<T>): VexPopoverRef<T> {\r\n    const overlayRef = this.overlay.create(\r\n      this.getOverlayConfig({\r\n        origin,\r\n        width,\r\n        height,\r\n        position,\r\n        offsetX,\r\n        offsetY\r\n      })\r\n    );\r\n    const popoverRef = new VexPopoverRef<T>(overlayRef, content, data);\r\n\r\n    const injector = this.createInjector(popoverRef, this.injector);\r\n    overlayRef.attach(new ComponentPortal(VexPopoverComponent, null, injector));\r\n\r\n    return popoverRef;\r\n  }\r\n\r\n  private static getPositions(): ConnectionPositionPair[] {\r\n    return [\r\n      {\r\n        originX: 'center',\r\n        originY: 'top',\r\n        overlayX: 'center',\r\n        overlayY: 'bottom'\r\n      },\r\n      {\r\n        originX: 'center',\r\n        originY: 'bottom',\r\n        overlayX: 'center',\r\n        overlayY: 'top'\r\n      }\r\n    ];\r\n  }\r\n\r\n  createInjector(popoverRef: VexPopoverRef, injector: Injector) {\r\n    return Injector.create({\r\n      providers: [\r\n        {\r\n          provide: VexPopoverRef,\r\n          useValue: popoverRef\r\n        }\r\n      ],\r\n      parent: injector\r\n    });\r\n  }\r\n\r\n  private getOverlayConfig({\r\n    origin,\r\n    width,\r\n    height,\r\n    position,\r\n    offsetX,\r\n    offsetY\r\n  }: {\r\n    origin: FlexibleConnectedPositionStrategyOrigin;\r\n    width?: string | number;\r\n    height?: string | number;\r\n    position?: ConnectedPosition[];\r\n    offsetX?: number;\r\n    offsetY?: number;\r\n  }): OverlayConfig {\r\n    return new OverlayConfig({\r\n      hasBackdrop: true,\r\n      width,\r\n      height,\r\n      backdropClass: 'vex-popover-backdrop',\r\n      positionStrategy: this.getOverlayPosition({\r\n        origin,\r\n        position,\r\n        offsetX,\r\n        offsetY\r\n      }),\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n    });\r\n  }\r\n\r\n  private getOverlayPosition({\r\n    origin,\r\n    position,\r\n    offsetX,\r\n    offsetY\r\n  }: {\r\n    origin: FlexibleConnectedPositionStrategyOrigin;\r\n    position?: ConnectedPosition[];\r\n    offsetX?: number;\r\n    offsetY?: number;\r\n  }): PositionStrategy {\r\n    return this.overlay\r\n      .position()\r\n      .flexibleConnectedTo(origin)\r\n      .withPositions(position || VexPopoverService.getPositions())\r\n      .withFlexibleDimensions(true)\r\n      .withDefaultOffsetY(offsetY || 0)\r\n      .withDefaultOffsetX(offsetX || 0)\r\n      .withTransformOriginOn('.vex-popover')\r\n      .withPush(true);\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport {\r\n  LOADING_BAR_CONFIG,\r\n  LoadingBarConfig,\r\n  LoadingBarModule,\r\n  LoadingBarService\r\n} from '@ngx-loading-bar/core';\r\nimport { delayWhen, interval, Observable, of } from 'rxjs';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\r\n\r\n@Component({\r\n  selector: 'vex-progress-bar',\r\n  templateUrl: './vex-progress-bar.component.html',\r\n  styleUrls: ['./vex-progress-bar.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  standalone: true,\r\n  imports: [\r\n    MatProgressBarModule,\r\n    LoadingBarModule,\r\n    LoadingBarRouterModule,\r\n    AsyncPipe\r\n  ],\r\n  providers: [\r\n    {\r\n      provide: LOADING_BAR_CONFIG,\r\n      useValue: {\r\n        latencyThreshold: 80\r\n      } as LoadingBarConfig\r\n    }\r\n  ]\r\n})\r\nexport class VexProgressBarComponent {\r\n  value$: Observable<number> = this.loader\r\n    .useRef('router')\r\n    .value$.pipe(\r\n      delayWhen((value) => (value === 0 ? interval(200) : of(undefined)))\r\n    );\r\n\r\n  constructor(public loader: LoadingBarService) {}\r\n}\r\n","<mat-progress-bar\r\n  [class.visible]=\"\r\n    ((value$ | async) ?? 0) > 0 && ((value$ | async) ?? 0) !== 100\r\n  \"\r\n  [value]=\"(value$ | async) ?? 0\"\r\n  class=\"progress-bar\"\r\n  mode=\"determinate\"></mat-progress-bar>\r\n","import {\r\n  AfterContentInit,\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  NgZone,\r\n  OnDestroy\r\n} from '@angular/core';\r\nimport SimpleBar from 'simplebar';\r\n\r\n@Component({\r\n  selector: 'vex-scrollbar',\r\n  template: ` <ng-content></ng-content>`,\r\n  styleUrls: ['./vex-scrollbar.component.scss'],\r\n  host: {\r\n    class: 'vex-scrollbar'\r\n  },\r\n  standalone: true\r\n})\r\nexport class VexScrollbarComponent implements AfterContentInit, OnDestroy {\r\n  @Input() options?: Partial<any>;\r\n\r\n  scrollbarRef?: SimpleBar;\r\n\r\n  constructor(\r\n    private _element: ElementRef,\r\n    private zone: NgZone\r\n  ) {}\r\n\r\n  ngAfterContentInit() {\r\n    this.zone.runOutsideAngular(() => {\r\n      this.scrollbarRef = new SimpleBar(\r\n        this._element.nativeElement,\r\n        this.options\r\n      );\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    /**\r\n     * Exists, but not typed in the type definition\r\n     * https://github.com/Grsmto/simplebar/blob/master/packages/simplebar/src/simplebar.js#L903\r\n     */\r\n    if (this.scrollbarRef && (this.scrollbarRef as any).unMount) {\r\n      (this.scrollbarRef as any).unMount();\r\n    }\r\n  }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { VexConfigService } from '../../config/vex-config.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { AsyncPipe, NgClass, NgIf } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'vex-secondary-toolbar',\r\n  template: `\r\n    <div class=\"secondary-toolbar-placeholder\">&nbsp;</div>\r\n\r\n    <div\r\n      [ngClass]=\"{ fixed: fixed$ | async, 'w-full': !(fixed$ | async) }\"\r\n      class=\"secondary-toolbar py-1 z-40 border-t flex\">\r\n      <div\r\n        class=\"px-6 flex items-center flex-auto\"\r\n        [class.container]=\"isVerticalLayout$ | async\">\r\n        <h1\r\n          *ngIf=\"current\"\r\n          class=\"subheading-2 font-medium m-0 ltr:pr-3 rtl:pl-3 ltr:border-r rtl:border-l ltr:mr-3 rtl:ml-3 flex-none\">\r\n          {{ current }}\r\n        </h1>\r\n\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n  `,\r\n  styleUrls: ['./vex-secondary-toolbar.component.scss'],\r\n  standalone: true,\r\n  imports: [NgClass, NgIf, AsyncPipe]\r\n})\r\nexport class VexSecondaryToolbarComponent {\r\n  @Input() current?: string;\r\n\r\n  fixed$ = this.configService.config$.pipe(\r\n    map((config) => config.toolbar.fixed)\r\n  );\r\n\r\n  isVerticalLayout$: Observable<boolean> = this.configService\r\n    .select((config) => config.layout)\r\n    .pipe(map((layout) => layout === 'vertical'));\r\n\r\n  constructor(private readonly configService: VexConfigService) {}\r\n}\r\n","import Showdown, { ShowdownExtension } from 'showdown';\r\n\r\n/**\r\n * @internal\r\n */\r\nlet { hasOwnProperty } = {};\r\n\r\nexport interface ShowdownConfig extends Showdown.ConverterOptions {}\r\n\r\n/**\r\n * A config provider\r\n *\r\n * ### Example\r\n *\r\n * Set custom config provider.\r\n * ```typescript\r\n * import { NgModel } from '@angular/core';\r\n * import { ShowdownModule, ShowdownConfig } from 'ngx-vex-showdown';\r\n *\r\n * export class MyShowdownConfig extends ShowdownConfig {\r\n *   emoji = true;\r\n *   underscore = false;\r\n *   flavor = 'github';\r\n * }\r\n *\r\n * @NgModel({\r\n *   imports: [ ShowdownModule ],\r\n *   providers: [ {provide: ShowdownConfig, useClass: MyConverterOptions} ]\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n */\r\nexport class VexShowdownConfig implements Showdown.ConverterOptions {\r\n  /**\r\n   * @see https://github.com/showdownjs/showdown/blob/master/README.md#flavors\r\n   */\r\n  flavor?: Showdown.Flavor;\r\n  extensions?:\r\n    | (\r\n        | (() => ShowdownExtension[] | ShowdownExtension)\r\n        | ShowdownExtension[]\r\n        | ShowdownExtension\r\n        | string\r\n      )[]\r\n    | undefined;\r\n\r\n  constructor(options?: VexShowdownConfig | Showdown.ConverterOptions) {\r\n    if (options) {\r\n      this.merge(options);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Merge options\r\n   *\r\n   * @param options - A options object to merge.\r\n   */\r\n  public merge(options: VexShowdownConfig | Showdown.ConverterOptions) {\r\n    for (let key in options) {\r\n      if (hasOwnProperty.call(options, key)) {\r\n        (this as any)[key] = (options as any)[key];\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport Showdown from 'showdown';\r\nimport { VexShowdownConfig } from './vex-showdown-config.provider';\r\n\r\n/**\r\n * @internal\r\n */\r\nlet { hasOwnProperty } = {};\r\n\r\n/**\r\n * ### Example\r\n *\r\n * Setup as standalone\r\n * ```typescript\r\n * import { NgModule } from '@angular/core';\r\n * import { ShowdownConverter } from 'ngx-vex-showdown';\r\n *\r\n * @NgModule({\r\n *   providers: [ ShowdownConverter ];\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n *\r\n * Use the converter instance.\r\n * ```typescript\r\n * import { Injectable } from '@angular/core';\r\n * import { ShowdownConverter } from 'ngx-vex-showdown';\r\n *\r\n * @Injectable()\r\n * export class SomeService {\r\n *   constructor(showdownConverter: ShowdownConverter) {\r\n *     let markdown: string = \"**Some**\";\r\n *     let html: string = showdownConverter.makeHtml(markdown);\r\n *     console.log(`some:\\nmarkdown: ${markdown)\\nhtml: ${html}\\n`);\r\n *   }\r\n * }\r\n * ```\r\n */\r\n@Injectable()\r\nexport class VexShowdownConverter extends Showdown.Converter {\r\n  constructor(@Optional() config?: VexShowdownConfig) {\r\n    super(config && { extensions: config.extensions });\r\n    this.setFlavor((config && config.flavor) || 'vanilla');\r\n\r\n    if (config) {\r\n      this.setOptions(config);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Set options to the converter.\r\n   *\r\n   * @param options - A options object to set.\r\n   */\r\n  public setOptions(options: Showdown.ShowdownOptions): void {\r\n    for (let key in options) {\r\n      if (hasOwnProperty.call(options, key)) {\r\n        this.setOption(key, options[key]);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  Optional,\r\n  SecurityContext\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport Showdown from 'showdown';\r\nimport { VexShowdownConfig } from './vex-showdown-config.provider';\r\nimport { VexShowdownConverter } from './vex-showdown-converter.provider';\r\n\r\n/**\r\n * @internal\r\n */\r\nconst MAP_OPTION = {\r\n  '': true,\r\n  true: true,\r\n  false: false\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nlet _toOption = (value: any) =>\r\n  MAP_OPTION.hasOwnProperty(value) ? (MAP_OPTION as any)[value] : value;\r\n\r\n/**\r\n * The options keys for the dynamic properties set.\r\n * @internal\r\n */\r\nconst OPTIONS_PROPERTIES_KEYS: string[] = [\r\n  'backslashEscapesHTMLTags',\r\n  'completeHTMLDocument',\r\n  'disableForced4SpacesIndentedSublists',\r\n  'emoji',\r\n  'encodeEmails',\r\n  'ghCodeBlocks',\r\n  'ghCompatibleHeaderId',\r\n  'ghMentions',\r\n  'ghMentionsLink',\r\n  'headerLevelStart',\r\n  'literalMidWordAsterisks',\r\n  'literalMidWordUnderscores',\r\n  'metadata',\r\n  'noHeaderId',\r\n  'omitExtraWLInCodeBlocks',\r\n  'openLinksInNewWindow',\r\n  'parseImgDimensions',\r\n  'prefixHeaderId',\r\n  'rawHeaderId',\r\n  'rawPrefixHeaderId',\r\n  'requireSpaceBeforeHeadingText',\r\n  'simpleLineBreaks',\r\n  'simplifiedAutoLink',\r\n  'smartIndentationFix',\r\n  'smoothLivePreview',\r\n  'splitAdjacentBlockquotes',\r\n  'strikethrough',\r\n  'tables',\r\n  'tablesHeaderId',\r\n  'tasklists',\r\n  'underline'\r\n];\r\n\r\n// For the options setter properties that dynamic definition (the code after the class)\r\nexport interface ShowdownComponent extends Showdown.ShowdownOptions {}\r\n\r\n/**\r\n * A angular component for render `Markdown` to `HTML`.\r\n *\r\n * ### Example\r\n *\r\n * Setup as standalone\r\n * ```typescript\r\n * import { NgModule } from '@angular/core';\r\n * import { ShowdownComponent } from 'ngx-vex-showdown';\r\n *\r\n * @NgModule({\r\n *   declarations: [ ShowdownComponent ];\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n *\r\n * Bind markdown value and options object\r\n * ```typescript\r\n * import { Component } from '@angular/core';\r\n * import Showdown from 'vex-showdown';\r\n *\r\n * @Component({\r\n *   selector: 'some',\r\n *   template: '<vex-showdown [value]=\"text\" [options]=\"options\"></vex-showdown>'\r\n * })\r\n * export class SomeComponent {\r\n *   text: string = `\r\n *     # Some header\r\n *     ---\r\n *     **Some bold**\r\n *   `;\r\n *   options: Showdown.ShowdownOptions = { smartIndentationFix: true };\r\n *   // ...\r\n * }\r\n * ```\r\n * Bind single option (it have properties for all vex-showdown options).\r\n * ```html\r\n * <vex-showdown emoji=\"true\"  noHeaderId># Some text :+1:</vex-showdown>\r\n * ```\r\n *\r\n * Set static markdown value.\r\n * ```html\r\n * <vex-showdown value=\"___Some static value___\" underline></vex-showdown>\r\n * ```\r\n *\r\n * Use as directive on anther element.\r\n * ```html\r\n * <div vex-showdown=\"# Div Element\" headerLevelStart=\"2\"></div>\r\n * ```\r\n *\r\n * Static markdown value in the element content.\r\n * ```html\r\n * <div>\r\n *    <vex-showdown smartIndentationFix>\r\n *       # List:\r\n *       * a\r\n *            * A\r\n *       * b\r\n *    </vex-showdown>\r\n * </div>\r\n * ```\r\n *\r\n * Set template reference variable.\r\n * ```html\r\n * <vex-showdown #sd></vex-showdown>\r\n * ```\r\n * Or\r\n * ```html\r\n * <div vex-showdown #sd=\"vex-showdown\"></div>\r\n * ```\r\n */\r\n@Component({\r\n  selector: 'vex-showdown,[vex-showdown]',\r\n  template: '<ng-content></ng-content>',\r\n  exportAs: 'vex-showdown',\r\n  inputs: OPTIONS_PROPERTIES_KEYS,\r\n  standalone: true\r\n})\r\nexport class VexShowdownComponent\r\n  extends VexShowdownConverter\r\n  implements OnInit, OnChanges, Showdown.ShowdownOptions\r\n{\r\n  /**\r\n   * The input markdown value.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * Set some static markdown value.\r\n   * ```html\r\n   * <vex-showdown value=\"**Some bold value**\"></vex-showdown>\r\n   * ```\r\n   *\r\n   * Bind property with markdown value.\r\n   * ```html\r\n   * <textarea [(ngModel)]=\"text\"></textarea>\r\n   * <vex-showdown [value]=\"text\"></vex-showdown>\r\n   * ```\r\n   */\r\n  @Input() value?: string;\r\n\r\n  constructor(\r\n    private _elementRef: ElementRef,\r\n    @Optional() private _domSanitizer?: DomSanitizer,\r\n    @Optional() config?: VexShowdownConfig\r\n  ) {\r\n    super(config);\r\n  }\r\n\r\n  /**\r\n   * Input alias to `value`.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * ```html\r\n   * <div [vex-showdown]=\"# Some Header\"></div>\r\n   * ```\r\n   *\r\n   * Equivalent to\r\n   * ```html\r\n   * <vex-showdown [value]=\"# Some Header\"></vex-showdown>\r\n   * ```\r\n   */\r\n  @Input() set showdown(value: string) {\r\n    this.value = value;\r\n  }\r\n\r\n  /**\r\n   * The vex-showdown options of the converter.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * Bind options\r\n   * ```typescript\r\n   * import { Component } from '@angular/core';\r\n   * import Showdown from 'vex-showdown';\r\n   *\r\n   * @Component({\r\n   *   selector: `some`,\r\n   *   template: `<vex-showdown [options]=\"options\"># Some Header<vex-showdown>`\r\n   * })\r\n   * export class SomeComponent {\r\n   *   options: Showdown.ShowdownOptions = {headerLevelStart: 3};\r\n   *   // ...\r\n   * }\r\n   * ```\r\n   * Or\r\n   * ```html\r\n   * <vex-showdown [options]=\"{smartIndentationFix: true}\"> # Indentation Fix<vex-showdown>\r\n   * ```\r\n   */\r\n  @Input()\r\n  get options(): Showdown.ShowdownOptions {\r\n    return this.getOptions();\r\n  }\r\n\r\n  set options(options: Showdown.ShowdownOptions) {\r\n    this.setOptions(options);\r\n  }\r\n\r\n  private _sanitize?: boolean;\r\n\r\n  /**\r\n   * Enables html sanitize, it will sanitize the converter html output by [`DomSanitizer`](https://angular.io/api/platform-browser/DomSanitizer#sanitize).\r\n   *\r\n   * __Example :__\r\n   *\r\n   * ```typescript\r\n   * import { Component } from '@angular/core';\r\n   *\r\n   * @Component({\r\n   *   selector: 'some',\r\n   *   styles: [`.box { width: 95%; padding: 5px; border: 1px solid black;}`],\r\n   *   template: `\r\n   *     <h3>Input</h3>\r\n   *     <textarea class=\"box\" [(ngModel)]=\"text\"></textarea>\r\n   *     <input type=\"checkbox\" [(ngModel)]=\"sanitize\"/> <b>Sanitize</b>\r\n   *     <h3>Markdown</h3>\r\n   *     <pre class=\"box\"><code>{{ text }}</code></pre>\r\n   *     <h3>Preview</h3>\r\n   *     <div class=\"box\">\r\n   *       <vex-showdown #sd [value]=\"text\" [sanitize]=\"sanitize\"></vex-showdown>\r\n   *     </div>\r\n   *   `;\r\n   * })\r\n   * export class SomeComponent {\r\n   *    text: string = `# A cool link\r\n   * <a href=\"javascript:alert('Hello!')\">click me</a>`;\r\n   * }\r\n   * ```\r\n   */\r\n  @Input()\r\n  set sanitize(sanitize: boolean) {\r\n    this._sanitize = _toOption(sanitize);\r\n  }\r\n\r\n  /**\r\n   * A angular lifecycle method, Use on init to check if it `content` type and load the element `content` to `value`.\r\n   * @internal\r\n   */\r\n  ngOnInit(): void {\r\n    if (\r\n      this.value === undefined &&\r\n      this._elementRef.nativeElement.innerHTML.trim() !== ''\r\n    ) {\r\n      this.render(this._elementRef.nativeElement.innerHTML);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * A angular lifecycle method, Use to call to render method after changes.\r\n   * @internal\r\n   */\r\n  ngOnChanges(): void {\r\n    this.render();\r\n  }\r\n\r\n  /**\r\n   * Convert the markdown value of {@link VexShowdownComponent#value} to html and set the html result to the element content.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * ```html\r\n   * <textarea #textarea (change)=\"vex-showdown.render(textarea.value)\"/># Some Header</textarea>\r\n   * <vex-showdown #vex-showdown></vex-showdown>\r\n   * ```\r\n   * @param value - A markdown value to render (it will override the current value of `ShowdownComponent#value`)\r\n   */\r\n  public render(value?: string): void {\r\n    if (typeof value === 'string') {\r\n      this.value = value;\r\n    }\r\n\r\n    if (typeof this.value === 'string') {\r\n      let result = this.makeHtml(this.value);\r\n\r\n      if (this._sanitize) {\r\n        result =\r\n          this._domSanitizer?.sanitize(SecurityContext.HTML, result) ?? '';\r\n      }\r\n\r\n      this._elementRef.nativeElement.innerHTML = result;\r\n    }\r\n  }\r\n}\r\n\r\n// Define options properties setter for angular directive and direct access\r\nfor (let key of OPTIONS_PROPERTIES_KEYS) {\r\n  Object.defineProperty(VexShowdownComponent.prototype, key, {\r\n    set(value: any): void {\r\n      this.setOption(key, _toOption(value));\r\n    },\r\n    configurable: true\r\n  });\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport {\r\n  Directive,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  Output\r\n} from '@angular/core';\r\nimport { VexShowdownComponent } from './vex-showdown.component';\r\nimport { catchError, EMPTY } from 'rxjs';\r\n\r\n/**\r\n * A angular directive to `ShowdownComponent` for make http request of markdown content.\r\n *\r\n * ### Example\r\n *\r\n * Setup as standalone\r\n * ```typescript\r\n * import { NgModule } from '@angular/core';\r\n * import { HttpClientModule } from '@angular/common/http';\r\n * import { ShowdownComponent, SourceDirective } from 'ngx-vex-showdown';\r\n *\r\n * @NgModule({\r\n *    declarations: [ ShowdownComponent, SourceDirective ],\r\n *    imports: [ HttpClientModule ]\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n *\r\n * Bind url `src` directive\r\n * ```typescript\r\n * import { Component } from '@angular/core';\r\n *\r\n * @Component({\r\n *     selector: 'some',\r\n *     template: '<vex-showdown [src]=\"url\" smartIndentationFix>**Loading...**</vex-showdown>\r\n * })\r\n * class SomeComponent {\r\n *     url: string = 'https://unpkg.com/ngx-showdown/README.md';\r\n *     // ...\r\n * }\r\n * ```\r\n *\r\n * Set static url\r\n * ```html\r\n * <vex-showdown src=\"README.md\" [options]=\"{noHeaderId: true}\"></vex-showdown>\r\n * ```\r\n *\r\n * Set template reference variable\r\n * ```html\r\n * <vex-showdown #source=\"source\" src=\"README.md\"></vex-showdown>\r\n * ```\r\n *\r\n * Listening to `error` events.\r\n * ```html\r\n * <vex-showdown #sd src=\"http://url.error\" (error)=\"sd.render('# '+$event.message)\"></vex-showdown>\r\n * ```\r\n */\r\n@Directive({\r\n  selector: 'vex-showdown[src],[vex-showdown][src]',\r\n  exportAs: 'source',\r\n  standalone: true\r\n})\r\nexport class VexShowdownSourceDirective implements OnChanges {\r\n  /**\r\n   * The source url of the markdown content.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * Set static url to `src` directive.\r\n   * ```html\r\n   * <vex-showdown src=\"https://unpkg.com/ngx-showdown/README.md\"></vex-showdown>\r\n   * ```\r\n   *\r\n   * Bind url to `src` directive.\r\n   * ```html\r\n   * <input type=\"text\" #url placeholder=\"url\" />\r\n   * <button (click)=\"src = url.value\">Load</button>\r\n   * <vex-showdown [src]=\"src\">**Loading...**</vex-showdown>\r\n   * ```\r\n   */\r\n  @Input() src?: string;\r\n\r\n  /**\r\n   * On error occur.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * ```html\r\n   * <input type=\"text\" placeholder=\"url\" [(ngModel)]=\"url\"/>\r\n   * <vex-showdown [src]=\"url\" (error)=\"sd.render('# Error\\n> '+$event.message)\">**Loading...**</vex-showdown>\r\n   * ```\r\n   */\r\n  @Output() error: EventEmitter<HttpErrorResponse> = new EventEmitter();\r\n\r\n  constructor(\r\n    private _showdownComponent: VexShowdownComponent,\r\n    private _http: HttpClient\r\n  ) {}\r\n\r\n  /**\r\n   * A angular lifecycle method, Use to call to `load` method on src init/changes\r\n   * @internal\r\n   */\r\n  ngOnChanges(): void {\r\n    this.load();\r\n  }\r\n\r\n  /**\r\n   * Load the markdown content of {@link VexShowdownSourceDirective#src} url to {@link VexShowdownComponent#value}.\r\n   *\r\n   * __Example :__\r\n   *\r\n   * ```html\r\n   * <input type=\"text\" #url value=\"source.src\" placeholder=\"Url\" />\r\n   * <button (click)=\"source.load(url.value)\">Load</button>\r\n   * <vex-showdown #source=\"source\" src=\"https://unpkg.com/ngx-showdown/README.md\"></vex-showdown>\r\n   * ```\r\n   * @param url - A url of markdown content to load (it will override the current url of `SourceDirective#src`)\r\n   */\r\n  public load(url?: string): void {\r\n    if (url) {\r\n      this.src = url;\r\n    }\r\n\r\n    if (this.src) {\r\n      this._http\r\n        .get(this.src, { responseType: 'text' })\r\n        .pipe(\r\n          catchError((error: HttpErrorResponse) => {\r\n            this.error.emit(error);\r\n            return EMPTY;\r\n          })\r\n        )\r\n        .subscribe((response: string) => {\r\n          this._showdownComponent.render(response);\r\n        });\r\n    }\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport Showdown from 'showdown';\r\nimport { VexShowdownConverter } from './vex-showdown-converter.provider';\r\n\r\n/**\r\n * A angular pipe to transform `Markdown` to `HTML`.\r\n *\r\n * ### Example\r\n *\r\n * Setup as standalone\r\n * ```typescript\r\n * import { NgModule } from '@angular/core';\r\n * import { ShowdownPipe } from 'ngx-vex-showdown';\r\n *\r\n * @NgModule({\r\n *   declarations: [ ShowdownPipe ];\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n *\r\n * Transform markdown value to html.\r\n * ```html\r\n * <input type=\"text\" placeholder=\"Name\" [(ngModel)]=\"name\"/>\r\n * <div [innerHTML]=\"'**Hello '+(name || 'nobody')+'!**' | vex-showdown\">\r\n * ```\r\n *\r\n * Transform markdown value to html with `options`.\r\n * ```typescript\r\n * import Showdown from 'vex-showdown';\r\n *\r\n * @Component({\r\n *   selector: 'some',\r\n *   template: `<div innerHTML=\"{{ text | vex-showdown: options }}\"></div>`\r\n * })\r\n * export class SomeComponent {\r\n *   text: string = \"__Some Underline__\";\r\n *   options: Showdown.ShowdownOptions = { underline: true };\r\n *   // ...\r\n * }\r\n * ```\r\n */\r\n@Pipe({\r\n  name: 'vexShowdown',\r\n  pure: false,\r\n  standalone: true\r\n})\r\nexport class VexShowdownPipe\r\n  extends VexShowdownConverter\r\n  implements PipeTransform\r\n{\r\n  /**\r\n   * Transform markdown value to html.\r\n   *\r\n   * @param value - The markdown value to transform to html.\r\n   * @param options - A `Showdown` converter options.\r\n   * @returns Returns the transform result of `value` to html.\r\n   */\r\n  transform(value: string, options?: Showdown.ShowdownOptions): string {\r\n    if (options) {\r\n      this.setOptions(options);\r\n    }\r\n    return this.makeHtml(value);\r\n  }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport Showdown from 'showdown';\r\nimport { VexShowdownConfig } from './vex-showdown-config.provider';\r\nimport { VexShowdownConverter } from './vex-showdown-converter.provider';\r\nimport { VexShowdownComponent } from './vex-showdown.component';\r\nimport { VexShowdownPipe } from './vex-showdown.pipe';\r\nimport { VexShowdownSourceDirective } from './vex-showdown-source.directive';\r\n\r\n/**\r\n * @internal\r\n */\r\nconst DECLARATIONS = [\r\n  VexShowdownComponent,\r\n  VexShowdownPipe,\r\n  VexShowdownSourceDirective\r\n];\r\n\r\n/**\r\n * ### Example\r\n *\r\n * Add `ShowdownModule` to app `imports`.\r\n * ```typescript\r\n * import { NgModule } from '@angular/core';\r\n * import { ShowdownModule } from 'ngx-vex-showdown';\r\n *\r\n * @NgModule({\r\n *   imports: [ ShowdownModule ];\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n */\r\n@NgModule({\r\n  imports: [...DECLARATIONS],\r\n  providers: [VexShowdownConverter],\r\n  exports: DECLARATIONS\r\n})\r\nexport class VexShowdownModule {\r\n  /**\r\n   * __Example :__\r\n   *\r\n   * Add `ShowdownModule` to app `imports` with config.\r\n   * ```typescript\r\n   * import { NgModule } from '@angular/core';\r\n   * import { ShowdownModule } from 'ngx-vex-showdown';\r\n   *\r\n   * @NgModule({\r\n   *   imports: [ ShowdownModule.forRoot({\r\n   *     smartIndentationFix: true,\r\n   *     foo: 'bar',\r\n   *     flavor: 'github',\r\n   *     extensions: [ {type:'listener', listeners: {'codeBlocks.after': console.log}} ]\r\n   *   }) ];\r\n   * })\r\n   * export class AppModule {}\r\n   * ```\r\n   * @param config - A root converter config for all converter instances.\r\n   */\r\n  static forRoot(\r\n    config: VexShowdownConfig | Showdown.ConverterOptions\r\n  ): ModuleWithProviders<VexShowdownModule> {\r\n    return {\r\n      ngModule: VexShowdownModule,\r\n      providers: [{ provide: VexShowdownConfig, useValue: config }]\r\n    };\r\n  }\r\n}\r\n","import { Component, Inject, Input, OnDestroy } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'vex-sidebar',\r\n  templateUrl: './vex-sidebar.component.html',\r\n  styleUrls: ['./vex-sidebar.component.scss'],\r\n  host: {\r\n    class: 'vex-sidebar'\r\n  },\r\n  standalone: true\r\n})\r\nexport class VexSidebarComponent implements OnDestroy {\r\n  @Input() position: 'left' | 'right' = 'left';\r\n  @Input() invisibleBackdrop: boolean = false;\r\n\r\n  constructor(@Inject(DOCUMENT) private document: Document) {}\r\n\r\n  private _opened: boolean = false;\r\n\r\n  get opened() {\r\n    return this._opened;\r\n  }\r\n\r\n  @Input() set opened(opened: boolean) {\r\n    this._opened = opened;\r\n    opened ? this.enableScrollblock() : this.disableScrollblock();\r\n  }\r\n\r\n  get positionLeft() {\r\n    return this.position === 'left';\r\n  }\r\n\r\n  get positionRight() {\r\n    return this.position === 'right';\r\n  }\r\n\r\n  enableScrollblock() {\r\n    if (!this.document.body.classList.contains('vex-scrollblock')) {\r\n      this.document.body.classList.add('vex-scrollblock');\r\n    }\r\n  }\r\n\r\n  disableScrollblock() {\r\n    if (this.document.body.classList.contains('vex-scrollblock')) {\r\n      this.document.body.classList.remove('vex-scrollblock');\r\n    }\r\n  }\r\n\r\n  open() {\r\n    this.opened = true;\r\n  }\r\n\r\n  close() {\r\n    this.opened = false;\r\n  }\r\n\r\n  ngOnDestroy(): void {}\r\n}\r\n","<div\r\n  (click)=\"close()\"\r\n  [class.opaque]=\"invisibleBackdrop\"\r\n  [class.show]=\"opened\"\r\n  class=\"backdrop\"></div>\r\n\r\n<div\r\n  [class.open]=\"opened\"\r\n  [class.position-left]=\"positionLeft\"\r\n  [class.position-right]=\"positionRight\"\r\n  class=\"sidebar\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","// Provider entry point\nexport * from './lib/vex.provider';\n\n// Config\nexport * from './lib/config/color-variables';\nexport * from './lib/config/config.token';\nexport * from './lib/config/constants';\nexport * from './lib/config/vex-config.interface';\nexport * from './lib/config/vex-config.service';\nexport * from './lib/config/vex-configs';\n\n// Services\nexport * from './lib/services/vex-demo.service';\nexport * from './lib/services/vex-layout.service';\nexport * from './lib/services/vex-platform.service';\nexport * from './lib/services/vex-splash-screen.service';\n\n// Interfaces\nexport * from './lib/interfaces/css-value.type';\nexport * from './lib/interfaces/deep-partial.type';\nexport * from './lib/interfaces/link.interface';\nexport * from './lib/interfaces/table-column.interface';\nexport * from './lib/interfaces/vex-route.interface';\n\n// Animations\nexport * from './lib/animations/dropdown.animation';\nexport * from './lib/animations/fade-in-right.animation';\nexport * from './lib/animations/fade-in-up.animation';\nexport * from './lib/animations/popover.animation';\nexport * from './lib/animations/scale-fade-in.animation';\nexport * from './lib/animations/scale-in-out.animation';\nexport * from './lib/animations/scale-in.animation';\nexport * from './lib/animations/stagger.animation';\n\n// Pipes\nexport * from './lib/pipes/vex-date-format-relative/vex-date-format-relative.pipe';\nexport * from './lib/pipes/vex-date-format-tokens/vex-date-format-tokens.pipe';\nexport * from './lib/pipes/vex-strip-html/vex-strip-html.pipe';\n\n// Utils\nexport * from './lib/utils/check-router-childs-data';\nexport * from './lib/utils/create-date-array';\nexport { default as deepClone } from './lib/utils/deep-clone';\nexport * from './lib/utils/default-chart-options';\nexport * from './lib/utils/is-nil';\nexport * from './lib/utils/merge-deep';\nexport * from './lib/utils/track-by';\n\n// Components\nexport * from './lib/components/vex-breadcrumbs/vex-breadcrumbs.component';\nexport * from './lib/components/vex-breadcrumbs/vex-breadcrumb/vex-breadcrumb.component';\nexport * from './lib/components/vex-chart/vex-chart.component';\nexport * from './lib/components/vex-highlight/vex-highlight.directive';\nexport * from './lib/components/vex-highlight/vex-highlight.model';\nexport * from './lib/components/vex-highlight/vex-highlight.module';\nexport * from './lib/components/vex-highlight/vex-highlight.service';\nexport * from './lib/components/vex-page-layout/vex-page-layout.component';\nexport * from './lib/components/vex-page-layout/vex-page-layout-content.directive';\nexport * from './lib/components/vex-page-layout/vex-page-layout-header.directive';\nexport * from './lib/components/vex-popover/vex-popover-ref';\nexport * from './lib/components/vex-popover/vex-popover.component';\nexport * from './lib/components/vex-popover/vex-popover.service';\nexport * from './lib/components/vex-progress-bar/vex-progress-bar.component';\nexport * from './lib/components/vex-scrollbar/vex-scrollbar.component';\nexport * from './lib/components/vex-secondary-toolbar/vex-secondary-toolbar.component';\nexport * from './lib/components/vex-showdown/vex-showdown-config.provider';\nexport * from './lib/components/vex-showdown/vex-showdown-converter.provider';\nexport * from './lib/components/vex-showdown/vex-showdown-source.directive';\nexport * from './lib/components/vex-showdown/vex-showdown.component';\nexport * from './lib/components/vex-showdown/vex-showdown.module';\nexport * from './lib/components/vex-showdown/vex-showdown.pipe';\nexport * from './lib/components/vex-sidebar/vex-sidebar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.VexLayoutService","i2.VexConfigService","i1.VexHighlightService","i1.VexPopoverRef","i2","i1.VexConfigService","hasOwnProperty","i1.VexShowdownConfig","i2.VexShowdownConfig","i1.VexShowdownComponent"],"mappings":"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"}