{"version":3,"file":"cisstech-nge-ui-list.mjs","sources":["../../../projects/nge/ui/list/src/list-item-article-action/list-item-article-action.component.ts","../../../projects/nge/ui/list/src/list-item-article-action/list-item-article-action.component.html","../../../projects/nge/ui/list/src/list-item-article/list-item-article.component.ts","../../../projects/nge/ui/list/src/list-item-article/list-item-article.component.html","../../../projects/nge/ui/list/src/list-template.component.ts","../../../projects/nge/ui/list/src/list.component.ts","../../../projects/nge/ui/list/src/list.component.html","../../../projects/nge/ui/list/src/list.module.ts","../../../projects/nge/ui/list/cisstech-nge-ui-list.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, HostBinding, HostListener, Input, TemplateRef } from '@angular/core'\n\n@Component({\n  selector: 'ui-list-item-article-action',\n  templateUrl: './list-item-article-action.component.html',\n  styleUrls: ['./list-item-article-action.component.scss'],\n})\nexport class ListItemArticleActionComponent {\n  @Input() actionTitle?: string | number | boolean | TemplateRef<any> | null\n\n  @Input()\n  @HostBinding('class.clickable')\n  clickable = false\n\n  @HostListener('click', ['$event'])\n  protected onClick($event: Event) {\n    // Prevent event propagation to parent clickable elements (like the article item)\n    $event.stopPropagation()\n  }\n}\n","<div class=\"list-item-article-action-icon\">\n  <ng-content></ng-content>\n</div>\n<div class=\"list-item-article-action-title\">\n  @if (actionTitle|istemplate) {\n    <ng-container *ngTemplateOutlet=\"actionTitle\" />\n  } @else {\n    {{actionTitle}}\n  }\n</div>\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core'\nimport { ListItemTag } from '../list'\n\n@Component({\n  selector: 'ui-list-item-article',\n  templateUrl: './list-item-article.component.html',\n  styleUrls: ['./list-item-article.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListItemArticleComponent implements OnInit {\n  @Input() articleTitle?: string | TemplateRef<any>\n  @Input() articleUrl?: string | any[]\n  @Input() articleBannerUrl?: string\n  @Input() articleBannerAlt?: string\n  @Input() articleIconUrl?: string\n  @Input() articleIconAlt?: string\n  @Input() articleDescription?: string | TemplateRef<any>\n  @Input() articleTags: string[] | ListItemTag[] = []\n\n  @Input() articleIconTemplate?: TemplateRef<any>\n  @Input() articleTagIconTemplate?: TemplateRef<{ text: string; data?: any }>\n\n  @Output() didClick = new EventEmitter()\n  @Output() didClickTag = new EventEmitter<string>()\n  @Output() didClickTitle = new EventEmitter()\n  @Output() didClickTagItem = new EventEmitter<ListItemTag>()\n\n  protected isClickable = false\n  protected isTagsClickable = false\n  protected isTitleClickable = false\n\n  ngOnInit(): void {\n    this.isClickable = this.didClick.observed\n    this.isTitleClickable = this.didClickTitle.observed\n    this.isTagsClickable = this.didClickTag.observed || this.didClickTagItem.observed\n  }\n\n  protected onClickHost() {\n    this.didClick.emit()\n  }\n\n  protected onClickTitle($event: Event) {\n    $event.stopPropagation()\n    $event.preventDefault()\n    this.didClickTitle.emit()\n  }\n\n  protected onClickTag($event: Event, tag: string) {\n    $event.stopPropagation()\n    $event.preventDefault()\n    this.didClickTag.emit(tag)\n  }\n\n  protected onClickTagItem($event: Event, tag: ListItemTag) {\n    $event.stopPropagation()\n    $event.preventDefault()\n    this.didClickTagItem.emit(tag)\n  }\n\n}\n","<article\n  [class.bordered]=\"!articleBannerUrl\"\n  [class.clickable]=\"isClickable\"\n  [class.hoverable]=\"isClickable || isTitleClickable\"\n  (click)=\"onClickHost()\"\n>\n  @if (articleBannerUrl) {\n    <img class=\"article-banner\" [src]=\"articleBannerUrl\" [alt]=\"articleBannerAlt\" />\n  }\n  <div class=\"article-content-wrapper\">\n    <header class=\"article-header\">\n      <div class=\"article-image\">\n        @if (articleIconTemplate) {\n          <ng-container *ngTemplateOutlet=\"articleIconTemplate\"></ng-container>\n        } @else if (articleIconUrl) {\n          <img [src]=\"articleIconUrl\" [alt]=\"articleIconAlt\" />\n        }\n      </div>\n      @if (articleTitle | istemplate) {\n        <h3\n          class=\"article-title\"\n          [class.clickable]=\"isTitleClickable\"\n          [routerLink]=\"articleUrl\"\n          (click)=\"onClickTitle($event)\"\n        >\n          <ng-container *ngTemplateOutlet=\"articleTitle\" />\n        </h3>\n      } @else {\n        <div\n          class=\"article-title\"\n          [class.clickable]=\"isTitleClickable\"\n          [routerLink]=\"articleUrl\"\n          (click)=\"onClickTitle($event)\"\n        >\n          {{ articleTitle }}\n        </div>\n      }\n    </header>\n    <p class=\"article-description\">\n      @if (articleDescription | istemplate) {\n        <ng-container *ngTemplateOutlet=\"articleDescription\" />\n      } @else {\n        {{ articleDescription }}\n      }\n    </p>\n    @if (articleTags && articleTags.length) {\n      <div class=\"article-tags\" [class.clickable]=\"isTagsClickable\">\n        @for (tag of articleTags; track $index) {\n          @if (tag | isstring) {\n            <div class=\"article-tag\" (click)=\"onClickTag($event, tag)\">\n              @if (articleTagIconTemplate) {\n                <div class=\"article-tag-icon\">\n                  <ng-container *ngTemplateOutlet=\"articleTagIconTemplate; context: { text: tag }\" />\n                </div>\n              }\n              {{ tag }}\n            </div>\n          } @else {\n            <div\n              class=\"article-tag\"\n              [style.--article-tag-background-color]=\"tag.color ?? '#5d7092'\"\n              (click)=\"onClickTagItem($event, tag)\"\n            >\n              @if (articleTagIconTemplate) {\n                <div class=\"article-tag-icon\">\n                  <ng-container\n                    *ngTemplateOutlet=\"articleTagIconTemplate; context: { text: tag.text, data: tag.data }\"\n                  />\n                </div>\n              }\n              {{ tag.text }}\n            </div>\n          }\n        }\n      </div>\n    }\n    <footer class=\"article-footer\">\n      <ng-content></ng-content>\n    </footer>\n  </div>\n</article>\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core'\nimport { ListContext, ListTemplateSlots } from './list'\n\n@Component({\n  selector: 'ui-list-template',\n  template: ``,\n})\nexport class ListTemplateComponent<T> {\n  @ContentChild(TemplateRef)\n  template?: TemplateRef<ListContext<T>>\n\n  @Input()\n  slot?: ListTemplateSlots\n\n  @Input()\n  when?: (context: T | ListContext<T>) => boolean\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n  AfterContentInit,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  QueryList,\n  TemplateRef,\n} from '@angular/core'\nimport { ListContext, ListTemplateSlots } from './list'\nimport { ListTemplateComponent } from './list-template.component'\n\n@Component({\n  selector: 'ui-list',\n  templateUrl: './list.component.html',\n  styleUrls: ['./list.component.scss'],\n})\nexport class ListComponent<T> implements OnChanges, AfterContentInit {\n  @ContentChildren(ListTemplateComponent)\n  templates!: QueryList<ListTemplateComponent<T>>\n\n  @Input()\n  idField!: string\n\n  @Input()\n  items: T[] = []\n\n  @Input()\n  trackBy?: string\n\n  @Input()\n  selectable = false\n\n  @Input()\n  filter?: string\n\n  @Input()\n  filterBy: string[] = []\n\n  @Input()\n  selections: T[] = []\n\n  @Input()\n  containerClass?: string\n\n  @Output()\n  selectionsChange = new EventEmitter<T[]>()\n\n  _selectionStates: Record<string, boolean> = {}\n  _noResultTemplate: TemplateRef<any> | null = null\n  _emptyStateTemplate: TemplateRef<any> | null = null\n\n  _empty = false\n\n  get hasSelection() {\n    return !!this.selections.length\n  }\n\n  protected get classes() {\n    if (!this.containerClass) {\n      return {}\n    }\n    return {\n      [this.containerClass]: true,\n    }\n  }\n\n  ngOnChanges() {\n    this._empty = !this.items?.length\n    setTimeout(() => {\n      this.checkSelections()\n    }, 300)\n  }\n\n  ngAfterContentInit() {\n    this._noResultTemplate = this.templates.find((e) => e.slot === 'noresult')?.template || null\n    this._emptyStateTemplate = this.templates.find((e) => e.slot === 'empty')?.template || null\n  }\n\n  unselect(item: T) {\n    const id = (item as any)[this.idField]\n    this.selections = this.selections.filter((e) => e !== item)\n    this._selectionStates[id] = false\n    this.selectionsChange.emit(this.selections)\n  }\n\n  _trackBy(index: number, item: any): any {\n    if (this.trackBy) {\n      return item[this.trackBy] ?? index\n    }\n    return index\n  }\n\n  _template(context: T | ListContext<T>, slot: ListTemplateSlots): TemplateRef<any> | null {\n    return (\n      this.templates.find((e) => {\n        if (e.slot === slot && e.when) {\n          return e.when(context)\n        }\n        return false\n      })?.template ||\n      this.templates.find((e) => e.slot === slot && !e.when)?.template ||\n      null\n    )\n  }\n\n  _isSelected(item: T): boolean {\n    return !!this.selections.find((e) => e === item)\n  }\n\n  _toggleSelection(item: T): void {\n    for (let i = 0; i < this.selections.length; i++) {\n      if (this.equals(this.selections[i], item)) {\n        this.selections.splice(i, 1)\n        this.selectionsChange.emit(this.selections)\n        return\n      }\n    }\n    this.selections.push(item)\n    this.selectionsChange.emit(this.selections)\n  }\n\n  private equals(a: any, b: any) {\n    return a[this.idField] === b[this.idField]\n  }\n\n  private checkSelections() {\n    this.selections = this.selections.filter((selection: any) => {\n      if (this.items.find((item) => this.equals(item, selection))) {\n        return true\n      }\n      delete this._selectionStates[selection[this.idField]]\n      return false\n    })\n    this.selectionsChange.emit(this.selections)\n  }\n}\n","@if (selectable) {\n  @for (item of selections; track _trackBy($index, item); let i = $index) {\n    <ng-container *ngTemplateOutlet=\"_template(item, 'selection'); context: { item: item }\"></ng-container>\n  }\n}\n\n<!-- TEMPLATE FOR EMPTY STATE -->\n<ng-template #emptyStateTemplate>\n  @if (!filter?.trim()) {\n    <ng-container *ngTemplateOutlet=\"_emptyStateTemplate\"></ng-container>\n  } @else {\n    <ng-container *ngTemplateOutlet=\"_noResultTemplate; context: { $implicit: filter }\"></ng-container>\n  }\n</ng-template>\n\n@if (filter ? (items | filterBy: filterBy : filter) : items; as filtered) {\n  @if (filtered.length) {\n    <ul class=\"ui-list-container\" [ngClass]=\"classes\">\n      @for (\n        item of filtered;\n        track _trackBy($index, item);\n        let index = $index;\n        let first = $first;\n        let last = $last;\n        let even = $even;\n        let odd = $odd\n      ) {\n        @let context = { item: item, items: filtered, odd: odd, last: last, even: even, index: index, first: first };\n\n        <div class=\"ui-list-item\">\n          <!-- HEADER -->\n          @if (_template(context, 'header'); as header) {\n            <li class=\"ui-list-item-header\">\n              <ng-container *ngTemplateOutlet=\"header; context: context\"></ng-container>\n            </li>\n          }\n\n          <!-- ROW -->\n          @if (_template(context, 'row'); as row) {\n            <li class=\"ui-list-item-content\" [class.selectable]=\"selectable\">\n              <ng-container *ngTemplateOutlet=\"row; context: context\"></ng-container>\n\n              <!-- CHECKBOX -->\n              @if (selectable) {\n                <label class=\"ui-list-label\">\n                  <input\n                    class=\"ui-list-label__checkbox\"\n                    type=\"checkbox\"\n                    [(ngModel)]=\"_selectionStates[$any(item)[idField]]\"\n                    (ngModelChange)=\"_toggleSelection(item)\"\n                  />\n                  <span class=\"ui-list-label__text\">\n                    <span class=\"ui-list-label__check\">\n                      <span class=\"ui-list-label__icon\">✓</span>\n                    </span>\n                  </span>\n                </label>\n              }\n            </li>\n          }\n        </div>\n      }\n    </ul>\n  } @else {\n    <ng-container *ngTemplateOutlet=\"emptyStateTemplate\"></ng-container>\n  }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { ScrollingModule } from '@angular/cdk/scrolling'\n\nimport { NgArrayPipesModule } from 'ngx-pipes'\n\nimport { IsStringPipe, IsTemplatePipe } from '@cisstech/nge/pipes'\nimport { ListItemArticleActionComponent } from './list-item-article-action/list-item-article-action.component'\nimport { ListItemArticleComponent } from './list-item-article/list-item-article.component'\nimport { ListTemplateComponent } from './list-template.component'\nimport { ListComponent } from './list.component'\n\n@NgModule({\n  imports: [CommonModule, FormsModule, RouterModule, ScrollingModule, IsTemplatePipe, IsStringPipe, NgArrayPipesModule],\n  exports: [ListComponent, ListTemplateComponent, ListItemArticleComponent, ListItemArticleActionComponent],\n  declarations: [ListComponent, ListTemplateComponent, ListItemArticleComponent, ListItemArticleActionComponent],\n})\nexport class NgeUiListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3"],"mappings":";;;;;;;;;;;;;;AAAA;MAQa,8BAA8B,CAAA;AAL3C,IAAA,WAAA,GAAA;QAUE,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;AAOlB,KAAA;AAJW,IAAA,OAAO,CAAC,MAAa,EAAA;;QAE7B,MAAM,CAAC,eAAe,EAAE,CAAA;KACzB;8GAXU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,6OCR3C,iRAWA,EAAA,MAAA,EAAA,CAAA,qbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,iRAAA,EAAA,MAAA,EAAA,CAAA,qbAAA,CAAA,EAAA,CAAA;8BAK9B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIN,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,iBAAiB,CAAA;gBAIpB,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEfnC;MAUa,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;QAcW,IAAW,CAAA,WAAA,GAA6B,EAAE,CAAA;AAKzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;AAC7B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAA;AACxC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAe,CAAA;QAEjD,IAAW,CAAA,WAAA,GAAG,KAAK,CAAA;QACnB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAA;QACvB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;AA8BnC,KAAA;IA5BC,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAA;AACnD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAA;KAClF;IAES,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;KACrB;AAES,IAAA,YAAY,CAAC,MAAa,EAAA;QAClC,MAAM,CAAC,eAAe,EAAE,CAAA;QACxB,MAAM,CAAC,cAAc,EAAE,CAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;KAC1B;IAES,UAAU,CAAC,MAAa,EAAE,GAAW,EAAA;QAC7C,MAAM,CAAC,eAAe,EAAE,CAAA;QACxB,MAAM,CAAC,cAAc,EAAE,CAAA;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC3B;IAES,cAAc,CAAC,MAAa,EAAE,GAAgB,EAAA;QACtD,MAAM,CAAC,eAAe,EAAE,CAAA;QACxB,MAAM,CAAC,cAAc,EAAE,CAAA;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC/B;8GAhDU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,ujBCVrC,2uFAiFA,EAAA,MAAA,EAAA,CAAA,wwCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDvEa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2uFAAA,EAAA,MAAA,EAAA,CAAA,wwCAAA,CAAA,EAAA,CAAA;8BAGtC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAEI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEnBI,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAClB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHf,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAED,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAE,CAAA;AACb,iBAAA,CAAA;8BAGC,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,WAAW,CAAA;gBAIzB,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;ACdR;MAoBa,aAAa,CAAA;AAL1B,IAAA,WAAA,GAAA;QAaE,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAA;QAMf,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAMlB,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAA;QAGvB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAA;AAMpB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAA;QAE1C,IAAgB,CAAA,gBAAA,GAA4B,EAAE,CAAA;QAC9C,IAAiB,CAAA,iBAAA,GAA4B,IAAI,CAAA;QACjD,IAAmB,CAAA,mBAAA,GAA4B,IAAI,CAAA;QAEnD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;AAoFf,KAAA;AAlFC,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;KAChC;AAED,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,EAAE,CAAA;SACV;QACD,OAAO;AACL,YAAA,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI;SAC5B,CAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAA;QACjC,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,eAAe,EAAE,CAAA;SACvB,EAAE,GAAG,CAAC,CAAA;KACR;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAA;QAC5F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAA;KAC5F;AAED,IAAA,QAAQ,CAAC,IAAO,EAAA;QACd,MAAM,EAAE,GAAI,IAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA;AAC3D,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;QACjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5C;IAED,QAAQ,CAAC,KAAa,EAAE,IAAS,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAA;SACnC;AACD,QAAA,OAAO,KAAK,CAAA;KACb;IAED,SAAS,CAAC,OAA2B,EAAE,IAAuB,EAAA;QAC5D,QACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;YACxB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;AAC7B,gBAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACvB;AACD,YAAA,OAAO,KAAK,CAAA;SACb,CAAC,EAAE,QAAQ;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ;AAChE,YAAA,IAAI,EACL;KACF;AAED,IAAA,WAAW,CAAC,IAAO,EAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA;KACjD;AAED,IAAA,gBAAgB,CAAC,IAAO,EAAA;AACtB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC3C,OAAM;aACP;SACF;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5C;IAEO,MAAM,CAAC,CAAM,EAAE,CAAM,EAAA;AAC3B,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAC3C;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAc,KAAI;YAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAC3D,gBAAA,OAAO,IAAI,CAAA;aACZ;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AACrD,YAAA,OAAO,KAAK,CAAA;AACd,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5C;8GAtHU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EACP,qBAAqB,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBxC,+4EAmEA,EAAA,MAAA,EAAA,CAAA,4kDAAA,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/Ca,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,+4EAAA,EAAA,MAAA,EAAA,CAAA,4kDAAA,CAAA,EAAA,CAAA;8BAMnB,SAAS,EAAA,CAAA;sBADR,eAAe;uBAAC,qBAAqB,CAAA;gBAItC,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ME5BI,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,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,eAAe,EAFX,YAAA,EAAA,CAAA,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,8BAA8B,CAFnG,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,CAC1G,EAAA,OAAA,EAAA,CAAA,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,8BAA8B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAG7F,eAAe,EAAA,OAAA,EAAA,CAJhB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAgC,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIzG,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,CAAC;oBACrH,OAAO,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,8BAA8B,CAAC;oBACzG,YAAY,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,8BAA8B,CAAC;AAC/G,iBAAA,CAAA;;;ACnBD;;AAEG;;;;"}