{"version":3,"file":"argentumcode-ngx-contextmenu.mjs","sources":["../../../projects/ngx-contextmenu/src/lib/context-menu.tokens.ts","../../../projects/ngx-contextmenu/src/lib/components/context-menu-content/context-menu-content.component.ts","../../../projects/ngx-contextmenu/src/lib/directives/context-menu-item/context-menu-item.directive.ts","../../../projects/ngx-contextmenu/src/lib/context-menu.ts","../../../projects/ngx-contextmenu/src/lib/services/context-menu/context-menu.service.ts","../../../projects/ngx-contextmenu/src/lib/components/context-menu/context-menu.component.ts","../../../projects/ngx-contextmenu/src/lib/directives/context-menu/context-menu.directive.ts","../../../projects/ngx-contextmenu/src/lib/ngx-contextmenu.module.ts","../../../projects/ngx-contextmenu/src/lib/context-menu-item.ts","../../../projects/ngx-contextmenu/src/public-api.ts","../../../projects/ngx-contextmenu/src/argentumcode-ngx-contextmenu.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const CONTEXT_MENU_OPTIONS = new InjectionToken('CONTEXT_MENU_OPTIONS');\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IContextMenuOptions } from '../../context-menu.options';\nimport { CONTEXT_MENU_OPTIONS } from '../../context-menu.tokens';\nimport {\n  CloseLeafMenuEvent,\n  IContextMenuClickEvent,\n} from '../../services/context-menu/context-menu.service';\nimport { ContextMenuItemInterface } from '../../context-menu-item.interface';\n\nexport interface ILinkConfig {\n  click: (item: any, $event?: MouseEvent) => void;\n  enabled?: (item: any) => boolean;\n  html: (item: any) => string;\n}\n\nconst ARROW_LEFT_KEYCODE = 37;\n\n@Component({\n  selector: 'context-menu-content',\n  styles: [\n    `\n      .passive {\n        display: block;\n        padding: 3px 20px;\n        clear: both;\n        font-weight: normal;\n        line-height: @line-height-base;\n        white-space: nowrap;\n      }\n      .hasSubMenu:before {\n        content: '\\u25B6';\n        float: right;\n      }\n    `,\n  ],\n  template: `\n    <div\n      class=\"dropdown open show ngx-contextmenu\"\n      [ngClass]=\"menuClass\"\n      tabindex=\"0\"\n    >\n      <ul\n        #menu\n        class=\"dropdown-menu show\"\n        style=\"position: static; float: none;\"\n        tabindex=\"0\"\n      >\n        <li\n          #li\n          *ngFor=\"let menuItem of menuItems; let i = index\"\n          [class.disabled]=\"!isMenuItemEnabled(menuItem)\"\n          [class.divider]=\"menuItem.divider\"\n          [class.dropdown-divider]=\"useBootstrap4 && menuItem.divider\"\n          [class.active]=\"menuItem.isActive && isMenuItemEnabled(menuItem)\"\n          [attr.role]=\"menuItem.divider ? 'separator' : undefined\"\n        >\n          <a\n            *ngIf=\"!menuItem.divider && !menuItem.passive\"\n            href\n            [class.dropdown-item]=\"useBootstrap4\"\n            [class.active]=\"menuItem.isActive && isMenuItemEnabled(menuItem)\"\n            [class.disabled]=\"useBootstrap4 && !isMenuItemEnabled(menuItem)\"\n            [class.hasSubMenu]=\"!!menuItem.subMenu\"\n            (click)=\"onMenuItemSelect(menuItem, $event)\"\n            (mouseenter)=\"onOpenSubMenu(menuItem, $event)\"\n          >\n            <ng-template\n              *ngIf=\"menuItem.template\"\n              [ngTemplateOutlet]=\"menuItem.template\"\n              [ngTemplateOutletContext]=\"{ item }\"\n            ></ng-template\n            >{{ menuItem.text }}\n          </a>\n\n          <span\n            (click)=\"stopEvent($event)\"\n            (contextmenu)=\"stopEvent($event)\"\n            class=\"passive\"\n            *ngIf=\"!menuItem.divider && menuItem.passive\"\n            [class.dropdown-item]=\"useBootstrap4\"\n            [class.disabled]=\"useBootstrap4 && !isMenuItemEnabled(menuItem)\"\n          >\n            <ng-template\n              *ngIf=\"menuItem.template\"\n              [ngTemplateOutlet]=\"menuItem.template\"\n              [ngTemplateOutletContext]=\"{ item }\"\n            ></ng-template\n            >{{ menuItem.text }}\n          </span>\n        </li>\n      </ul>\n    </div>\n  `,\n})\nexport class ContextMenuContentComponent\n  implements OnInit, OnDestroy, AfterViewInit\n{\n  @Input()\n  public menuItems: ContextMenuItemInterface[] = [];\n\n  @Input()\n  public item: any;\n\n  @Input()\n  public event!: MouseEvent | KeyboardEvent;\n\n  @Input()\n  public parentContextMenu!: ContextMenuContentComponent;\n\n  @Input()\n  public menuClass!: string;\n\n  @Input()\n  public overlay!: OverlayRef;\n\n  @Input()\n  public isLeaf = false;\n\n  @Output()\n  public execute: EventEmitter<{\n    event: MouseEvent | KeyboardEvent;\n    item: any;\n    menuItem: ContextMenuItemInterface;\n  }> = new EventEmitter();\n\n  @Output()\n  public openSubMenu: EventEmitter<IContextMenuClickEvent> = new EventEmitter();\n\n  @Output()\n  public closeLeafMenu: EventEmitter<CloseLeafMenuEvent> = new EventEmitter();\n\n  @Output()\n  public closeAllMenus: EventEmitter<{\n    event: MouseEvent;\n  }> = new EventEmitter();\n\n  @ViewChild('menu', { static: true })\n  public menuElement!: ElementRef;\n\n  @ViewChildren('li')\n  public menuItemElements!: QueryList<ElementRef>;\n\n  public autoFocus?: boolean = false;\n  public useBootstrap4?: boolean = false;\n  private _keyManager!: ActiveDescendantKeyManager<ContextMenuItemInterface>;\n  private subscription: Subscription = new Subscription();\n  constructor(\n    @Optional()\n    @Inject(CONTEXT_MENU_OPTIONS)\n    private options: IContextMenuOptions\n  ) {\n    if (options) {\n      this.autoFocus = options.autoFocus;\n      this.useBootstrap4 = options.useBootstrap4;\n    }\n  }\n\n  /**\n   * @internal\n   */\n  public ngOnInit(): void {\n    this.menuItems.forEach((menuItem) => {\n      menuItem.currentItem = this.item;\n    });\n    const queryList = new QueryList<ContextMenuItemInterface>();\n    queryList.reset(this.menuItems);\n    this._keyManager = new ActiveDescendantKeyManager<ContextMenuItemInterface>(\n      queryList\n    ).withWrap();\n  }\n\n  /**\n   * @internal\n   */\n  public ngAfterViewInit() {\n    if (this.autoFocus) {\n      setTimeout(() => this.focus());\n    }\n    this.overlay?.updatePosition();\n  }\n\n  /**\n   * @internal\n   */\n  public ngOnDestroy() {\n    this.subscription.unsubscribe();\n  }\n\n  public focus(): void {\n    if (this.autoFocus) {\n      this.menuElement.nativeElement.focus();\n    }\n  }\n\n  public stopEvent(event: MouseEvent) {\n    event.stopPropagation();\n  }\n\n  public isMenuItemEnabled(menuItem: ContextMenuItemInterface): boolean {\n    return this.evaluateIfFunction(menuItem && menuItem.enabled);\n  }\n\n  public isMenuItemVisible(menuItem: ContextMenuItemInterface): boolean {\n    return this.evaluateIfFunction(menuItem && menuItem.visible);\n  }\n\n  public evaluateIfFunction(value: any): any {\n    if (value instanceof Function) {\n      return value(this.item);\n    }\n    return value;\n  }\n\n  public isDisabled(link: ILinkConfig): boolean {\n    return !!link.enabled && !link.enabled(this.item);\n  }\n\n  @HostListener('window:keydown.ArrowDown', ['$event'])\n  @HostListener('window:keydown.ArrowUp', ['$event'])\n  public onKeyEvent(event: KeyboardEvent): void {\n    if (!this.isLeaf) {\n      return;\n    }\n    this._keyManager.onKeydown(event);\n  }\n\n  @HostListener('window:keydown.ArrowRight', ['$event'])\n  public keyboardOpenSubMenu(event: KeyboardEvent): void {\n    if (!this.isLeaf || this._keyManager.activeItemIndex === null) {\n      return;\n    }\n    this.cancelEvent(event);\n    const menuItem = this.menuItems[this._keyManager.activeItemIndex];\n    if (menuItem) {\n      this.onOpenSubMenu(menuItem, event);\n    }\n  }\n\n  @HostListener('window:keydown.Enter', ['$event'])\n  @HostListener('window:keydown.Space', ['$event'])\n  public keyboardMenuItemSelect(event: KeyboardEvent): void {\n    if (!this.isLeaf || this._keyManager.activeItemIndex === null) {\n      return;\n    }\n    this.cancelEvent(event);\n    const menuItem = this.menuItems[this._keyManager.activeItemIndex];\n    if (menuItem) {\n      this.onMenuItemSelect(menuItem, event);\n    }\n  }\n\n  @HostListener('window:keydown.Escape', ['$event'])\n  @HostListener('window:keydown.ArrowLeft', ['$event'])\n  public onCloseLeafMenu(event: KeyboardEvent): void {\n    if (!this.isLeaf) {\n      return;\n    }\n    this.cancelEvent(event);\n    this.closeLeafMenu.emit({\n      exceptRootMenu: event.keyCode === ARROW_LEFT_KEYCODE,\n      event,\n    });\n  }\n\n  @HostListener('document:click', ['$event'])\n  @HostListener('document:contextmenu', ['$event'])\n  public closeMenu(event: MouseEvent): void {\n    if (event.type === 'click' && event.button === 2) {\n      return;\n    }\n    this.closeAllMenus.emit({ event });\n  }\n\n  public onOpenSubMenu(\n    menuItem: ContextMenuItemInterface,\n    event: MouseEvent | KeyboardEvent\n  ): void {\n    if (this._keyManager.activeItemIndex === null) {\n      return;\n    }\n\n    const anchorElementRef =\n      this.menuItemElements.toArray()[this._keyManager.activeItemIndex];\n    const anchorElement = anchorElementRef && anchorElementRef.nativeElement;\n    this.openSubMenu.emit({\n      anchorElement,\n      contextMenu: menuItem.subMenu,\n      event,\n      item: this.item,\n      parentContextMenu: this,\n    });\n  }\n\n  public onMenuItemSelect(\n    menuItem: ContextMenuItemInterface,\n    event: MouseEvent | KeyboardEvent\n  ): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.onOpenSubMenu(menuItem, event);\n    if (!menuItem.subMenu && !menuItem.disabled) {\n      menuItem.callback(this.item, event);\n      this.execute.emit({ item: this.item, event: event, menuItem });\n    }\n  }\n\n  private cancelEvent(event?: KeyboardEvent): void {\n    if (!event || !event.target) {\n      return;\n    }\n\n    const target = event.target as HTMLElement;\n    if (\n      ['INPUT', 'TEXTAREA', 'SELECT'].indexOf(target.tagName) > -1 ||\n      target.isContentEditable\n    ) {\n      return;\n    }\n\n    event.preventDefault();\n    event.stopPropagation();\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Optional,\n  Output,\n  TemplateRef,\n} from '@angular/core';\nimport { ContextMenuItemInterface } from '../../context-menu-item.interface';\n\n@Directive({\n  selector: '[contextMenuItem]',\n})\nexport class ContextMenuItemDirective implements ContextMenuItemInterface {\n  @Input()\n  public subMenu: any;\n\n  @Input()\n  public divider = false;\n\n  @Input()\n  public enabled: boolean | ((item: any) => boolean) = true;\n\n  @Input()\n  public passive = false;\n\n  @Input()\n  public visible: boolean | ((item: any) => boolean) = true;\n\n  @Output()\n  public execute: EventEmitter<{\n    event: MouseEvent | KeyboardEvent;\n    item: any;\n  }> = new EventEmitter();\n\n  public currentItem: any;\n  public isActive = false;\n  public get disabled() {\n    return (\n      this.passive ||\n      this.divider ||\n      !this.evaluateIfFunction(this.enabled, this.currentItem)\n    );\n  }\n  constructor(\n    @Optional()\n    public template: TemplateRef<{ item: any }>,\n    public elementRef: ElementRef\n  ) {}\n\n  public evaluateIfFunction(value: any, item: any): any {\n    if (value instanceof Function) {\n      return value(item);\n    }\n    return value;\n  }\n\n  public setActiveStyles(): void {\n    this.isActive = true;\n  }\n  public setInactiveStyles(): void {\n    this.isActive = false;\n  }\n\n  public callback(item: any, $event: MouseEvent | KeyboardEvent): void {\n    if (!this.evaluateIfFunction(this.enabled, item)) {\n      return;\n    }\n    this.execute.emit({ event: $event, item });\n  }\n}\n","import { ContextMenuItem } from './context-menu-item';\n\nexport class ContextMenu {\n  items: Array<ContextMenuItem>;\n  menuClass = '';\n\n  constructor(props: { items: Array<ContextMenuItem>; menuClass: string }) {\n    this.items = props.items;\n    this.menuClass = props.menuClass;\n  }\n}\n","import {\n  Overlay,\n  OverlayRef,\n  ScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, ElementRef, Injectable, Inject, OnDestroy } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { ContextMenuContentComponent } from '../../components/context-menu-content/context-menu-content.component';\nimport { ContextMenuComponent } from '../../components/context-menu/context-menu.component';\nimport { IContextMenuOptions } from '../../context-menu.options';\nimport { CONTEXT_MENU_OPTIONS } from '../../context-menu.tokens';\nimport { ContextMenuItemInterface } from '../../context-menu-item.interface';\nimport { ContextMenu } from '../../context-menu';\n\nexport interface IContextMenuClickEvent {\n  anchorElement?: Element | EventTarget;\n  contextMenu?: ContextMenuComponent | ContextMenu;\n  event: MouseEvent | KeyboardEvent;\n  parentContextMenu?: ContextMenuContentComponent;\n  item: any;\n  activeMenuItemIndex?: number;\n}\nexport interface IContextMenuContext extends IContextMenuClickEvent {\n  menuItems: ContextMenuItemInterface[];\n  menuClass: string;\n}\nexport interface CloseLeafMenuEvent {\n  exceptRootMenu?: boolean;\n  event?: MouseEvent | KeyboardEvent;\n}\nexport interface OverlayRefWithContextMenu extends OverlayRef {\n  contextMenu?: ContextMenuContentComponent;\n}\n\nexport interface CancelContextMenuEvent {\n  eventType: 'cancel';\n  event?: MouseEvent | KeyboardEvent;\n}\nexport interface ExecuteContextMenuEvent {\n  eventType: 'execute';\n  event?: MouseEvent | KeyboardEvent;\n  item: any;\n  menuItem: ContextMenuItemInterface;\n}\nexport type CloseContextMenuEvent =\n  | ExecuteContextMenuEvent\n  | CancelContextMenuEvent;\n\n@Injectable()\nexport class ContextMenuService implements OnDestroy {\n  public isDestroyingLeafMenu = false;\n\n  public show: Subject<IContextMenuClickEvent> = new Subject();\n  public triggerClose: Subject<ContextMenuContentComponent> = new Subject();\n  public close: Subject<CloseContextMenuEvent> = new Subject();\n\n  private overlays: OverlayRef[] = [];\n  private fakeElement: {\n    width?: number;\n    height?: number;\n    x: number;\n    y: number;\n  } = {\n    height: 0,\n    width: 0,\n    x: 0,\n    y: 0,\n  };\n\n  constructor(\n    private overlay: Overlay,\n    private scrollStrategy: ScrollStrategyOptions,\n    @Inject(CONTEXT_MENU_OPTIONS) private options: IContextMenuOptions\n  ) {\n    this.show.asObservable().subscribe((event => {\n      if (event.contextMenu instanceof  ContextMenu) {\n        this.showWithoutComponent(event.contextMenu, event);\n      }\n    }));\n  }\n\n  public openContextMenu(context: IContextMenuContext): OverlayRefWithContextMenu {\n    const { anchorElement, event, parentContextMenu } = context;\n\n    if (!parentContextMenu) {\n      const mouseEvent = event as MouseEvent;\n      this.fakeElement = {\n        height: 0,\n        width: 0,\n        x: mouseEvent.clientX,\n        y: mouseEvent.clientY,\n      };\n      this.closeAllContextMenus({ eventType: 'cancel', event });\n      const positionStrategy = this.overlay\n        .position()\n        .flexibleConnectedTo(\n          anchorElement ? new ElementRef(anchorElement) : this.fakeElement\n        )\n        .withPositions([\n          {\n            originX: 'start',\n            originY: 'bottom',\n            overlayX: 'start',\n            overlayY: 'top',\n          },\n          {\n            originX: 'start',\n            originY: 'top',\n            overlayX: 'start',\n            overlayY: 'bottom',\n          },\n          {\n            originX: 'end',\n            originY: 'top',\n            overlayX: 'start',\n            overlayY: 'top',\n          },\n          {\n            originX: 'start',\n            originY: 'top',\n            overlayX: 'end',\n            overlayY: 'top',\n          },\n          {\n            originX: 'end',\n            originY: 'center',\n            overlayX: 'start',\n            overlayY: 'center',\n          },\n          {\n            originX: 'start',\n            originY: 'center',\n            overlayX: 'end',\n            overlayY: 'center',\n          },\n        ]);\n      this.overlays = [\n        this.overlay.create({\n          positionStrategy,\n          panelClass: 'ngx-contextmenu',\n          scrollStrategy: this.scrollStrategy.close(),\n          hasBackdrop: this.options.useBackdrop,\n          backdropClass: this.options.backdropClass === undefined ? '' :  this.options.backdropClass,\n        }),\n      ];\n      this.attachContextMenu(this.overlays[0], context);\n      return this.overlays[0];\n    } else {\n      const positionStrategy = this.overlay\n        .position()\n        .flexibleConnectedTo(\n          new ElementRef(\n            event instanceof MouseEvent ? event.target : anchorElement\n          )\n        )\n        .withPositions([\n          {\n            originX: 'end',\n            originY: 'top',\n            overlayX: 'start',\n            overlayY: 'top',\n          },\n          {\n            originX: 'start',\n            originY: 'top',\n            overlayX: 'end',\n            overlayY: 'top',\n          },\n          {\n            originX: 'end',\n            originY: 'bottom',\n            overlayX: 'start',\n            overlayY: 'bottom',\n          },\n          {\n            originX: 'start',\n            originY: 'bottom',\n            overlayX: 'end',\n            overlayY: 'bottom',\n          },\n        ]);\n      const newOverlay = this.overlay.create({\n        positionStrategy,\n        panelClass: 'ngx-contextmenu',\n        scrollStrategy: this.scrollStrategy.close(),\n        hasBackdrop: false,\n      });\n      this.destroySubMenus(parentContextMenu);\n      this.overlays = this.overlays.concat(newOverlay);\n      this.attachContextMenu(newOverlay, context);\n      return newOverlay;\n    }\n  }\n\n  public attachContextMenu(\n    overlayRef: OverlayRef,\n    context: IContextMenuContext\n  ): void {\n    const { event, item, menuItems, menuClass } = context;\n    const contextMenuContentRef = overlayRef.attach(\n      new ComponentPortal(ContextMenuContentComponent)\n    );\n    contextMenuContentRef.instance.event = event;\n    contextMenuContentRef.instance.item = item;\n    contextMenuContentRef.instance.menuItems = menuItems;\n    contextMenuContentRef.instance.overlay = overlayRef;\n    contextMenuContentRef.instance.isLeaf = true;\n    contextMenuContentRef.instance.menuClass = menuClass;\n    (<OverlayRefWithContextMenu>overlayRef).contextMenu =\n      contextMenuContentRef.instance;\n\n    const subscriptions: Subscription = new Subscription();\n    subscriptions.add(\n      contextMenuContentRef.instance.execute\n        .asObservable()\n        .subscribe((executeEvent) =>\n          this.closeAllContextMenus({ eventType: 'execute', ...executeEvent })\n        )\n    );\n    subscriptions.add(\n      contextMenuContentRef.instance.closeAllMenus\n        .asObservable()\n        .subscribe((closeAllEvent) =>\n          this.closeAllContextMenus({ eventType: 'cancel', ...closeAllEvent })\n        )\n    );\n    subscriptions.add(\n      contextMenuContentRef.instance.closeLeafMenu\n        .asObservable()\n        .subscribe((closeLeafMenuEvent) =>\n          this.destroyLeafMenu(closeLeafMenuEvent)\n        )\n    );\n    subscriptions.add(\n      contextMenuContentRef.instance.openSubMenu\n        .asObservable()\n        .subscribe((subMenuEvent: IContextMenuClickEvent) => {\n          this.destroySubMenus(contextMenuContentRef.instance);\n          if (!subMenuEvent.contextMenu) {\n            contextMenuContentRef.instance.isLeaf = true;\n            return;\n          }\n          contextMenuContentRef.instance.isLeaf = false;\n          this.show.next(subMenuEvent);\n        })\n    );\n    contextMenuContentRef.onDestroy(() => {\n      menuItems.forEach((menuItem) => (menuItem.isActive = false));\n      subscriptions.unsubscribe();\n    });\n    contextMenuContentRef.changeDetectorRef.detectChanges();\n  }\n\n  public closeAllContextMenus(closeEvent: CloseContextMenuEvent): void {\n    if (this.overlays) {\n      this.close.next(closeEvent);\n      this.overlays.forEach((overlay, index) => {\n        overlay.detach();\n        overlay.dispose();\n      });\n    }\n    this.overlays = [];\n  }\n\n  public getLastAttachedOverlay(): OverlayRefWithContextMenu {\n    let overlay: OverlayRef = this.overlays[this.overlays.length - 1];\n    while (this.overlays.length > 1 && overlay && !overlay.hasAttached()) {\n      overlay.detach();\n      overlay.dispose();\n      this.overlays = this.overlays.slice(0, -1);\n      overlay = this.overlays[this.overlays.length - 1];\n    }\n    return overlay;\n  }\n\n  public destroyLeafMenu({\n    exceptRootMenu,\n    event,\n  }: CloseLeafMenuEvent = {}): void {\n    if (this.isDestroyingLeafMenu) {\n      return;\n    }\n    this.isDestroyingLeafMenu = true;\n\n    setTimeout(() => {\n      const overlay = this.getLastAttachedOverlay();\n      if (this.overlays.length > 1 && overlay) {\n        overlay.detach();\n        overlay.dispose();\n      }\n      if (!exceptRootMenu && this.overlays.length > 0 && overlay) {\n        this.close.next({ eventType: 'cancel', event });\n        overlay.detach();\n        overlay.dispose();\n      }\n\n      const newLeaf = this.getLastAttachedOverlay();\n      if (newLeaf && newLeaf.contextMenu) {\n        newLeaf.contextMenu.isLeaf = true;\n      }\n\n      this.isDestroyingLeafMenu = false;\n    });\n  }\n\n  public destroySubMenus(contextMenu: ContextMenuContentComponent): void {\n    const overlay = contextMenu.overlay;\n    const index = this.overlays.indexOf(overlay);\n    this.overlays.slice(index + 1).forEach((subMenuOverlay) => {\n      subMenuOverlay.detach();\n      subMenuOverlay.dispose();\n    });\n  }\n\n  public isLeafMenu(contextMenuContent: ContextMenuContentComponent): boolean {\n    const overlay = this.getLastAttachedOverlay();\n    return contextMenuContent.overlay === overlay;\n  }\n\n  private showWithoutComponent(\n    contextMenu: ContextMenu,\n    event: IContextMenuClickEvent\n  ): void {\n    const ctx = this.openContextMenu({\n      ...event,\n      menuItems: contextMenu.items.filter((a) =>\n        this.evaluateIfFunction(a.visible, event.item)\n      ),\n      menuClass: contextMenu.menuClass,\n    });\n  }\n\n  private evaluateIfFunction(value: any, item: any): any {\n    if (value instanceof Function) {\n      return value(item);\n    }\n    return value;\n  }\n\n  ngOnDestroy(): void {\n    this.show.complete();\n  }\n}\n","import {\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { ContextMenuItemDirective } from '../../directives/context-menu-item/context-menu-item.directive';\nimport { IContextMenuOptions } from '../../context-menu.options';\nimport { CONTEXT_MENU_OPTIONS } from '../../context-menu.tokens';\nimport {\n  CloseContextMenuEvent,\n  ContextMenuService,\n  IContextMenuClickEvent,\n} from '../../services/context-menu/context-menu.service';\nimport { ContextMenuItemInterface } from '../../context-menu-item.interface';\n\nexport interface ILinkConfig {\n  click: (item: any, $event?: MouseEvent) => void;\n  enabled?: (item: any) => boolean;\n  html: (item: any) => string;\n}\nexport interface MouseLocation {\n  left?: string;\n  marginLeft?: string;\n  marginTop?: string;\n  top?: string;\n}\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  selector: 'context-menu',\n  styles: [\n    `\n      .cdk-overlay-container {\n        position: fixed;\n        z-index: 1000;\n        pointer-events: none;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n      }\n      .ngx-contextmenu.cdk-overlay-pane {\n        position: absolute;\n        pointer-events: auto;\n        box-sizing: border-box;\n      }\n    `,\n  ],\n  template: ``,\n})\nexport class ContextMenuComponent implements OnDestroy {\n  @Input()\n  public menuClass = '';\n\n  @Input()\n  public autoFocus = false;\n\n  @Input()\n  public useBootstrap4 = false;\n\n  @Input()\n  public disabled = false;\n\n  @Output()\n  public close: EventEmitter<CloseContextMenuEvent> = new EventEmitter();\n\n  @Output()\n  public open: EventEmitter<IContextMenuClickEvent> = new EventEmitter();\n\n  @ContentChildren(ContextMenuItemDirective)\n  public menuItems!: QueryList<ContextMenuItemInterface>;\n\n  @ViewChild('menu', { static: false })\n  public menuElement!: ElementRef;\n  public visibleMenuItems: ContextMenuItemInterface[] = [];\n  public links: ILinkConfig[] = [];\n  public item: any;\n  public event?: MouseEvent | KeyboardEvent;\n  private subscription: Subscription = new Subscription();\n\n  constructor(\n    private contextMenuService: ContextMenuService,\n    @Optional()\n    @Inject(CONTEXT_MENU_OPTIONS)\n    private options: IContextMenuOptions\n  ) {\n    if (this.options) {\n      this.autoFocus = this.options.autoFocus || false;\n      this.useBootstrap4 = this.options.useBootstrap4 || false;\n    }\n    this.subscription.add(\n      contextMenuService.show.subscribe((menuEvent) => {\n        this.onMenuEvent(menuEvent);\n      })\n    );\n  }\n\n  /**\n   * @internal\n   */\n  public ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public onMenuEvent(menuEvent: IContextMenuClickEvent): void {\n    if (this.disabled) {\n      return;\n    }\n    const { contextMenu, event, item } = menuEvent;\n    if (contextMenu && contextMenu !== this) {\n      return;\n    }\n    this.event = event;\n    this.item = item;\n    this.setVisibleMenuItems();\n    this.contextMenuService.openContextMenu({\n      ...menuEvent,\n      menuItems: this.visibleMenuItems,\n      menuClass: this.menuClass,\n    });\n    this.contextMenuService.close\n      .asObservable()\n      .pipe(first())\n      .subscribe((closeEvent) => this.close.emit(closeEvent));\n    this.open.next(menuEvent);\n  }\n\n  public isMenuItemVisible(menuItem: ContextMenuItemInterface): boolean {\n    return this.evaluateIfFunction(menuItem.visible);\n  }\n\n  public setVisibleMenuItems(): void {\n    this.visibleMenuItems = this.menuItems.filter((menuItem) =>\n      this.isMenuItemVisible(menuItem)\n    );\n  }\n\n  public evaluateIfFunction(value: any): any {\n    if (value instanceof Function) {\n      return value(this.item);\n    }\n    return value;\n  }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { ContextMenuComponent } from '../../components/context-menu/context-menu.component';\nimport { ContextMenuService } from '../../services/context-menu/context-menu.service';\n\n@Directive({\n  selector: '[contextMenu]',\n})\nexport class ContextMenuAttachDirective {\n  @Input()\n  public contextMenuSubject: any;\n\n  @Input()\n  public contextMenu?: ContextMenuComponent;\n\n  constructor(private contextMenuService: ContextMenuService) {}\n\n  @HostListener('contextmenu', ['$event'])\n  public onContextMenu(event: MouseEvent): void {\n    if (this.contextMenu && !this.contextMenu.disabled) {\n      this.contextMenuService.show.next({\n        contextMenu: this.contextMenu,\n        event,\n        item: this.contextMenuSubject,\n      });\n      event.preventDefault();\n      event.stopPropagation();\n    }\n  }\n}\n","import {\n  FullscreenOverlayContainer,\n  OverlayContainer,\n  OverlayModule,\n} from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ContextMenuContentComponent } from './components/context-menu-content/context-menu-content.component';\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\nimport { IContextMenuOptions } from './context-menu.options';\nimport { CONTEXT_MENU_OPTIONS } from './context-menu.tokens';\nimport { ContextMenuItemDirective } from './directives/context-menu-item/context-menu-item.directive';\nimport { ContextMenuAttachDirective } from './directives/context-menu/context-menu.directive';\nimport { ContextMenuService } from './services/context-menu/context-menu.service';\n\n@NgModule({\n  declarations: [\n    ContextMenuAttachDirective,\n    ContextMenuComponent,\n    ContextMenuContentComponent,\n    ContextMenuItemDirective,\n  ],\n  exports: [\n    ContextMenuAttachDirective,\n    ContextMenuComponent,\n    ContextMenuItemDirective,\n  ],\n  imports: [CommonModule, OverlayModule],\n})\nexport class ContextMenuModule {\n  public static forRoot(\n    options?: IContextMenuOptions\n  ): ModuleWithProviders<ContextMenuModule> {\n    return {\n      ngModule: ContextMenuModule,\n      providers: [\n        ContextMenuService,\n        {\n          provide: CONTEXT_MENU_OPTIONS,\n          useValue: options,\n        },\n        { provide: OverlayContainer, useClass: FullscreenOverlayContainer },\n      ],\n    };\n  }\n}\n","import { ContextMenuItemInterface } from './context-menu-item.interface';\n\nexport class ContextMenuItem implements ContextMenuItemInterface {\n  currentItem: any = undefined;\n  divider = false;\n  enabled: boolean | ((item: any) => boolean) = true;\n  isActive: boolean = false;\n  passive = false;\n  subMenu: any = undefined;\n  visible: boolean | ((item: any) => boolean) = true;\n\n  executeFunction?: (item: any, event?: MouseEvent | KeyboardEvent) => void;\n\n  text?: string;\n\n  constructor(\n    props: Partial<\n      Pick<\n        ContextMenuItem,\n        | 'divider'\n        | 'enabled'\n        | 'passive'\n        | 'subMenu'\n        | 'visible'\n        | 'text'\n        | 'executeFunction'\n      >\n    >\n  ) {\n    if (props.divider !== undefined) {\n      this.divider = props.divider;\n    }\n    if (props.enabled !== undefined) {\n      this.enabled = props.enabled;\n    }\n    if (props.passive !== undefined) {\n      this.passive = props.passive;\n    }\n    if (props.subMenu !== undefined) {\n      this.subMenu = props.subMenu;\n    }\n    if (props.visible !== undefined) {\n      this.visible = props.visible;\n    }\n    if (props.text !== undefined) {\n      this.text = props.text;\n    }\n    if (props.executeFunction !== undefined) {\n      this.executeFunction = props.executeFunction;\n    }\n  }\n\n  get disabled() {\n    return (\n      this.passive ||\n      this.divider ||\n      !this.evaluateIfFunction(this.enabled, this.currentItem)\n    );\n  }\n\n  public evaluateIfFunction(value: any, item: any): any {\n    if (value instanceof Function) {\n      return value(item);\n    }\n    return value;\n  }\n\n  callback(item: any, $event?: MouseEvent | KeyboardEvent): void {\n    if (!this.evaluateIfFunction(this.enabled, item)) {\n      return;\n    }\n    if (this.executeFunction) {\n      this.executeFunction(item, $event);\n    }\n  }\n\n  setActiveStyles(): void {\n    this.isActive = true;\n  }\n\n  setInactiveStyles(): void {\n    this.isActive = false;\n  }\n}\n","/*\n * Public API Surface of ngx-contextmenu\n */\n\nexport { ContextMenuModule } from './lib/ngx-contextmenu.module';\n/**\n * Components\n */\nexport * from './lib/components/context-menu/context-menu.component';\n/**\n * Directives\n */\nexport * from './lib/directives/context-menu-item/context-menu-item.directive';\nexport * from './lib/directives/context-menu/context-menu.directive';\n/**\n * Services\n */\nexport * from './lib/services/context-menu/context-menu.service';\n/**\n * Models\n */\nexport * from './lib/context-menu.options';\nexport * from './lib/context-menu';\nexport * from './lib/context-menu-item';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ContextMenuService"],"mappings":";;;;;;;;;;;AAEO,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAC,sBAAsB,CAAC;;AC+B9E,MAAM,kBAAkB,GAAG,EAAE,CAAC;MA+EjB,2BAA2B,CAAA;AAoDtC,IAAA,WAAA,CAGU,OAA4B,EAAA;QAA5B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAnD/B,IAAS,CAAA,SAAA,GAA+B,EAAE,CAAC;QAkB3C,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAGf,QAAA,IAAA,CAAA,OAAO,GAIT,IAAI,YAAY,EAAE,CAAC;AAGjB,QAAA,IAAA,CAAA,WAAW,GAAyC,IAAI,YAAY,EAAE,CAAC;AAGvE,QAAA,IAAA,CAAA,aAAa,GAAqC,IAAI,YAAY,EAAE,CAAC;AAGrE,QAAA,IAAA,CAAA,aAAa,GAEf,IAAI,YAAY,EAAE,CAAC;QAQjB,IAAS,CAAA,SAAA,GAAa,KAAK,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAa,KAAK,CAAC;AAE/B,QAAA,IAAA,CAAA,YAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;QAMtD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;SAC5C;KACF;AAED;;AAEG;IACI,QAAQ,GAAA;QACb,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAClC,YAAA,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,EAA4B,CAAC;AAC5D,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,0BAA0B,CAC/C,SAAS,CACV,CAAC,QAAQ,EAAE,CAAC;KACd;AAED;;AAEG;IACI,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAChC;AACD,QAAA,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;KAChC;AAED;;AAEG;IACI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACxC;KACF;AAEM,IAAA,SAAS,CAAC,KAAiB,EAAA;QAChC,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;AAEM,IAAA,iBAAiB,CAAC,QAAkC,EAAA;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9D;AAEM,IAAA,iBAAiB,CAAC,QAAkC,EAAA;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9D;AAEM,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,KAAK,YAAY,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,UAAU,CAAC,IAAiB,EAAA;AACjC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnD;AAIM,IAAA,UAAU,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACnC;AAGM,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,IAAI,EAAE;YAC7D,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACrC;KACF;AAIM,IAAA,sBAAsB,CAAC,KAAoB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,IAAI,EAAE;YAC7D,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACxC;KACF;AAIM,IAAA,eAAe,CAAC,KAAoB,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACtB,YAAA,cAAc,EAAE,KAAK,CAAC,OAAO,KAAK,kBAAkB;YACpD,KAAK;AACN,SAAA,CAAC,CAAC;KACJ;AAIM,IAAA,SAAS,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACpC;IAEM,aAAa,CAClB,QAAkC,EAClC,KAAiC,EAAA;QAEjC,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,IAAI,EAAE;YAC7C,OAAO;SACR;AAED,QAAA,MAAM,gBAAgB,GACpB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACpE,QAAA,MAAM,aAAa,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,aAAa,CAAC;AACzE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,aAAa;YACb,WAAW,EAAE,QAAQ,CAAC,OAAO;YAC7B,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,iBAAiB,EAAE,IAAI;AACxB,SAAA,CAAC,CAAC;KACJ;IAEM,gBAAgB,CACrB,QAAkC,EAClC,KAAiC,EAAA;QAEjC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SAChE;KACF;AAEO,IAAA,WAAW,CAAC,KAAqB,EAAA;QACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3B,OAAO;SACR;AAED,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,QAAA,IACE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,CAAC,iBAAiB,EACxB;YACA,OAAO;SACR;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;AAnOU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAsD5B,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtDnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EA3D5B,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,gCAAA,EAAA,sBAAA,EAAA,gCAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,CAAA,IAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBA7EvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAiBtB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,CAAA;;0BAuDE,QAAQ;;0BACR,MAAM;2BAAC,oBAAoB,CAAA;yCAlDvB,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,iBAAiB,EAAA,CAAA;sBADvB,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,MAAM;gBAQA,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAIA,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAIA,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAMA,WAAW,EAAA,CAAA;sBADjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI5B,gBAAgB,EAAA,CAAA;sBADtB,YAAY;uBAAC,IAAI,CAAA;gBAgFX,UAAU,EAAA,CAAA;sBAFhB,YAAY;uBAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBACnD,YAAY;uBAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAS3C,mBAAmB,EAAA,CAAA;sBADzB,YAAY;uBAAC,2BAA2B,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAc9C,sBAAsB,EAAA,CAAA;sBAF5B,YAAY;uBAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAC/C,YAAY;uBAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAczC,eAAe,EAAA,CAAA;sBAFrB,YAAY;uBAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAChD,YAAY;uBAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAc7C,SAAS,EAAA,CAAA;sBAFf,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBACzC,YAAY;uBAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC7QrC,wBAAwB,CAAA;AAwBnC,IAAA,IAAW,QAAQ,GAAA;QACjB,QACE,IAAI,CAAC,OAAO;AACZ,YAAA,IAAI,CAAC,OAAO;AACZ,YAAA,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EACxD;KACH;IACD,WAES,CAAA,QAAoC,EACpC,UAAsB,EAAA;QADtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA4B;QACpC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QA7BxB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAGhB,IAAO,CAAA,OAAA,GAAuC,IAAI,CAAC;QAGnD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAGhB,IAAO,CAAA,OAAA,GAAuC,IAAI,CAAC;AAGnD,QAAA,IAAA,CAAA,OAAO,GAGT,IAAI,YAAY,EAAE,CAAC;QAGjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAYpB;IAEG,kBAAkB,CAAC,KAAU,EAAE,IAAS,EAAA;AAC7C,QAAA,IAAI,KAAK,YAAY,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;IACM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;IAEM,QAAQ,CAAC,IAAS,EAAE,MAAkC,EAAA;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChD,OAAO;SACR;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5C;8GAxDU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;;0BAiCI,QAAQ;kEA9BJ,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,MAAM;;;MC5BI,WAAW,CAAA;AAItB,IAAA,WAAA,CAAY,KAA2D,EAAA;QAFvE,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAGb,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;KAClC;AACF;;MCwCY,kBAAkB,CAAA;AAoB7B,IAAA,WAAA,CACU,OAAgB,EAChB,cAAqC,EACP,OAA4B,EAAA;QAF1D,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAuB;QACP,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAtB7D,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAE7B,QAAA,IAAA,CAAA,IAAI,GAAoC,IAAI,OAAO,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,YAAY,GAAyC,IAAI,OAAO,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,KAAK,GAAmC,IAAI,OAAO,EAAE,CAAC;QAErD,IAAQ,CAAA,QAAA,GAAiB,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAKf;AACF,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;SACL,CAAC;QAOA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,KAAK,IAAG;AAC1C,YAAA,IAAI,KAAK,CAAC,WAAW,YAAa,WAAW,EAAE;gBAC7C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACrD;SACF,EAAE,CAAC;KACL;AAEM,IAAA,eAAe,CAAC,OAA4B,EAAA;QACjD,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAE5D,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,UAAU,GAAG,KAAmB,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG;AACjB,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,CAAC;gBACR,CAAC,EAAE,UAAU,CAAC,OAAO;gBACrB,CAAC,EAAE,UAAU,CAAC,OAAO;aACtB,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1D,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;AAClC,iBAAA,QAAQ,EAAE;AACV,iBAAA,mBAAmB,CAClB,aAAa,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CACjE;AACA,iBAAA,aAAa,CAAC;AACb,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACF,aAAA,CAAC,CAAC;YACL,IAAI,CAAC,QAAQ,GAAG;AACd,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAClB,gBAAgB;AAChB,oBAAA,UAAU,EAAE,iBAAiB;AAC7B,oBAAA,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3C,oBAAA,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;AACrC,oBAAA,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,GAAG,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,aAAa;iBAC3F,CAAC;aACH,CAAC;AACF,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzB;aAAM;AACL,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;AAClC,iBAAA,QAAQ,EAAE;AACV,iBAAA,mBAAmB,CAClB,IAAI,UAAU,CACZ,KAAK,YAAY,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,aAAa,CAC3D,CACF;AACA,iBAAA,aAAa,CAAC;AACb,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACF,aAAA,CAAC,CAAC;AACL,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrC,gBAAgB;AAChB,gBAAA,UAAU,EAAE,iBAAiB;AAC7B,gBAAA,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3C,gBAAA,WAAW,EAAE,KAAK;AACnB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5C,YAAA,OAAO,UAAU,CAAC;SACnB;KACF;IAEM,iBAAiB,CACtB,UAAsB,EACtB,OAA4B,EAAA;QAE5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;AACtD,QAAA,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAC7C,IAAI,eAAe,CAAC,2BAA2B,CAAC,CACjD,CAAC;AACF,QAAA,qBAAqB,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAC7C,QAAA,qBAAqB,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAC3C,QAAA,qBAAqB,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;AACrD,QAAA,qBAAqB,CAAC,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC;AACpD,QAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,QAAA,qBAAqB,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;AACzB,QAAA,UAAW,CAAC,WAAW;YACjD,qBAAqB,CAAC,QAAQ,CAAC;AAEjC,QAAA,MAAM,aAAa,GAAiB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,aAAa,CAAC,GAAG,CACf,qBAAqB,CAAC,QAAQ,CAAC,OAAO;AACnC,aAAA,YAAY,EAAE;aACd,SAAS,CAAC,CAAC,YAAY,KACtB,IAAI,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CACrE,CACJ,CAAC;AACF,QAAA,aAAa,CAAC,GAAG,CACf,qBAAqB,CAAC,QAAQ,CAAC,aAAa;AACzC,aAAA,YAAY,EAAE;aACd,SAAS,CAAC,CAAC,aAAa,KACvB,IAAI,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC,CACrE,CACJ,CAAC;AACF,QAAA,aAAa,CAAC,GAAG,CACf,qBAAqB,CAAC,QAAQ,CAAC,aAAa;AACzC,aAAA,YAAY,EAAE;AACd,aAAA,SAAS,CAAC,CAAC,kBAAkB,KAC5B,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CACzC,CACJ,CAAC;AACF,QAAA,aAAa,CAAC,GAAG,CACf,qBAAqB,CAAC,QAAQ,CAAC,WAAW;AACvC,aAAA,YAAY,EAAE;AACd,aAAA,SAAS,CAAC,CAAC,YAAoC,KAAI;AAClD,YAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC7B,gBAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC7C,OAAO;aACR;AACD,YAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9B,CAAC,CACL,CAAC;AACF,QAAA,qBAAqB,CAAC,SAAS,CAAC,MAAK;AACnC,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;YAC7D,aAAa,CAAC,WAAW,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;AACH,QAAA,qBAAqB,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACzD;AAEM,IAAA,oBAAoB,CAAC,UAAiC,EAAA;AAC3D,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;gBACvC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,OAAO,EAAE,CAAC;AACpB,aAAC,CAAC,CAAC;SACJ;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IAEM,sBAAsB,GAAA;AAC3B,QAAA,IAAI,OAAO,GAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClE,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;YACpE,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,OAAO,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACnD;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAEM,IAAA,eAAe,CAAC,EACrB,cAAc,EACd,KAAK,MACiB,EAAE,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE;gBACvC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,OAAO,EAAE,CAAC;aACnB;AACD,YAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE;AAC1D,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChD,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,OAAO,EAAE,CAAC;aACnB;AAED,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9C,YAAA,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE;AAClC,gBAAA,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;aACnC;AAED,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACpC,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,eAAe,CAAC,WAAwC,EAAA;AAC7D,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,KAAI;YACxD,cAAc,CAAC,MAAM,EAAE,CAAC;YACxB,cAAc,CAAC,OAAO,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,UAAU,CAAC,kBAA+C,EAAA;AAC/D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9C,QAAA,OAAO,kBAAkB,CAAC,OAAO,KAAK,OAAO,CAAC;KAC/C;IAEO,oBAAoB,CAC1B,WAAwB,EACxB,KAA6B,EAAA;AAE7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC;AAC/B,YAAA,GAAG,KAAK;YACR,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KACpC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC/C;YACD,SAAS,EAAE,WAAW,CAAC,SAAS;AACjC,SAAA,CAAC,CAAC;KACJ;IAEO,kBAAkB,CAAC,KAAU,EAAE,IAAS,EAAA;AAC9C,QAAA,IAAI,KAAK,YAAY,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACtB;AApSU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kFAuBnB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAvBnB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;0BAwBN,MAAM;2BAAC,oBAAoB,CAAA;;;MCZnB,oBAAoB,CAAA;IA8B/B,WACU,CAAA,kBAAsC,EAGtC,OAA4B,EAAA;QAH5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAGtC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAhC/B,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QAGf,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAGlB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAGtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAGjB,QAAA,IAAA,CAAA,KAAK,GAAwC,IAAI,YAAY,EAAE,CAAC;AAGhE,QAAA,IAAA,CAAA,IAAI,GAAyC,IAAI,YAAY,EAAE,CAAC;QAOhE,IAAgB,CAAA,gBAAA,GAA+B,EAAE,CAAC;QAClD,IAAK,CAAA,KAAA,GAAkB,EAAE,CAAC;AAGzB,QAAA,IAAA,CAAA,YAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;AAQtD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;YACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;SAC1D;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,KAAI;AAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SAC7B,CAAC,CACH,CAAC;KACH;AAED;;AAEG;IACI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;AAEM,IAAA,WAAW,CAAC,SAAiC,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;AAC/C,QAAA,IAAI,WAAW,IAAI,WAAW,KAAK,IAAI,EAAE;YACvC,OAAO;SACR;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;AACtC,YAAA,GAAG,SAAS;YACZ,SAAS,EAAE,IAAI,CAAC,gBAAgB;YAChC,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,KAAK;AAC1B,aAAA,YAAY,EAAE;aACd,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,aAAA,SAAS,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,QAAkC,EAAA;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAClD;IAEM,mBAAmB,GAAA;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KACrD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CACjC,CAAC;KACH;AAEM,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,KAAK,YAAY,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AA5FU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iDAiCrB,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAjCnB,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAmBd,wBAAwB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArB/B,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6MAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAED,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvBhC,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC3B,QAAA,EAAA,cAAc,YAmBd,CAAE,CAAA,EAAA,MAAA,EAAA,CAAA,6MAAA,CAAA,EAAA,CAAA;;0BAkCT,QAAQ;;0BACR,MAAM;2BAAC,oBAAoB,CAAA;yCA/BvB,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,MAAM;gBAIA,IAAI,EAAA,CAAA;sBADV,MAAM;gBAIA,SAAS,EAAA,CAAA;sBADf,eAAe;uBAAC,wBAAwB,CAAA;gBAIlC,WAAW,EAAA,CAAA;sBADjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MC5EzB,0BAA0B,CAAA;AAOrC,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;AAGvD,IAAA,aAAa,CAAC,KAAiB,EAAA;QACpC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAClD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,kBAAkB;AAC9B,aAAA,CAAC,CAAC;YACH,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;8GApBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;oFAGQ,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAMC,aAAa,EAAA,CAAA;sBADnB,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCa5B,iBAAiB,CAAA;IACrB,OAAO,OAAO,CACnB,OAA6B,EAAA;QAE7B,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;gBACT,kBAAkB;AAClB,gBAAA;AACE,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,QAAQ,EAAE,OAAO;AAClB,iBAAA;AACD,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,0BAA0B,EAAE;AACpE,aAAA;SACF,CAAC;KACH;8GAfU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAZ1B,0BAA0B;YAC1B,oBAAoB;YACpB,2BAA2B;AAC3B,YAAA,wBAAwB,CAOhB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,aAJnC,0BAA0B;YAC1B,oBAAoB;YACpB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAIf,iBAAiB,EAAA,OAAA,EAAA,CAFlB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,oBAAoB;wBACpB,2BAA2B;wBAC3B,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,oBAAoB;wBACpB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;AACvC,iBAAA,CAAA;;;MC1BY,eAAe,CAAA;AAa1B,IAAA,WAAA,CACE,KAWC,EAAA;QAxBH,IAAW,CAAA,WAAA,GAAQ,SAAS,CAAC;QAC7B,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAO,CAAA,OAAA,GAAuC,IAAI,CAAC;QACnD,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAO,CAAA,OAAA,GAAQ,SAAS,CAAC;QACzB,IAAO,CAAA,OAAA,GAAuC,IAAI,CAAC;AAoBjD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;AACD,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;SACxB;AACD,QAAA,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;SAC9C;KACF;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,QACE,IAAI,CAAC,OAAO;AACZ,YAAA,IAAI,CAAC,OAAO;AACZ,YAAA,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EACxD;KACH;IAEM,kBAAkB,CAAC,KAAU,EAAE,IAAS,EAAA;AAC7C,QAAA,IAAI,KAAK,YAAY,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,QAAQ,CAAC,IAAS,EAAE,MAAmC,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChD,OAAO;SACR;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACpC;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AACF;;ACnFD;;AAEG;;ACFH;;AAEG;;;;"}