{"version":3,"file":"nativescript-nativescript-pager-angular.mjs","sources":["../../../../../packages/nativescript-pager/angular/pager-items-comp.ts","../../../../../packages/nativescript-pager/angular/index.ts","../../../../../packages/nativescript-pager/angular/nativescript-nativescript-pager-angular.ts"],"sourcesContent":["import {\n  AfterContentInit,\n  Component,\n  ContentChild,\n  Directive,\n  DoCheck,\n  ElementRef,\n  EmbeddedViewRef,\n  EventEmitter,\n  Host,\n  Inject,\n  InjectionToken,\n  Input,\n  IterableDiffer,\n  IterableDiffers,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ɵisListLikeIterable as isListLikeIterable,\n} from \"@angular/core\";\nimport { isIOS, KeyedTemplate, View } from \"@nativescript/core\";\nimport { EventData, LayoutBase, Template, Trace, profile, ObservableArray, ItemEventData,ItemsSource } from \"@nativescript/core\";\n\nimport {\n  getSingleViewRecursive,\n  isInvisibleNode,\n  registerElement,\n} from \"@nativescript/angular\";\n\nimport {\n  Pager,\n  PagerError,\n  PagerItem,\n  PagerLog,\n} from \"@triniwiz/nativescript-pager\";\n\nregisterElement(\"Pager\", () => Pager);\nregisterElement(\"PagerItem\", () => PagerItem);\n\nconst NG_VIEW = \"_ngViewRef\";\n\nexport interface PagerTemplatedItemsView {\n  items: any[] | ItemsSource;\n  itemTemplate: string | Template;\n  itemTemplates?: string | Array<KeyedTemplate>;\n\n  refresh(): void;\n\n  on(\n    event: \"itemLoading\",\n    callback: (args: ItemEventData) => void,\n    thisArg?: any\n  );\n\n  on(\n    event: \"itemDisposing\",\n    callback: (args: ItemEventData) => void,\n    thisArg?: any\n  );\n\n  off(\n    event: \"itemLoading\",\n    callback: (args: EventData) => void,\n    thisArg?: any\n  );\n\n  off(\n    event: \"itemDisposing\",\n    callback: (args: EventData) => void,\n    thisArg?: any\n  );\n}\n\nexport class ItemContext {\n  constructor(\n    public $implicit?: any,\n    public item?: any,\n    public index?: number,\n    public even?: boolean,\n    public odd?: boolean\n  ) { }\n}\n\nexport interface SetupItemViewArgs {\n  view: EmbeddedViewRef<any>;\n  data: any;\n  index: number;\n  context: ItemContext;\n}\n\n@Directive()\nexport abstract class TemplatedItemsComponent\n  implements DoCheck, OnDestroy, AfterContentInit {\n  public abstract get nativeElement(): Pager;\n\n  protected templatedItemsView: Pager;\n  protected _items: any;\n  protected _differ: IterableDiffer<KeyedTemplate>;\n  protected _templateMap: Map<string, KeyedTemplate>;\n  private _selectedIndex: number;\n  @ViewChild(\"loader\", { read: ViewContainerRef, static: false })\n  loader: ViewContainerRef;\n\n  @Output()\n  public setupItemView = new EventEmitter<SetupItemViewArgs>();\n\n  @ContentChild(TemplateRef, { static: false })\n  itemTemplateQuery: TemplateRef<ItemContext>;\n\n  itemTemplate: TemplateRef<ItemContext>;\n\n  @Input()\n  get items() {\n    return this._items;\n  }\n\n  set items(value: any) {\n    this._items = value;\n    let needDiffer = true;\n    if (value instanceof ObservableArray) {\n      needDiffer = false;\n    }\n    if (needDiffer && !this._differ && isListLikeIterable(value)) {\n      this._differ = this._iterableDiffers\n        .find(this._items)\n        .create((_index, item) => {\n          return item;\n        });\n    }\n\n    this.templatedItemsView.items = this._items;\n  }\n\n  @Input()\n  get selectedIndex(): number {\n    return this._selectedIndex;\n  }\n\n  set selectedIndex(value) {\n    this._selectedIndex = value;\n    this.templatedItemsView.selectedIndex = this._selectedIndex;\n  }\n\n  ngAfterViewInit() {\n    if (!!(this._selectedIndex)) {\n      setTimeout(() => {\n        if (isIOS) {\n          this.templatedItemsView.scrollToIndexAnimated(\n            this._selectedIndex,\n            false\n          );\n        }\n        this.templatedItemsView.selectedIndex = this._selectedIndex;\n      });\n    }\n  }\n\n  constructor(\n    _elementRef: ElementRef,\n    private _iterableDiffers: IterableDiffers,\n    private zone: NgZone\n  ) {\n    this.templatedItemsView = _elementRef.nativeElement;\n\n    this.templatedItemsView.on(\"itemLoading\", this.onItemLoading, this);\n    this.templatedItemsView.on(\"itemDisposing\", this.onItemDisposing, this);\n  }\n\n  ngAfterContentInit() {\n    if (Trace.isEnabled()) {\n      PagerLog(\"TemplatedItemsView.ngAfterContentInit()\");\n    }\n    this.setItemTemplates();\n  }\n\n  ngOnDestroy() {\n    this.templatedItemsView.off(\"itemLoading\", this.onItemLoading, this);\n    this.templatedItemsView.off(\n      \"itemDisposing\",\n      this.onItemDisposing,\n      this\n    );\n  }\n\n  private setItemTemplates() {\n    if (!this.items) return;\n    // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n    // so cache and use only the original template to avoid errors.\n    this.itemTemplate = this.itemTemplateQuery;\n\n    if (this._templateMap) {\n      if (Trace.isEnabled()) {\n        PagerLog(\"Setting templates\");\n      }\n\n      const templates: KeyedTemplate[] = [];\n      this._templateMap.forEach((value) => {\n        templates.push(value);\n      });\n      this.templatedItemsView.itemTemplates = templates;\n    }\n  }\n\n  public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n    if (Trace.isEnabled()) {\n      PagerLog(`registerTemplate for key: ${key}`);\n    }\n\n    if (!this._templateMap) {\n      this._templateMap = new Map<string, KeyedTemplate>();\n    }\n\n    const keyedTemplate = {\n      key,\n      createView: this.getItemTemplateViewFactory(template),\n    };\n\n    this._templateMap.set(key, keyedTemplate);\n  }\n\n  @profile\n  public onItemLoading(args: ItemEventData) {\n    if (!args.view && !this.itemTemplate) {\n      return;\n    }\n\n    if (!this.items) return;\n\n    const index = args.index;\n    const items = (<any>args.object).items;\n    const currentItem =\n      typeof items.getItem === \"function\"\n        ? items.getItem(index)\n        : items[index];\n    let viewRef: EmbeddedViewRef<ItemContext>;\n\n    if (args.view) {\n      if (Trace.isEnabled()) {\n        PagerLog(`onItemLoading: ${index} - Reusing existing view`);\n      }\n\n      viewRef = args.view[NG_VIEW];\n      // Getting angular view from original element (in cases when ProxyViewContainer\n      // is used NativeScript internally wraps it in a StackLayout)\n      if (\n        !viewRef &&\n        args.view instanceof LayoutBase &&\n        args.view.getChildrenCount() > 0\n      ) {\n        viewRef = args.view.getChildAt(0)[NG_VIEW];\n      }\n\n      if (!viewRef && Trace.isEnabled()) {\n        PagerError(\n          `ViewReference not found for item ${index}. View recycling is not working`\n        );\n      }\n    }\n\n    if (!viewRef) {\n      if (Trace.isEnabled()) {\n        PagerLog(\n          `onItemLoading: ${index} - Creating view from template`\n        );\n      }\n\n      viewRef = this.loader.createEmbeddedView(\n        this.itemTemplate,\n        new ItemContext(),\n        0\n      );\n      args.view = getItemViewRoot(viewRef);\n      args.view[NG_VIEW] = viewRef;\n    }\n\n    this.setupViewRef(viewRef, currentItem, index);\n\n    this.detectChangesOnChild(viewRef, index);\n  }\n\n  @profile\n  public onItemDisposing(args: ItemEventData) {\n    if (!args.view) {\n      return;\n    }\n    let viewRef: EmbeddedViewRef<ItemContext>;\n\n    if (args.view) {\n      if (Trace.isEnabled()) {\n        PagerLog(\n          `onItemDisposing: ${args.index} - Removing angular view`\n        );\n      }\n\n      viewRef = args.view[NG_VIEW];\n      // Getting angular view from original element (in cases when ProxyViewContainer\n      // is used NativeScript internally wraps it in a StackLayout)\n      if (\n        !viewRef &&\n        args.view instanceof LayoutBase &&\n        args.view.getChildrenCount() > 0\n      ) {\n        viewRef = args.view.getChildAt(0)[NG_VIEW];\n      }\n\n      if (!viewRef && Trace.isEnabled()) {\n        PagerError(\n          `ViewReference not found for item ${args.index}. View disposing is not working`\n        );\n      }\n    }\n\n    if (viewRef) {\n      if (Trace.isEnabled()) {\n        PagerLog(\n          `onItemDisposing: ${args.index} - Disposing view reference`\n        );\n      }\n\n      viewRef.destroy();\n    }\n  }\n\n  public setupViewRef(\n    viewRef: EmbeddedViewRef<ItemContext>,\n    data: any,\n    index: number\n  ): void {\n    const context = viewRef.context;\n    context.$implicit = data;\n    context.item = data;\n    context.index = index;\n    context.even = index % 2 === 0;\n    context.odd = !context.even;\n\n    this.setupItemView.next({\n      view: viewRef,\n      data: data,\n      index: index,\n      context: context,\n    });\n  }\n\n  protected getItemTemplateViewFactory(\n    template: TemplateRef<ItemContext>\n  ): () => View {\n    return () => {\n      const viewRef = this.loader.createEmbeddedView(\n        template,\n        new ItemContext(),\n        0\n      );\n      const resultView = getItemViewRoot(viewRef);\n      resultView[NG_VIEW] = viewRef;\n\n      return resultView;\n    };\n  }\n\n  @profile\n  private detectChangesOnChild(\n    viewRef: EmbeddedViewRef<ItemContext>,\n    index: number\n  ) {\n    if (Trace.isEnabled()) {\n      PagerLog(`Manually detect changes in child: ${index}`);\n    }\n\n    this.zone.run(() => {\n      viewRef.markForCheck();\n      viewRef.detectChanges();\n    })\n  }\n\n  ngDoCheck() {\n    if (this._differ) {\n      if (Trace.isEnabled()) {\n        PagerLog(\"ngDoCheck() - execute differ\");\n      }\n\n      const changes = this._differ.diff(this._items);\n      if (changes) {\n        if (Trace.isEnabled()) {\n          PagerLog(\"ngDoCheck() - refresh\");\n        }\n\n        this.templatedItemsView.refresh();\n      }\n    }\n  }\n}\n\nexport interface ComponentView {\n  rootNodes: Array<any>;\n\n  destroy(): void;\n}\n\nexport type RootLocator = (nodes: Array<any>, nestLevel: number) => View;\n\nexport function getItemViewRoot(\n  viewRef: ComponentView,\n  rootLocator: RootLocator = getSingleViewRecursive as any\n): View {\n  return rootLocator(viewRef.rootNodes, 0);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<\n  TemplatedItemsComponent\n>(\"TemplatedItemsComponent\");\n\n@Directive({\n  selector: \"[pagerItem]\",\n})\nexport class PagerItemDirective implements OnInit {\n  private item: PagerItem;\n\n  constructor(\n    private templateRef: TemplateRef<any>,\n    @Inject(TEMPLATED_ITEMS_COMPONENT)\n    @Host()\n    private owner: TemplatedItemsComponent,\n    private viewContainer: ViewContainerRef\n  ) { }\n\n  private ensureItem() {\n    if (!this.item) {\n      this.item = new PagerItem();\n    }\n  }\n\n  private applyConfig() {\n    this.ensureItem();\n  }\n\n  ngOnInit() {\n    this.applyConfig();\n\n    const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n    // Filter out text nodes and comments\n    const realViews = viewRef.rootNodes.filter(\n      (node) => !isInvisibleNode(node)\n    );\n\n    if (realViews.length > 0) {\n      const view = realViews[0];\n      this.item.addChild(view);\n      this.owner.nativeElement._addChildFromBuilder(\n        \"PagerItem\",\n        this.item\n      );\n    }\n  }\n}\n\n@Directive({ selector: \"[pagerTemplateKey]\" })\nexport class TemplateKeyDirective {\n  constructor(\n    private templateRef: TemplateRef<any>,\n    @Inject(TEMPLATED_ITEMS_COMPONENT)\n    @Host()\n    private comp: TemplatedItemsComponent\n  ) { }\n\n  @Input()\n  set pagerTemplateKey(value: any) {\n    if (this.comp && this.templateRef) {\n      this.comp.registerTemplate(value, this.templateRef);\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  forwardRef,\n  IterableDiffers,\n  NgModule,\n  NgZone,\n  NO_ERRORS_SCHEMA\n} from '@angular/core';\n\nimport {Pager} from '@triniwiz/nativescript-pager';\nimport {\n  PagerItemDirective,\n  TEMPLATED_ITEMS_COMPONENT,\n  TemplatedItemsComponent,\n  TemplateKeyDirective\n} from './pager-items-comp';\n\nexport {PagerItemDirective, TemplatedItemsComponent, TemplateKeyDirective} from './pager-items-comp';\n\n@Component({\n  selector: 'Pager',\n  template: `\n    <DetachedContainer>\n      <Placeholder #loader></Placeholder>\n    </DetachedContainer>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: TEMPLATED_ITEMS_COMPONENT,\n      useExisting: forwardRef(() => PagerComponent)\n    }\n  ]\n})\n\nexport class PagerComponent extends TemplatedItemsComponent {\n  public get nativeElement(): Pager {\n    return this.templatedItemsView;\n  }\n\n  protected templatedItemsView: Pager;\n\n  constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, zone: NgZone) {\n    super(_elementRef, _iterableDiffers, zone);\n  }\n}\n\n@NgModule({\n  declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n  exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n  schemas: [NO_ERRORS_SCHEMA]\n})\nexport class PagerModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["isListLikeIterable"],"mappings":";;;;;;;AAwCA,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;AACtC,eAAe,CAAC,WAAW,EAAE,MAAM,SAAS,CAAC,CAAC;AAE9C,MAAM,OAAO,GAAG,YAAY,CAAC;MAkChB,WAAW,CAAA;IACtB,WACS,CAAA,SAAe,EACf,IAAU,EACV,KAAc,EACd,IAAc,EACd,GAAa,EAAA;AAJb,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAM;AACf,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;AACV,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;AACd,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAU;AACd,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;KACjB;AACN,CAAA;MAUqB,uBAAuB,CAAA;AAkE3C,IAAA,WAAA,CACE,WAAuB,EACf,gBAAiC,EACjC,IAAY,EAAA;AADZ,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;AACjC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AAxDf,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAqB,CAAC;AA0D3D,QAAA,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC;AAEpD,QAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;KACzE;AAvDD,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,KAAK,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,KAAK,YAAY,eAAe,EAAE;YACpC,UAAU,GAAG,KAAK,CAAC;AACpB,SAAA;QACD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAIA,mBAAkB,CAAC,KAAK,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB;AACjC,iBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB,iBAAA,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,KAAI;AACvB,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;AACN,SAAA;QAED,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;KAC7C;AAED,IAAA,IACI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAED,IAAI,aAAa,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;KAC7D;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE;YAC3B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,KAAK,EAAE;oBACT,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAC3C,IAAI,CAAC,cAAc,EACnB,KAAK,CACN,CAAC;AACH,iBAAA;gBACD,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;AAC9D,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAaD,kBAAkB,GAAA;AAChB,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,QAAQ,CAAC,yCAAyC,CAAC,CAAC;AACrD,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,eAAe,EACf,IAAI,CAAC,eAAe,EACpB,IAAI,CACL,CAAC;KACH;IAEO,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;;;AAGxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE3C,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACrB,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC/B,aAAA;YAED,MAAM,SAAS,GAAoB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAClC,gBAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,SAAS,CAAC;AACnD,SAAA;KACF;IAEM,gBAAgB,CAAC,GAAW,EAAE,QAAkC,EAAA;AACrE,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,YAAA,QAAQ,CAAC,CAAA,0BAAA,EAA6B,GAAG,CAAA,CAAE,CAAC,CAAC;AAC9C,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;AACtD,SAAA;AAED,QAAA,MAAM,aAAa,GAAG;YACpB,GAAG;AACH,YAAA,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC;SACtD,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;KAC3C;AAGM,IAAA,aAAa,CAAC,IAAmB,EAAA;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpC,OAAO;AACR,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AAExB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,MAAM,KAAK,GAAS,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC;AACvC,QAAA,MAAM,WAAW,GACf,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;AACjC,cAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACtB,cAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACnB,QAAA,IAAI,OAAqC,CAAC;QAE1C,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,QAAQ,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAA,wBAAA,CAA0B,CAAC,CAAC;AAC7D,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAG7B,YAAA,IACE,CAAC,OAAO;gBACR,IAAI,CAAC,IAAI,YAAY,UAAU;AAC/B,gBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAChC;AACA,gBAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5C,aAAA;AAED,YAAA,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACjC,gBAAA,UAAU,CACR,CAAA,iCAAA,EAAoC,KAAK,CAAA,+BAAA,CAAiC,CAC3E,CAAC;AACH,aAAA;AACF,SAAA;QAED,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,QAAQ,CACN,CAAA,eAAA,EAAkB,KAAK,CAAA,8BAAA,CAAgC,CACxD,CAAC;AACH,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CACtC,IAAI,CAAC,YAAY,EACjB,IAAI,WAAW,EAAE,EACjB,CAAC,CACF,CAAC;AACF,YAAA,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC9B,SAAA;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAC3C;AAGM,IAAA,eAAe,CAAC,IAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;AACR,SAAA;AACD,QAAA,IAAI,OAAqC,CAAC;QAE1C,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,QAAQ,CACN,CAAoB,iBAAA,EAAA,IAAI,CAAC,KAAK,CAAA,wBAAA,CAA0B,CACzD,CAAC;AACH,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAG7B,YAAA,IACE,CAAC,OAAO;gBACR,IAAI,CAAC,IAAI,YAAY,UAAU;AAC/B,gBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAChC;AACA,gBAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5C,aAAA;AAED,YAAA,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACjC,gBAAA,UAAU,CACR,CAAoC,iCAAA,EAAA,IAAI,CAAC,KAAK,CAAA,+BAAA,CAAiC,CAChF,CAAC;AACH,aAAA;AACF,SAAA;AAED,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,QAAQ,CACN,CAAoB,iBAAA,EAAA,IAAI,CAAC,KAAK,CAAA,2BAAA,CAA6B,CAC5D,CAAC;AACH,aAAA;YAED,OAAO,CAAC,OAAO,EAAE,CAAC;AACnB,SAAA;KACF;AAEM,IAAA,YAAY,CACjB,OAAqC,EACrC,IAAS,EACT,KAAa,EAAA;AAEb,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AACzB,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAE5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA,CAAC,CAAC;KACJ;AAES,IAAA,0BAA0B,CAClC,QAAkC,EAAA;AAElC,QAAA,OAAO,MAAK;AACV,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC5C,QAAQ,EACR,IAAI,WAAW,EAAE,EACjB,CAAC,CACF,CAAC;AACF,YAAA,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAC5C,YAAA,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE9B,YAAA,OAAO,UAAU,CAAC;AACpB,SAAC,CAAC;KACH;IAGO,oBAAoB,CAC1B,OAAqC,EACrC,KAAa,EAAA;AAEb,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,YAAA,QAAQ,CAAC,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAE,CAAC,CAAC;AACxD,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;YACjB,OAAO,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,aAAa,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAA;KACH;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACrB,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAC1C,aAAA;AAED,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;oBACrB,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACnC,iBAAA;AAED,gBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;AACnC,aAAA;AACF,SAAA;KACF;;oHA1SmB,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAe7B,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EANI,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IAwH5C,OAAO;CA0DP,EAAA,uBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;;IAEA,OAAO;CAyCP,EAAA,uBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;;IAsCA,OAAO;CAaP,EAAA,uBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;2FAzRmB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAD5C,SAAS;oJAWR,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAIvD,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAIP,iBAAiB,EAAA,CAAA;sBADhB,YAAY;gBAAC,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAMxC,KAAK,EAAA,CAAA;sBADR,KAAK;gBAuBF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBAwFC,aAAa,EAAA,EAAA,EA4Db,eAAe,EAAA,EAAA,EA+Ed,oBAAoB,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;SAwCd,eAAe,CAC7B,OAAsB,EACtB,cAA2B,sBAA6B,EAAA;IAExD,OAAO,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAEM,MAAM,yBAAyB,GAAG,IAAI,cAAc,CAEzD,yBAAyB,CAAC,CAAC;MAKhB,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CACU,WAA6B,EAG7B,KAA8B,EAC9B,aAA+B,EAAA;AAJ/B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAG7B,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAyB;AAC9B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;KACpC;IAEG,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;AAC7B,SAAA;KACF;IAEO,WAAW,GAAA;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAExE,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CACxC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CACjC,CAAC;AAEF,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAC3C,WAAW,EACX,IAAI,CAAC,IAAI,CACV,CAAC;AACH,SAAA;KACF;;AAtCU,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,6CAKnB,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGALxB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;iBACxB,CAAA;;;8BAMI,MAAM;+BAAC,yBAAyB,CAAA;;8BAChC,IAAI;;;MAoCI,oBAAoB,CAAA;IAC/B,WACU,CAAA,WAA6B,EAG7B,IAA6B,EAAA;AAH7B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAG7B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAyB;KAClC;IAEL,IACI,gBAAgB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,SAAA;KACF;;AAbU,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,6CAGrB,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAHxB,oBAAoB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;mBAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAA;;;8BAIxC,MAAM;+BAAC,yBAAyB,CAAA;;8BAChC,IAAI;;yBAKH,gBAAgB,EAAA,CAAA;sBADnB,KAAK;;;AChbF,MAAO,cAAe,SAAQ,uBAAuB,CAAA;AAOzD,IAAA,WAAA,CAAY,WAAuB,EAAE,gBAAiC,EAAE,IAAY,EAAA;AAClF,QAAA,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;KAC5C;AARD,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;;2GAHU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EARd,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC9C,SAAA;KACF,EAVS,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGa,wBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAUZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAf1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,CAAA;;;AAGa,wBAAA,CAAA;oBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAC9C,yBAAA;AACF,qBAAA;iBACF,CAAA;;MAmBY,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,YAAA,EAAA,CAjBX,cAAc,EAaM,oBAAoB,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAb5D,cAAc,EAcC,oBAAoB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;yGAGvD,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;AACxE,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;oBACnE,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC5B,CAAA;;;ACpDD;;AAEG;;;;"}