@acorex/components 20.1.4 → 20.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/action-sheet/index.d.ts +2 -1
  2. package/badge/index.d.ts +3 -4
  3. package/check-box/index.d.ts +2 -1
  4. package/color-box/index.d.ts +1 -0
  5. package/color-palette/index.d.ts +2 -0
  6. package/conversation/index.d.ts +23 -27
  7. package/fesm2022/acorex-components-action-sheet.mjs +22 -11
  8. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  9. package/fesm2022/acorex-components-audio-wave.mjs +2 -2
  10. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  11. package/fesm2022/acorex-components-autocomplete.mjs +2 -2
  12. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  13. package/fesm2022/acorex-components-badge.mjs +5 -6
  14. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  15. package/fesm2022/acorex-components-calendar.mjs +2 -2
  16. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  17. package/fesm2022/acorex-components-check-box.mjs +8 -6
  18. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  19. package/fesm2022/acorex-components-color-box.mjs +11 -2
  20. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  21. package/fesm2022/acorex-components-color-palette.mjs +23 -7
  22. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  23. package/fesm2022/acorex-components-comment.mjs +2 -2
  24. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  25. package/fesm2022/acorex-components-conversation.mjs +41 -30
  26. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  27. package/fesm2022/acorex-components-cron-job.mjs +14 -14
  28. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  29. package/fesm2022/acorex-components-data-pager.mjs +1 -1
  30. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  31. package/fesm2022/acorex-components-data-table.mjs +3 -3
  32. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  33. package/fesm2022/acorex-components-datetime-picker.mjs +2 -2
  34. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  35. package/fesm2022/acorex-components-form.mjs +5 -4
  36. package/fesm2022/acorex-components-form.mjs.map +1 -1
  37. package/fesm2022/acorex-components-image-editor.mjs +27 -20
  38. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  39. package/fesm2022/acorex-components-kanban.mjs +10 -4
  40. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  41. package/fesm2022/acorex-components-list.mjs +2 -2
  42. package/fesm2022/acorex-components-list.mjs.map +1 -1
  43. package/fesm2022/acorex-components-notification.mjs +1 -1
  44. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  45. package/fesm2022/acorex-components-number-box-2.mjs +1 -3
  46. package/fesm2022/acorex-components-number-box-2.mjs.map +1 -1
  47. package/fesm2022/acorex-components-paint.mjs +46 -16
  48. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  49. package/fesm2022/acorex-components-password-box.mjs +2 -2
  50. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  51. package/fesm2022/acorex-components-scheduler.mjs +28 -29
  52. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  53. package/fesm2022/acorex-components-search-box.mjs +2 -2
  54. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  55. package/fesm2022/acorex-components-select-box.mjs +2 -2
  56. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  57. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  58. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  59. package/fesm2022/acorex-components-time-duration.mjs +8 -8
  60. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  61. package/fesm2022/acorex-components-toast.mjs +1 -1
  62. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  63. package/fesm2022/acorex-components-tooltip.mjs +20 -22
  64. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  65. package/fesm2022/acorex-components-tree-view.mjs +40 -10
  66. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  67. package/fesm2022/acorex-components-uploader.mjs +9 -9
  68. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  69. package/image-editor/index.d.ts +1 -2
  70. package/kanban/index.d.ts +7 -2
  71. package/package.json +5 -5
  72. package/paint/index.d.ts +17 -7
  73. package/tooltip/index.d.ts +4 -4
  74. package/tree-view/index.d.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-tree-view.mjs","sources":["../tmp-esm2022/tree-view/lib/tree-view.class.js","../tmp-esm2022/tree-view/lib/tree-view-item.component.js","../tmp-esm2022/tree-view/lib/tree-view.component.js","../tmp-esm2022/tree-view/lib/tree-view.component.module.js","../tmp-esm2022/tree-view/acorex-components-tree-view.js"],"sourcesContent":["import { AXClickEvent } from '@acorex/cdk/common';\nexport class AXTreeItemClickBaseEvent extends AXClickEvent {\n}\nexport class AXTreeViewBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXcuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2xELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0NBRXpEO0FBWUQsTUFBTSxPQUFnQixjQUFjO0NBK0JuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCBleHRlbmRzIEFYQ2xpY2tFdmVudCB7XG4gIG5hdGl2ZUVsZW1lbnQ6IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgQVhUcmVlVmlld1NlbGVjdGlvbkJlaGF2aW9yID0gJ2F1dG9FeHBhbmQnIHwgJ2Nhc2NhZGUnIHwgJ2luZGV0ZXJtaW5hdGUnO1xuXG5leHBvcnQgdHlwZSBBWFRyZWVWaWV3RXhwYW5kQmVoYXZpb3IgPSAnY2xpY2snIHwgJ2RiQ2xpY2snIHwgJ2RlZnVsdCc7XG5cbmV4cG9ydCB0eXBlIEFYVHJlZVZpZXdPcGVyYXRpb25NZXRob2QgPSAnZXhwYW5kJyB8ICdhY3RpdmUnIHwgJ3Zpc2libGUnIHwgJ2Rpc2FibGVkJztcblxuZXhwb3J0IHR5cGUgQVhUcmVlVmlld0xvb2sgPSAnd2l0aC1saW5lJyB8ICdkZWZ1bHQnO1xuXG5leHBvcnQgdHlwZSBBWFRyZWVWaWV3U2VsZWN0aW9uU2NvcGUgPSAnYWxsJyB8ICdwYXJlbnQnIHwgJ2NoaWxkcmVuJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYVHJlZVZpZXdCYXNlIHtcbiAgYWJzdHJhY3QgZ2V0Q2hpbGRyZW4oaXRlbTogdW5rbm93bik6IHVua25vd25bXTtcblxuICBhYnN0cmFjdCBoYXNDaGlsZHJlbihpdGVtOiB1bmtub3duKTogYm9vbGVhbjtcblxuICBhYnN0cmFjdCBpdGVtVGVtcGxhdGU6IGFueTtcblxuICAvLyBGaWVsZCBhY2Nlc3NvcnNcbiAgYWJzdHJhY3QgZGlzYWJsZUZpZWxkKCk6IHN0cmluZztcbiAgYWJzdHJhY3QgY2hpbGRyZW5GaWVsZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IHZhbHVlRmllbGQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBhY3RpdmVGaWVsZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGhhc0NoaWxkRmllbGQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCB0b29sdGlwRmllbGQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBzaG93RW1wdHlOb2RlTWFzc2FnZSgpOiBib29sZWFuO1xuICAvLyBCZWhhdmlvciBtZXRob2RzXG4gIGFic3RyYWN0IGV4cGFuZE9uKCk6IEFYVHJlZVZpZXdFeHBhbmRCZWhhdmlvcjtcbiAgYWJzdHJhY3QgZm9jdXNOb2RlRW5hYmxlZCgpOiBib29sZWFuO1xuICBhYnN0cmFjdCB0b2dnbGVJY29ucygpOiB7IGV4cGFuZGVkOiBzdHJpbmc7IGNvbGxhcHNlZDogc3RyaW5nIH0gfCBudWxsO1xuXG4gIC8vIERhdGEgbWFuYWdlbWVudFxuICBhYnN0cmFjdCBpdGVtc1Byb21pc2U6IGJvb2xlYW47XG4gIGFic3RyYWN0IGl0ZW1zU2lnbmFsKCk6IHVua25vd25bXTtcbiAgYWJzdHJhY3QgZmV0Y2hEYXRhKGl0ZW06IHVua25vd24pOiB2b2lkO1xuICBhYnN0cmFjdCBzZXROb2RlTG9hZGluZyh2YWx1ZTogdW5rbm93biwgbG9hZGluZzogYm9vbGVhbik6IHZvaWQ7XG4gIGFic3RyYWN0IGhhbmRsZVVuQWN0aXZlTm9kZShpdGVtczogdW5rbm93bltdKTogdm9pZDtcblxuICAvLyBFdmVudCBlbWl0dGVyc1xuICBhYnN0cmFjdCBvbkNvbGxhcHNlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjx7IGNvbXBvbmVudDogYW55OyBkYXRhOiB1bmtub3duOyBuYXRpdmVFbGVtZW50OiBhbnkgfT47XG4gIGFic3RyYWN0IG9uTm9kZUNsaWNrOiBFdmVudEVtaXR0ZXI8eyBjb21wb25lbnQ6IGFueTsgZGF0YTogdW5rbm93bjsgbmF0aXZlRWxlbWVudDogYW55IH0+O1xuICBhYnN0cmFjdCBvbk5vZGVkYkNsaWNrOiBFdmVudEVtaXR0ZXI8eyBjb21wb25lbnQ6IGFueTsgZGF0YTogdW5rbm93bjsgbmF0aXZlRWxlbWVudDogYW55IH0+O1xufVxuIl19","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, model, ViewEncapsulation } from '@angular/core';\nimport { AXTreeViewBase } from './tree-view.class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class AXTreeViewItemComponent extends NXComponent {\n constructor() {\n super();\n this.treeView = inject(AXTreeViewBase);\n this.item = input();\n this.isExpanded = model(false);\n this.isActive = model(false);\n this.isLoading = input(false);\n this.executorChanges = input();\n this.platformService = inject(AXPlatform);\n this.arrowIcon = computed(() => {\n const baseClasses = 'ax-tree-view-arrow ax-icon ax-icon-solid';\n const toggleIcons = this.treeView.toggleIcons();\n if (toggleIcons) {\n return this.isExpanded() ? `${baseClasses} ${toggleIcons.expanded}` : `${baseClasses} ${toggleIcons.collapsed}`;\n }\n if (this.isExpanded()) {\n return `${baseClasses} ax-icon-chevron-down`;\n }\n return this.platformService.isRtl()\n ? `${baseClasses} ax-icon-chevron-left`\n : `${baseClasses} ax-icon-chevron-right`;\n });\n }\n handleArrowNodeClick() {\n if (this.item()[this.treeView.disableField()] || this.isLoading() || this.treeView.expandOn() === 'dbClick') {\n return;\n }\n this.isExpanded.set(!this.isExpanded());\n if (this.treeView.itemsPromise && this.isExpanded() && !this.item()[this.treeView.childrenField()]?.length) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n this.treeView.onCollapsedChanged.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n handleTextClick() {\n if (this.item()[this.treeView.disableField()]) {\n return;\n }\n if (this.treeView.focusNodeEnabled()) {\n this.treeView.handleUnActiveNode(this.treeView.itemsSignal());\n this.item()[this.treeView.activeField()] = true;\n }\n this.treeView.onNodeClick.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n handleTextDbClick() {\n if (this.item()[this.treeView.disableField()] || this.treeView.expandOn() === 'click') {\n return;\n }\n if (this.item()?.[this.treeView.childrenField()] || this.item()[this.treeView.hasChildField()]) {\n this.isExpanded.set(!this.isExpanded());\n if (this.treeView.itemsPromise && this.isExpanded()) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n }\n this.treeView.onNodedbClick.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n this.treeView.onCollapsedChanged.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXTreeViewItemComponent, isStandalone: true, selector: \"ax-tree-view-item\", inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: \"isExpanded\", publicName: \"isExpanded\", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: \"isActive\", publicName: \"isActive\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, executorChanges: { classPropertyName: \"executorChanges\", publicName: \"executorChanges\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: \"isExpandedChange\", isActive: \"isActiveChange\" }, providers: [{ provide: AXComponent, useExisting: AXTreeViewItemComponent }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-tree-view-container\\\">\\n @if (\\n (item()[this.treeView.childrenField()]?.length && !isLoading()) ||\\n (item()[treeView.hasChildField()] && !isLoading())\\n ) {\\n <div class=\\\"ax-tree-view-icon-container\\\" (click)=\\\"handleArrowNodeClick()\\\">\\n <i [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\" class=\\\"{{ arrowIcon() }}\\\"></i>\\n </div>\\n } @else if (isLoading()) {\\n <ax-loading></ax-loading>\\n } @else {\\n <div class=\\\"ax-tree-view-icon-container placeholder-icon\\\"></div>\\n }\\n\\n <div class=\\\"ax-tree-view-items\\\">\\n <ng-content select=\\\"ax-check-box\\\"></ng-content>\\n <div\\n [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\"\\n [axTooltip]=\\\"item()[treeView.tooltipField()]\\\"\\n axTooltipPlacement=\\\"end-bottom\\\"\\n (click)=\\\"handleTextClick()\\\"\\n (dblclick)=\\\"handleTextDbClick()\\\"\\n class=\\\"ax-tree-view-items-prefix ax-noselect-tree-view\\\"\\n [class.ax-state-tree-view-active]=\\\"item()[treeView.activeField()]\\\"\\n >\\n @if (treeView.itemTemplate) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"treeView.itemTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item() }\\\"\\n ></ng-container>\\n } @else {\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n }\\n </div>\\n </div>\\n</div>\\n\\n<div class=\\\"ax-tree-view-child\\\" [@collapseExpand]=\\\"isExpanded() ? 'expanded' : 'collapsed'\\\">\\n <ng-content></ng-content>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltip\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }], animations: [\n trigger('collapseExpand', [\n state('collapsed', style({\n height: '0',\n overflow: 'hidden',\n opacity: 0,\n })),\n state('expanded', style({\n height: '*',\n overflow: 'hidden',\n opacity: 1,\n })),\n transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),\n ]),\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-tree-view-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('collapseExpand', [\n state('collapsed', style({\n height: '0',\n overflow: 'hidden',\n opacity: 0,\n })),\n state('expanded', style({\n height: '*',\n overflow: 'hidden',\n opacity: 1,\n })),\n transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),\n ]),\n ], imports: [CommonModule, AXLoadingComponent, AXTooltipDirective, NgTemplateOutlet], providers: [{ provide: AXComponent, useExisting: AXTreeViewItemComponent }], template: \"<div class=\\\"ax-tree-view-container\\\">\\n @if (\\n (item()[this.treeView.childrenField()]?.length && !isLoading()) ||\\n (item()[treeView.hasChildField()] && !isLoading())\\n ) {\\n <div class=\\\"ax-tree-view-icon-container\\\" (click)=\\\"handleArrowNodeClick()\\\">\\n <i [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\" class=\\\"{{ arrowIcon() }}\\\"></i>\\n </div>\\n } @else if (isLoading()) {\\n <ax-loading></ax-loading>\\n } @else {\\n <div class=\\\"ax-tree-view-icon-container placeholder-icon\\\"></div>\\n }\\n\\n <div class=\\\"ax-tree-view-items\\\">\\n <ng-content select=\\\"ax-check-box\\\"></ng-content>\\n <div\\n [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\"\\n [axTooltip]=\\\"item()[treeView.tooltipField()]\\\"\\n axTooltipPlacement=\\\"end-bottom\\\"\\n (click)=\\\"handleTextClick()\\\"\\n (dblclick)=\\\"handleTextDbClick()\\\"\\n class=\\\"ax-tree-view-items-prefix ax-noselect-tree-view\\\"\\n [class.ax-state-tree-view-active]=\\\"item()[treeView.activeField()]\\\"\\n >\\n @if (treeView.itemTemplate) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"treeView.itemTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item() }\\\"\\n ></ng-container>\\n } @else {\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n }\\n </div>\\n </div>\\n</div>\\n\\n<div class=\\\"ax-tree-view-child\\\" [@collapseExpand]=\\\"isExpanded() ? 'expanded' : 'collapsed'\\\">\\n <ng-content></ng-content>\\n</div>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXctaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxjQUFjLEVBQTZCLE1BQU0sbUJBQW1CLENBQUM7OztBQStCOUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQVc7SUFDdEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUdWLGFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEMsU0FBSSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBRXhCLGVBQVUsR0FBRyxLQUFL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QUFFLFFBQVE7Z0NBQ2xCLE9BQU8sRUFBRSxDQUFDOzZCQUNYLENBQUMsQ0FDSDs0QkFDRCxLQUFLLENBQ0gsVUFBVSxFQUNWLEtBQUssQ0FBQztnQ0FDSixNQUFNLEVBQUUsR0FBRztnQ0FDWCxRQUFRLEVBQUUsUUFBUTtnQ0FDbEIsT0FBTyxFQUFFLENBQUM7NkJBQ1gsQ0FBQyxDQUNIOzRCQUNELFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7eUJBQ3JFLENBQUM7cUJBQ0gsV0FDUSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxhQUN0RSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRyZWVWaWV3QmFzZSwgQVhUcmVlVmlld09wZXJhdGlvbk1ldGhvZCB9IGZyb20gJy4vdHJlZS12aWV3LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdHJlZS12aWV3LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJ3RyZWUtdmlldy1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjb2xsYXBzZUV4cGFuZCcsIFtcbiAgICAgIHN0YXRlKFxuICAgICAgICAnY29sbGFwc2VkJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2V4cGFuZGVkJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgW2FuaW1hdGUoJzMwMG1zIGVhc2UtaW4tb3V0JyldKSxcbiAgICBdKSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhMb2FkaW5nQ29tcG9uZW50LCBBWFRvb2x0aXBEaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUcmVlVmlld0l0ZW1Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdJdGVtQ29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgdHJlZVZpZXcgPSBpbmplY3QoQVhUcmVlVmlld0Jhc2UpO1xuXG4gIGl0ZW0gPSBpbnB1dDx1bmtub3duPigpO1xuXG4gIGlzRXhwYW5kZWQgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgaXNBY3RpdmUgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGV4ZWN1dG9yQ2hhbmdlcyA9IGlucHV0PEFYVHJlZVZpZXdPcGVyYXRpb25NZXRob2Q+KCk7XG5cbiAgcHJvdGVjdGVkIHBsYXRmb3JtU2VydmljZSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICBwcm90ZWN0ZWQgYXJyb3dJY29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gJ2F4LXRyZWUtdmlldy1hcnJvdyBheC1pY29uIGF4LWljb24tc29saWQnO1xuICAgIGNvbnN0IHRvZ2dsZUljb25zID0gdGhpcy50cmVlVmlldy50b2dnbGVJY29ucygpO1xuXG4gICAgaWYgKHRvZ2dsZUljb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0V4cGFuZGVkKCkgPyBgJHtiYXNlQ2xhc3Nlc30gJHt0b2dnbGVJY29ucy5leHBhbmRlZH1gIDogYCR7YmFzZUNsYXNzZXN9ICR7dG9nZ2xlSWNvbnMuY29sbGFwc2VkfWA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCgpKSB7XG4gICAgICByZXR1cm4gYCR7YmFzZUNsYXNzZXN9IGF4LWljb24tY2hldnJvbi1kb3duYDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVNlcnZpY2UuaXNSdGwoKVxuICAgICAgPyBgJHtiYXNlQ2xhc3Nlc30gYXgtaWNvbi1jaGV2cm9uLWxlZnRgXG4gICAgICA6IGAke2Jhc2VDbGFzc2VzfSBheC1pY29uLWNoZXZyb24tcmlnaHRgO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlQXJyb3dOb2RlQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXRlbSgpW3RoaXMudHJlZVZpZXcuZGlzYWJsZUZpZWxkKCldIHx8IHRoaXMuaXNMb2FkaW5nKCkgfHwgdGhpcy50cmVlVmlldy5leHBhbmRPbigpID09PSAnZGJDbGljaycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzRXhwYW5kZWQuc2V0KCF0aGlzLmlzRXhwYW5kZWQoKSk7XG5cbiAgICBpZiAodGhpcy50cmVlVmlldy5pdGVtc1Byb21pc2UgJiYgdGhpcy5pc0V4cGFuZGVkKCkgJiYgIXRoaXMuaXRlbSgpW3RoaXMudHJlZVZpZXcuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnRyZWVWaWV3LmZldGNoRGF0YSh0aGlzLml0ZW0oKSk7XG4gICAgICB0aGlzLnRyZWVWaWV3LnNldE5vZGVMb2FkaW5nKHRoaXMuaXRlbSgpW3RoaXMudHJlZVZpZXcudmFsdWVGaWVsZCgpXSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmVlVmlldy5vbkNvbGxhcHNlZENoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5pdGVtKCksIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUZXh0Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXRlbSgpW3RoaXMudHJlZVZpZXcuZGlzYWJsZUZpZWxkKCldKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRyZWVWaWV3LmZvY3VzTm9kZUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy50cmVlVmlldy5oYW5kbGVVbkFjdGl2ZU5vZGUodGhpcy50cmVlVmlldy5pdGVtc1NpZ25hbCgpKTtcbiAgICAgIHRoaXMuaXRlbSgpW3RoaXMudHJlZVZpZXcuYWN0aXZlRmllbGQoKV0gPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnRyZWVWaWV3Lm9uTm9kZUNsaWNrLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHRoaXMuaXRlbSgpLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVGV4dERiQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXRlbSgpW3RoaXMudHJlZVZpZXcuZGlzYWJsZUZpZWxkKCldIHx8IHRoaXMudHJlZVZpZXcuZXhwYW5kT24oKSA9PT0gJ2NsaWNrJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pdGVtKCk/Llt0aGlzLnRyZWVWaWV3LmNoaWxkcmVuRmllbGQoKV0gfHwgdGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy5oYXNDaGlsZEZpZWxkKCldKSB7XG4gICAgICB0aGlzLmlzRXhwYW5kZWQuc2V0KCF0aGlzLmlzRXhwYW5kZWQoKSk7XG5cbiAgICAgIGlmICh0aGlzLnRyZWVWaWV3Lml0ZW1zUHJvbWlzZSAmJiB0aGlzLmlzRXhwYW5kZWQoKSkge1xuICAgICAgICB0aGlzLnRyZWVWaWV3LmZldGNoRGF0YSh0aGlzLml0ZW0oKSk7XG4gICAgICAgIHRoaXMudHJlZVZpZXcuc2V0Tm9kZUxvYWRpbmcodGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy52YWx1ZUZpZWxkKCldLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRyZWVWaWV3Lm9uTm9kZWRiQ2xpY2suZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5pdGVtKCksIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcblxuICAgIHRoaXMudHJlZVZpZXcub25Db2xsYXBzZWRDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHRoaXMuaXRlbSgpLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC10cmVlLXZpZXctY29udGFpbmVyXCI+XG4gIEBpZiAoXG4gICAgKGl0ZW0oKVt0aGlzLnRyZWVWaWV3LmNoaWxkcmVuRmllbGQoKV0/Lmxlbmd0aCAmJiAhaXNMb2FkaW5nKCkpIHx8XG4gICAgKGl0ZW0oKVt0cmVlVmlldy5oYXNDaGlsZEZpZWxkKCldICYmICFpc0xvYWRpbmcoKSlcbiAgKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXRyZWUtdmlldy1pY29uLWNvbnRhaW5lclwiIChjbGljayk9XCJoYW5kbGVBcnJvd05vZGVDbGljaygpXCI+XG4gICAgICA8aSBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbSgpW3RyZWVWaWV3LmRpc2FibGVGaWVsZCgpXVwiIGNsYXNzPVwie3sgYXJyb3dJY29uKCkgfX1cIj48L2k+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2UgaWYgKGlzTG9hZGluZygpKSB7XG4gICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtdHJlZS12aWV3LWljb24tY29udGFpbmVyIHBsYWNlaG9sZGVyLWljb25cIj48L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJheC10cmVlLXZpZXctaXRlbXNcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jaGVjay1ib3hcIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIml0ZW0oKVt0cmVlVmlldy5kaXNhYmxlRmllbGQoKV1cIlxuICAgICAgW2F4VG9vbHRpcF09XCJpdGVtKClbdHJlZVZpZXcudG9vbHRpcEZpZWxkKCldXCJcbiAgICAgIGF4VG9vbHRpcFBsYWNlbWVudD1cImVuZC1ib3R0b21cIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZVRleHRDbGljaygpXCJcbiAgICAgIChkYmxjbGljayk9XCJoYW5kbGVUZXh0RGJDbGljaygpXCJcbiAgICAgIGNsYXNzPVwiYXgtdHJlZS12aWV3LWl0ZW1zLXByZWZpeCBheC1ub3NlbGVjdC10cmVlLXZpZXdcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLXRyZWUtdmlldy1hY3RpdmVdPVwiaXRlbSgpW3RyZWVWaWV3LmFjdGl2ZUZpZWxkKCldXCJcbiAgICA+XG4gICAgICBAaWYgKHRyZWVWaWV3Lml0ZW1UZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJlZVZpZXcuaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0oKSB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGV4dFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYXgtdHJlZS12aWV3LWNoaWxkXCIgW0Bjb2xsYXBzZUV4cGFuZF09XCJpc0V4cGFuZGVkKCkgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, HostBinding, inject, Input, input, output, signal, TemplateRef, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport { AXTreeViewBase, } from './tree-view.class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class AXTreeViewComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.itemsSignal = signal([]);\n this.items = input();\n this.showCheckbox = input(true);\n this.hasCheckboxField = input('hasCheckbox');\n this.selectionMode = input('single');\n this.selectionBehavior = input();\n this.selectionScope = input('all');\n this.focusNodeEnabled = input(true);\n this.valueField = input('id');\n this.textField = input('text');\n this.visibleField = input('visible');\n this.disableField = input('disabled');\n this.hasChildField = input('hasChild');\n this.selectedField = input('selected');\n this.expandedField = input('expanded');\n this.tooltipField = input('tooltip');\n this.childrenField = input('children');\n this.activeField = input('active');\n this.indeterminateField = input('indeterminate');\n this.parentField = input('parentId');\n this.iconField = input('icon');\n this.toggleIcons = input();\n this.look = input('defult');\n this.showEmptyNodeMassage = input(true);\n this.onSelectionChanged = output();\n this.onItemSelectedChanged = output();\n this.onNodeClick = output();\n this.onCollapsedChanged = output();\n this.onNodedbClick = output();\n this.executorChanges = signal(null);\n this.platformService = inject(AXPlatform);\n this.#effect = effect(() => {\n const itemsInput = this.items();\n if (typeof itemsInput === 'function') {\n const result = itemsInput();\n if (result instanceof Promise) {\n this.itemsPromise = (options) => itemsInput(options);\n this.fetchData();\n }\n else {\n this.itemsSignal.set(result);\n this.itemsPromise = null;\n }\n }\n else {\n this.itemsSignal.set(itemsInput);\n this.itemsPromise = null;\n }\n });\n this.expandOn = input('defult');\n this.loadingState = signal({});\n }\n /** @ignore */\n get __hostClass() {\n return [`ax-look-${this.look()}`];\n }\n get resolvedItems() {\n return this.itemsSignal();\n }\n #effect;\n handleNodeSelectionClick(event, item) {\n if (item[this.disableField()] || this.isNodeLoading(item[this.valueField()])) {\n return;\n }\n if (this.selectionMode() === 'single' && event.isUserInteraction) {\n this.handleUnSelectNode(this.itemsSignal());\n }\n if (event.isUserInteraction) {\n item[this.selectedField()] = event.value;\n if (event.value !== null) {\n switch (this.selectionBehavior()) {\n case 'autoExpand':\n if (event.value) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n this.fetchData(item);\n this.setNodeLoading(item[this.valueField()], true);\n }\n this.toggleExpand(item);\n }\n break;\n case 'cascade':\n this.expandAndToggleSelection(item, event.value);\n break;\n case 'indeterminate':\n if (item?.[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, event.value, item[this.valueField()]);\n }\n this.updateParentSelection(item, event.value);\n break;\n default:\n break;\n }\n }\n this.onItemSelectedChanged.emit({\n component: this,\n data: item,\n nativeElement: this.nativeElement,\n });\n const result = this.findSelectedNodes(this.itemsSignal());\n this.onSelectionChanged.emit({\n component: this,\n data: result,\n nativeElement: this.nativeElement,\n });\n }\n }\n /**\n *\n * auto expand\n *\n */\n toggleExpand(item) {\n if (!item[this.expandedField()]) {\n item[this.expandedField()] = true;\n }\n }\n /**\n *\n * expand and change value parent change\n *\n */\n async expandAndToggleSelection(item, selected) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n await this.fetchData(item);\n await this.setNodeLoading(item[this.valueField()], true);\n }\n this.toggleExpand(item);\n if (item[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, selected, item[this.valueField()]);\n }\n }\n applySelectionToChildren(item, isSelected, parentId) {\n item[this.childrenField()].forEach(async (child) => {\n if (this.itemsPromise &&\n child[this.hasChildField()] &&\n !child?.[this.childrenField()]?.length &&\n this.selectionBehavior() === 'cascade') {\n await this.fetchData(child);\n await this.setNodeLoading(child[this.valueField()], true);\n this.toggleExpand(child);\n }\n child[this.parentField()] = parentId;\n child[this.selectedField()] = isSelected;\n if (child[this.childrenField()]?.length) {\n this.applySelectionToChildren(child, isSelected, child[this.valueField()]);\n }\n });\n }\n /**\n *\n * indeterminate logic\n *\n */\n updateParentSelection(item, selected) {\n item[this.selectedField()] = selected;\n let parent = this.findParent(item, this.itemsSignal());\n while ((parent && parent[this.selectedField()] != false) || (parent && item[this.selectedField()])) {\n const allSelected = parent?.[this.childrenField()]?.every((child) => child[this.selectedField()]);\n const someSelected = parent?.[this.childrenField()]?.some((child) => child[this.selectedField()] || child[this.indeterminateField()]);\n if (!allSelected && !someSelected) {\n parent[this.selectedField()] = false;\n parent[this.indeterminateField()] = null;\n }\n else if (!allSelected) {\n parent[this.indeterminateField()] = true;\n parent[this.selectedField()] = null;\n }\n else if (allSelected) {\n parent[this.selectedField()] = true;\n parent[this.indeterminateField()] = false;\n }\n else {\n parent[this.indeterminateField()] = false;\n parent[this.selectedField()] = true;\n }\n parent = this.findParent(parent, this.itemsSignal());\n }\n }\n findParent(item, nodes) {\n for (const node of nodes) {\n if (node[this.childrenField()]?.includes(item)) {\n return node;\n }\n else if (node[this.childrenField()]) {\n const parent = this.findParent(item, node[this.childrenField()]);\n if (parent)\n return parent;\n }\n }\n return null;\n }\n /**\n *\n * find node selected true for emit Selections\n *\n */\n findSelectedNodes(nodes) {\n let selectedNodes = [];\n nodes.forEach((node) => {\n if (node[this.selectedField()]) {\n selectedNodes.push(node);\n }\n if (node[this.childrenField()]) {\n selectedNodes = selectedNodes.concat(this.findSelectedNodes(node[this.childrenField()]));\n }\n });\n return selectedNodes;\n }\n /**\n *\n * find for emit Selections single mode\n *\n */\n handleUnSelectNode(items) {\n items.forEach((child) => {\n child[this.selectedField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnSelectNode(child[this.childrenField()]);\n }\n });\n }\n /**\n *\n * lazy load logic\n *\n */\n fetchData(selectedNode) {\n this.itemsPromise(selectedNode?.[this.valueField()])\n .then((data) => {\n if (Array.isArray(data)) {\n if (selectedNode?.[this.valueField()]) {\n this.findNode(selectedNode[this.valueField()], data, this.itemsSignal());\n }\n else {\n const isNodeExpanded = data.filter((child) => child[this.expandedField()]);\n isNodeExpanded.forEach((child) => {\n this.fetchData(child);\n });\n this.itemsSignal.set(data);\n }\n }\n })\n .finally(() => {\n this.setNodeLoading(selectedNode?.[this.valueField()], false);\n });\n }\n findNode(parentId, _children, source) {\n if (source.length) {\n source.forEach((element) => {\n if (element[this.valueField()] == parentId) {\n if (this.selectionBehavior() === 'indeterminate' && element[this.selectedField()]) {\n _children.forEach((child) => (child[this.selectedField()] = true));\n }\n element[this.childrenField()] = _children;\n }\n else {\n if (element?.[this.childrenField()])\n this.findNode(parentId, _children, element[this.childrenField()]);\n }\n });\n }\n }\n /**\n *\n * emit when arrow click\n *\n */\n handleNodeExpandClick(node) {\n const selectedNode = node.data;\n if (this.itemsPromise && node.data[this.expandedField()] && !node?.data[this.childrenField()]?.length) {\n this.fetchData(selectedNode);\n this.setNodeLoading(selectedNode[this.valueField()], true);\n }\n this.onCollapsedChanged.emit({ component: this, data: node.data, nativeElement: this.nativeElement });\n }\n handleUnActiveNode(unActiveSource) {\n unActiveSource.forEach((child) => {\n child[this.activeField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnActiveNode(child[this.childrenField()]);\n }\n });\n }\n isNodeLoading(nodeId) {\n return this.loadingState()[nodeId] || false;\n }\n setNodeLoading(nodeId, isLoading) {\n this.loadingState.update((state) => ({\n ...state,\n [nodeId]: isLoading,\n }));\n }\n executeOnTreeNode(node, operation, value) {\n switch (operation) {\n case 'active':\n node[this.activeField()] = value;\n break;\n case 'expand':\n node[this.expandedField()] = true;\n if (this.itemsPromise && node[this.hasChildField()] && !node[this.childrenField()]?.length) {\n this.handleNodeExpandClick({ data: node, nativeElement: this.nativeElement, component: this });\n }\n break;\n case 'visible':\n node[this.visibleField()] = value;\n break;\n case 'disabled':\n node[this.disableField()] = value;\n break;\n default:\n break;\n }\n /**\n *\n * for detect changes treeviewitem\n *\n */\n this.executorChanges.set(operation);\n }\n refresh() {\n if (this.itemsPromise) {\n this.fetchData();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXTreeViewComponent, isStandalone: true, selector: \"ax-tree-view\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: \"showCheckbox\", publicName: \"showCheckbox\", isSignal: true, isRequired: false, transformFunction: null }, hasCheckboxField: { classPropertyName: \"hasCheckboxField\", publicName: \"hasCheckboxField\", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: \"selectionMode\", publicName: \"selectionMode\", isSignal: true, isRequired: false, transformFunction: null }, selectionBehavior: { classPropertyName: \"selectionBehavior\", publicName: \"selectionBehavior\", isSignal: true, isRequired: false, transformFunction: null }, selectionScope: { classPropertyName: \"selectionScope\", publicName: \"selectionScope\", isSignal: true, isRequired: false, transformFunction: null }, focusNodeEnabled: { classPropertyName: \"focusNodeEnabled\", publicName: \"focusNodeEnabled\", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: \"valueField\", publicName: \"valueField\", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: true, isRequired: false, transformFunction: null }, visibleField: { classPropertyName: \"visibleField\", publicName: \"visibleField\", isSignal: true, isRequired: false, transformFunction: null }, disableField: { classPropertyName: \"disableField\", publicName: \"disableField\", isSignal: true, isRequired: false, transformFunction: null }, hasChildField: { classPropertyName: \"hasChildField\", publicName: \"hasChildField\", isSignal: true, isRequired: false, transformFunction: null }, selectedField: { classPropertyName: \"selectedField\", publicName: \"selectedField\", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: \"expandedField\", publicName: \"expandedField\", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: \"tooltipField\", publicName: \"tooltipField\", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: \"childrenField\", publicName: \"childrenField\", isSignal: true, isRequired: false, transformFunction: null }, activeField: { classPropertyName: \"activeField\", publicName: \"activeField\", isSignal: true, isRequired: false, transformFunction: null }, indeterminateField: { classPropertyName: \"indeterminateField\", publicName: \"indeterminateField\", isSignal: true, isRequired: false, transformFunction: null }, parentField: { classPropertyName: \"parentField\", publicName: \"parentField\", isSignal: true, isRequired: false, transformFunction: null }, iconField: { classPropertyName: \"iconField\", publicName: \"iconField\", isSignal: true, isRequired: false, transformFunction: null }, toggleIcons: { classPropertyName: \"toggleIcons\", publicName: \"toggleIcons\", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: true, isRequired: false, transformFunction: null }, showEmptyNodeMassage: { classPropertyName: \"showEmptyNodeMassage\", publicName: \"showEmptyNodeMassage\", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: false, isRequired: false, transformFunction: null }, expandOn: { classPropertyName: \"expandOn\", publicName: \"expandOn\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: \"onSelectionChanged\", onItemSelectedChanged: \"onItemSelectedChanged\", onNodeClick: \"onNodeClick\", onCollapsedChanged: \"onCollapsedChanged\", onNodedbClick: \"onNodedbClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n { provide: AXComponent, useExisting: AXTreeViewComponent },\n { provide: AXTreeViewBase, useExisting: AXTreeViewComponent },\n ], usesInheritance: true, ngImport: i0, template: \"@if (resolvedItems?.length) {\\n @for (node of resolvedItems; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"></ng-container>\\n }\\n} @else {\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate || empty\\\"></ng-container>\\n}\\n\\n<ng-template #recursion let-item>\\n @if (item[visibleField()] !== false) {\\n <ax-tree-view-item\\n [item]=\\\"item\\\"\\n [isExpanded]=\\\"item[expandedField()]\\\"\\n [(isActive)]=\\\"item[activeField()]\\\"\\n [isLoading]=\\\"isNodeLoading(item[valueField()])\\\"\\n [executorChanges]=\\\"executorChanges()\\\"\\n >\\n @if (\\n (showCheckbox() && selectionScope() === 'all' && item[hasCheckboxField()] !== false) ||\\n (showCheckbox() &&\\n selectionScope() === 'parent' &&\\n item[childrenField()]?.length &&\\n item[hasCheckboxField()]) !== false ||\\n (showCheckbox() &&\\n selectionScope() === 'children' &&\\n !item[childrenField()]?.length &&\\n item[hasCheckboxField()] !== false)\\n ) {\\n <ax-check-box\\n [disabled]=\\\"item[disableField()]\\\"\\n [indeterminate]=\\\"item[indeterminateField()]\\\"\\n [(ngModel)]=\\\"item[selectedField()]\\\"\\n (onValueChanged)=\\\"handleNodeSelectionClick($event, item)\\\"\\n ></ax-check-box>\\n }\\n <ax-prefix>\\n @if (item[iconField()]) {\\n <ax-icon [icon]=\\\"item[iconField()]\\\"></ax-icon>\\n } @else {\\n <i></i>\\n }\\n </ax-prefix>\\n @if (item[textField()]) {\\n <ax-text>{{ item[textField()] }}</ax-text>\\n }\\n\\n <ax-suffix></ax-suffix>\\n @for (child of item?.[childrenField()]; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-tree-view-item>\\n }\\n</ng-template>\\n\\n<ng-template #empty>\\n {{ 'no-result-found' | translate | async }}\\n</ng-template>\\n\", styles: [\"ax-tree-view{--ax-comp-tree-view-arrow-size: .875rem;--ax-comp-tree-view-text-size: .875rem;--ax-comp-tree-view-active-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-tree-view-active-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-tree-view-hover-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-tree-view-indicator-size: 2px}ax-tree-view.ax-look-with-line ax-tree-view-item{position:relative}ax-tree-view.ax-look-with-line ax-tree-view-item:before{content:\\\"\\\";position:absolute;top:0;inset-inline-start:.625rem;width:1px;height:100%;background-color:#ccc}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container{padding-inline-start:1.25rem}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{padding:.25rem}ax-tree-view ax-tree-view-item ax-check-box{margin-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-text{font-size:var(--ax-comp-tree-view-text-size)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:var(--ax-comp-tree-view-arrow-size)!important}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-suffix:empty{display:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.25rem;overflow-x:auto;margin-inline-start:.25rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:rgba(var(--ax-comp-tree-view-active-bg-color));color:rgba(var(--ax-comp-tree-view-active-text-color))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover:not(.ax-state-tree-view-active){background-color:rgba(var(--ax-comp-tree-view-hover-bg-color))}ax-tree-view ax-tree-view-item .ax-tree-view-child{padding-inline-start:1rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXTreeViewItemComponent, selector: \"ax-tree-view-item\", inputs: [\"item\", \"isExpanded\", \"isActive\", \"isLoading\", \"executorChanges\"], outputs: [\"isExpandedChange\", \"isActiveChange\"] }, { kind: \"component\", type: AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-tree-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n NgTemplateOutlet,\n AXTreeViewItemComponent,\n AXCheckBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXDecoratorIconComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ], providers: [\n { provide: AXComponent, useExisting: AXTreeViewComponent },\n { provide: AXTreeViewBase, useExisting: AXTreeViewComponent },\n ], template: \"@if (resolvedItems?.length) {\\n @for (node of resolvedItems; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"></ng-container>\\n }\\n} @else {\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate || empty\\\"></ng-container>\\n}\\n\\n<ng-template #recursion let-item>\\n @if (item[visibleField()] !== false) {\\n <ax-tree-view-item\\n [item]=\\\"item\\\"\\n [isExpanded]=\\\"item[expandedField()]\\\"\\n [(isActive)]=\\\"item[activeField()]\\\"\\n [isLoading]=\\\"isNodeLoading(item[valueField()])\\\"\\n [executorChanges]=\\\"executorChanges()\\\"\\n >\\n @if (\\n (showCheckbox() && selectionScope() === 'all' && item[hasCheckboxField()] !== false) ||\\n (showCheckbox() &&\\n selectionScope() === 'parent' &&\\n item[childrenField()]?.length &&\\n item[hasCheckboxField()]) !== false ||\\n (showCheckbox() &&\\n selectionScope() === 'children' &&\\n !item[childrenField()]?.length &&\\n item[hasCheckboxField()] !== false)\\n ) {\\n <ax-check-box\\n [disabled]=\\\"item[disableField()]\\\"\\n [indeterminate]=\\\"item[indeterminateField()]\\\"\\n [(ngModel)]=\\\"item[selectedField()]\\\"\\n (onValueChanged)=\\\"handleNodeSelectionClick($event, item)\\\"\\n ></ax-check-box>\\n }\\n <ax-prefix>\\n @if (item[iconField()]) {\\n <ax-icon [icon]=\\\"item[iconField()]\\\"></ax-icon>\\n } @else {\\n <i></i>\\n }\\n </ax-prefix>\\n @if (item[textField()]) {\\n <ax-text>{{ item[textField()] }}</ax-text>\\n }\\n\\n <ax-suffix></ax-suffix>\\n @for (child of item?.[childrenField()]; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-tree-view-item>\\n }\\n</ng-template>\\n\\n<ng-template #empty>\\n {{ 'no-result-found' | translate | async }}\\n</ng-template>\\n\", styles: [\"ax-tree-view{--ax-comp-tree-view-arrow-size: .875rem;--ax-comp-tree-view-text-size: .875rem;--ax-comp-tree-view-active-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-tree-view-active-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-tree-view-hover-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-tree-view-indicator-size: 2px}ax-tree-view.ax-look-with-line ax-tree-view-item{position:relative}ax-tree-view.ax-look-with-line ax-tree-view-item:before{content:\\\"\\\";position:absolute;top:0;inset-inline-start:.625rem;width:1px;height:100%;background-color:#ccc}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container{padding-inline-start:1.25rem}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{padding:.25rem}ax-tree-view ax-tree-view-item ax-check-box{margin-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-text{font-size:var(--ax-comp-tree-view-text-size)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:var(--ax-comp-tree-view-arrow-size)!important}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-suffix:empty{display:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.25rem;overflow-x:auto;margin-inline-start:.25rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:rgba(var(--ax-comp-tree-view-active-bg-color));color:rgba(var(--ax-comp-tree-view-active-text-color))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover:not(.ax-state-tree-view-active){background-color:rgba(var(--ax-comp-tree-view-hover-bg-color))}ax-tree-view ax-tree-view-item .ax-tree-view-child{padding-inline-start:1rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }], itemTemplate: [{\n type: Input\n }], emptyTemplate: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS12aWV3L3NyYy9saWIvdHJlZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS12aWV3L3NyYy9saWIvdHJlZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQTRDLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFFTCxjQUFjLEdBTWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBdUIzQixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQXJCcEQ7O1FBNEJFLGdCQUFXLEdBQUcsTUFBTSxDQUFZLEVBQUUsQ0FBQyxDQUFDO1FBSXBDLFVBQUssR0FBRyxLQUFLLEVBQXNGLENBQUM7UUFNcEcsaUJBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IscUJBQWdCLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhDLGtCQUFhLEdBQUcsS0FBSyxDQUF3QixRQUFRLENBQUMsQ0FBQztRQUV2RCxzQkFBaUIsR0FBRyxLQUFLLEVBQStCLENBQUM7UUFFekQsbUJBQWMsR0FBRyxLQUFLLENBQTJCLEtBQUssQ0FBQyxDQUFDO1FBRXhELHFCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixlQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpCLGNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsaUJBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEMsaUJBQVksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakMsa0JBQWEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsaUJBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEMsa0JBQWEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVDLGdCQUFXLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhDLGNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsZ0JBQVcsR0FBRyxLQUFLLEVBQXVCLENBQUM7UUFFM0MsU0FBSSxHQUFHLEtBQUssQ0FBaUIsUUFBUSxDQUFDLENBQUM7UUFFdkMseUJBQW9CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLHVCQUFrQixHQUFHLE1BQU0sRUFBNEIsQ0FBQztRQUV4RCwwQkFBcUIsR0FBRyxNQUFNLEVBQTRCLENBQUM7UUFFM0QsZ0JBQVcsR0FBRyxNQUFNLEVBQTRCLENBQUM7UUFFakQsdUJBQWtCLEdBQUcsTUFBTSxFQUE0QixDQUFDO1FBRXhELGtCQUFhLEdBQUcsTUFBTSxFQUE0QixDQUFDO1FBRW5ELG9CQUFlLEdBQUcsTUFBTSxDQUE0QixJQUFJLENBQUMsQ0FBQztRQU1oRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQyxZQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFaEMsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxNQUFNLEdBQUcsVUFBVSxFQUFFLENBQUM7Z0JBQzVCLElBQUksTUFBTSxZQUFZLE9BQU8sRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBUSxHQUFHLEtBQUssQ0FBMkIsUUFBUSxDQUFDLENBQUM7UUFnUTdDLGlCQUFZLEdBQUcsTUFBTSxDQUFtQyxFQUFFLENBQUMsQ0FBQztLQWlEckU7SUFqWkMsY0FBYztJQUNkLElBQ1ksV0FBVztRQUNyQixPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFRRCxJQUFjLGFBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQWdFRCxPQUFPLENBZ0JKO0lBSU8sd0JBQXdCLENBQUMsS0FBMEIsRUFBRSxJQUFhO1FBQzFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFFekMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QixRQUFRLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7b0JBQ2pDLEtBQUssWUFBWTt3QkFDZixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzs0QkFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUM3RixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2dDQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDckQsQ0FBQzs0QkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMxQixDQUFDO3dCQUNELE1BQU07b0JBQ1IsS0FBSyxTQUFTO3dCQUNaLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNqRCxNQUFNO29CQUNSLEtBQUssZUFBZTt3QkFDbEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQzs0QkFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUM1RSxDQUFDO3dCQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM5QyxNQUFNO29CQUNSO3dCQUNFLE1BQU07Z0JBQ1YsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO2dCQUM5QixTQUFTLEVBQUUsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSTtnQkFDVixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxNQUFNLEdBQWMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBRXJFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLElBQUksRUFBRSxNQUFNO2dCQUNaLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNsQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsSUFBYTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFFSyxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBYSxFQUFFLFFBQWlCO1FBQ3JFLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3RixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QixDQUFDLElBQWEsRUFBRSxVQUFtQixFQUFFLFFBQTBCO1FBQzdGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2pELElBQ0UsSUFBSSxDQUFDLFlBQVk7Z0JBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNCLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsTUFBTTtnQkFDdEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEtBQUssU0FBUyxFQUN0QyxDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUNyQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ3pDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVLLHFCQUFxQixDQUFDLElBQWEsRUFBRSxRQUFpQjtRQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBRXRDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkcsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVsRyxNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQ3ZELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQzNFLENBQUM7WUFFRixJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMzQyxDQUFDO2lCQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzVDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDdEMsQ0FBQztZQUVELE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFhLEVBQUUsS0FBZ0I7UUFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLE1BQU07b0JBQUUsT0FBTyxNQUFNLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBRUssaUJBQWlCLENBQUMsS0FBZ0I7UUFDeEMsSUFBSSxhQUFhLEdBQWMsRUFBRSxDQUFDO1FBRWxDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMvQixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMvQixhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUVLLGtCQUFrQixDQUFDLEtBQWdCO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLElBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILFNBQVMsQ0FBQyxZQUFzQjtRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2FBQ2pELElBQUksQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFO1lBQ3hCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDM0UsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUUzRSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQzthQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUF5QixFQUFFLFNBQW9CLEVBQUUsTUFBaUI7UUFDakYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN6QixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxlQUFlLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQ2xGLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ3JFLENBQUM7b0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDNUMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekcsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBRU8scUJBQXFCLENBQUMsSUFBOEI7UUFDNUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDdEcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxjQUF5QjtRQUMxQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlTLGFBQWEsQ0FBQyxNQUF1QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUF1QixFQUFFLFNBQWtCO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsS0FBSztZQUNSLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUztTQUNwQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFhLEVBQUUsU0FBb0MsRUFBRSxLQUFjO1FBQzFGLFFBQVEsU0FBUyxFQUFFLENBQUM7WUFDbEIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbEMsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDM0YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakcsQ0FBQztnQkFFRCxNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBRWxDLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDbEMsTUFBTTtZQUNSO2dCQUNFLE1BQU07UUFDVixDQUFDO1FBQ0Q7Ozs7V0FJRztRQUVILElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDOzhHQWpaVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4NkhBTG5CO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtZQUMxRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzlELGlEQ2xESCwrOERBeURBLG96RkRuQkksZ0JBQWdCLG9KQUNoQix1QkFBdUIsMkxBQ3ZCLG1CQUFtQixtT0FDbkIsV0FBVywrVkFDWCwyQkFBMkIseUxBQzNCLHdCQUF3QixpRUFDeEIsZ0JBQWdCLDZDQUNoQixTQUFTOzsyRkFPQSxtQkFBbUI7a0JBckIvQixTQUFTOytCQUNFLGNBQWMsaUJBR1QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLFNBQVM7cUJBQ1YsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTt3QkFDMUQsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7cUJBQzlEOzhCQUtXLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTztnQkF1RVgsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIEFYRXhwYW5kVG9nZ2xlSWNvbnMsIEFYVmFsdWVDaGFuZ2VkRXZlbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYVHJlZVZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXctaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50LFxuICBBWFRyZWVWaWV3QmFzZSxcbiAgQVhUcmVlVmlld0V4cGFuZEJlaGF2aW9yLFxuICBBWFRyZWVWaWV3TG9vayxcbiAgQVhUcmVlVmlld09wZXJhdGlvbk1ldGhvZCxcbiAgQVhUcmVlVmlld1NlbGVjdGlvbkJlaGF2aW9yLFxuICBBWFRyZWVWaWV3U2VsZWN0aW9uU2NvcGUsXG59IGZyb20gJy4vdHJlZS12aWV3LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdHJlZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICd0cmVlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndHJlZS12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWFRyZWVWaWV3SXRlbUNvbXBvbmVudCxcbiAgICBBWENoZWNrQm94Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFRyZWVWaWV3Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFRyZWVWaWV3QmFzZSwgdXNlRXhpc3Rpbmc6IEFYVHJlZVZpZXdDb21wb25lbnQgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0NvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW2BheC1sb29rLSR7dGhpcy5sb29rKCl9YF07XG4gIH1cblxuICBpdGVtc1NpZ25hbCA9IHNpZ25hbDx1bmtub3duW10+KFtdKTtcblxuICBpdGVtc1Byb21pc2U6IGFueTtcblxuICBpdGVtcyA9IGlucHV0PHVua25vd25bXSB8ICgoc2VsZWN0ZWRJdGVtSWQ/OiBzdHJpbmcgfCBudW1iZXIpID0+IHVua25vd25bXSB8IFByb21pc2U8dW5rbm93bltdPik+KCk7XG5cbiAgcHJvdGVjdGVkIGdldCByZXNvbHZlZEl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zU2lnbmFsKCk7XG4gIH1cblxuICBzaG93Q2hlY2tib3ggPSBpbnB1dCh0cnVlKTtcblxuICBoYXNDaGVja2JveEZpZWxkID0gaW5wdXQoJ2hhc0NoZWNrYm94Jyk7XG5cbiAgc2VsZWN0aW9uTW9kZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpcGxlJz4oJ3NpbmdsZScpO1xuXG4gIHNlbGVjdGlvbkJlaGF2aW9yID0gaW5wdXQ8QVhUcmVlVmlld1NlbGVjdGlvbkJlaGF2aW9yPigpO1xuXG4gIHNlbGVjdGlvblNjb3BlID0gaW5wdXQ8QVhUcmVlVmlld1NlbGVjdGlvblNjb3BlPignYWxsJyk7XG5cbiAgZm9jdXNOb2RlRW5hYmxlZCA9IGlucHV0KHRydWUpO1xuXG4gIHZhbHVlRmllbGQgPSBpbnB1dCgnaWQnKTtcblxuICB0ZXh0RmllbGQgPSBpbnB1dCgndGV4dCcpO1xuXG4gIHZpc2libGVGaWVsZCA9IGlucHV0KCd2aXNpYmxlJyk7XG5cbiAgZGlzYWJsZUZpZWxkID0gaW5wdXQoJ2Rpc2FibGVkJyk7XG5cbiAgaGFzQ2hpbGRGaWVsZCA9IGlucHV0KCdoYXNDaGlsZCcpO1xuXG4gIHNlbGVjdGVkRmllbGQgPSBpbnB1dCgnc2VsZWN0ZWQnKTtcblxuICBleHBhbmRlZEZpZWxkID0gaW5wdXQoJ2V4cGFuZGVkJyk7XG5cbiAgdG9vbHRpcEZpZWxkID0gaW5wdXQoJ3Rvb2x0aXAnKTtcblxuICBjaGlsZHJlbkZpZWxkID0gaW5wdXQoJ2NoaWxkcmVuJyk7XG5cbiAgYWN0aXZlRmllbGQgPSBpbnB1dCgnYWN0aXZlJyk7XG5cbiAgaW5kZXRlcm1pbmF0ZUZpZWxkID0gaW5wdXQoJ2luZGV0ZXJtaW5hdGUnKTtcblxuICBwYXJlbnRGaWVsZCA9IGlucHV0KCdwYXJlbnRJZCcpO1xuXG4gIGljb25GaWVsZCA9IGlucHV0KCdpY29uJyk7XG5cbiAgdG9nZ2xlSWNvbnMgPSBpbnB1dDxBWEV4cGFuZFRvZ2dsZUljb25zPigpO1xuXG4gIGxvb2sgPSBpbnB1dDxBWFRyZWVWaWV3TG9vaz4oJ2RlZnVsdCcpO1xuXG4gIHNob3dFbXB0eU5vZGVNYXNzYWdlID0gaW5wdXQodHJ1ZSk7XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBvbkl0ZW1TZWxlY3RlZENoYW5nZWQgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZUNsaWNrID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBvbkNvbGxhcHNlZENoYW5nZWQgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZWRiQ2xpY2sgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIGV4ZWN1dG9yQ2hhbmdlcyA9IHNpZ25hbDxBWFRyZWVWaWV3T3BlcmF0aW9uTWV0aG9kPihudWxsKTtcblxuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBlbXB0eVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJvdGVjdGVkIHBsYXRmb3JtU2VydmljZSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpdGVtc0lucHV0ID0gdGhpcy5pdGVtcygpO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVtc0lucHV0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBpdGVtc0lucHV0KCk7XG4gICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICB0aGlzLml0ZW1zUHJvbWlzZSA9IChvcHRpb25zKSA9PiBpdGVtc0lucHV0KG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtc1NpZ25hbC5zZXQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChpdGVtc0lucHV0KTtcbiAgICAgIHRoaXMuaXRlbXNQcm9taXNlID0gbnVsbDtcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGFuZE9uID0gaW5wdXQ8QVhUcmVlVmlld0V4cGFuZEJlaGF2aW9yPignZGVmdWx0Jyk7XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVTZWxlY3Rpb25DbGljayhldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCwgaXRlbTogdW5rbm93bikge1xuICAgIGlmIChpdGVtW3RoaXMuZGlzYWJsZUZpZWxkKCldIHx8IHRoaXMuaXNOb2RlTG9hZGluZyhpdGVtW3RoaXMudmFsdWVGaWVsZCgpXSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlKCkgPT09ICdzaW5nbGUnICYmIGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmhhbmRsZVVuU2VsZWN0Tm9kZSh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cblxuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgaXRlbVt0aGlzLnNlbGVjdGVkRmllbGQoKV0gPSBldmVudC52YWx1ZTtcblxuICAgICAgaWYgKGV2ZW50LnZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb25CZWhhdmlvcigpKSB7XG4gICAgICAgICAgY2FzZSAnYXV0b0V4cGFuZCc6XG4gICAgICAgICAgICBpZiAoZXZlbnQudmFsdWUpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFpdGVtPy5bdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YShpdGVtKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5vZGVMb2FkaW5nKGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldLCB0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Nhc2NhZGUnOlxuICAgICAgICAgICAgdGhpcy5leHBhbmRBbmRUb2dnbGVTZWxlY3Rpb24oaXRlbSwgZXZlbnQudmFsdWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaW5kZXRlcm1pbmF0ZSc6XG4gICAgICAgICAgICBpZiAoaXRlbT8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW0sIGV2ZW50LnZhbHVlLCBpdGVtW3RoaXMudmFsdWVGaWVsZCgpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudFNlbGVjdGlvbihpdGVtLCBldmVudC52YWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5vbkl0ZW1TZWxlY3RlZENoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogaXRlbSxcbiAgICAgICAgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogdW5rbm93bltdID0gdGhpcy5maW5kU2VsZWN0ZWROb2Rlcyh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuXG4gICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBhdXRvIGV4cGFuZFxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSB0b2dnbGVFeHBhbmQoaXRlbTogdW5rbm93bikge1xuICAgIGlmICghaXRlbVt0aGlzLmV4cGFuZGVkRmllbGQoKV0pIHtcbiAgICAgIGl0ZW1bdGhpcy5leHBhbmRlZEZpZWxkKCldID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogZXhwYW5kIGFuZCBjaGFuZ2UgdmFsdWUgcGFyZW50IGNoYW5nZVxuICAgKlxuICAgKi9cblxuICBwcml2YXRlIGFzeW5jIGV4cGFuZEFuZFRvZ2dsZVNlbGVjdGlvbihpdGVtOiB1bmtub3duLCBzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLml0ZW1zUHJvbWlzZSAmJiBpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZCgpXSAmJiAhaXRlbT8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLmZldGNoRGF0YShpdGVtKTtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Tm9kZUxvYWRpbmcoaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0sIHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcblxuICAgIGlmIChpdGVtW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0aW9uVG9DaGlsZHJlbihpdGVtLCBzZWxlY3RlZCwgaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW06IHVua25vd24sIGlzU2VsZWN0ZWQ6IGJvb2xlYW4sIHBhcmVudElkPzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaXRlbVt0aGlzLmNoaWxkcmVuRmllbGQoKV0uZm9yRWFjaChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgJiZcbiAgICAgICAgY2hpbGRbdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmXG4gICAgICAgICFjaGlsZD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQmVoYXZpb3IoKSA9PT0gJ2Nhc2NhZGUnXG4gICAgICApIHtcbiAgICAgICAgYXdhaXQgdGhpcy5mZXRjaERhdGEoY2hpbGQpO1xuICAgICAgICBhd2FpdCB0aGlzLnNldE5vZGVMb2FkaW5nKGNoaWxkW3RoaXMudmFsdWVGaWVsZCgpXSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kKGNoaWxkKTtcbiAgICAgIH1cbiAgICAgIGNoaWxkW3RoaXMucGFyZW50RmllbGQoKV0gPSBwYXJlbnRJZDtcbiAgICAgIGNoaWxkW3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSA9IGlzU2VsZWN0ZWQ7XG4gICAgICBpZiAoY2hpbGRbdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oY2hpbGQsIGlzU2VsZWN0ZWQsIGNoaWxkW3RoaXMudmFsdWVGaWVsZCgpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogaW5kZXRlcm1pbmF0ZSBsb2dpY1xuICAgKlxuICAgKi9cblxuICBwcml2YXRlIHVwZGF0ZVBhcmVudFNlbGVjdGlvbihpdGVtOiB1bmtub3duLCBzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIGl0ZW1bdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gc2VsZWN0ZWQ7XG5cbiAgICBsZXQgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50KGl0ZW0sIHRoaXMuaXRlbXNTaWduYWwoKSk7XG5cbiAgICB3aGlsZSAoKHBhcmVudCAmJiBwYXJlbnRbdGhpcy5zZWxlY3RlZEZpZWxkKCldICE9IGZhbHNlKSB8fCAocGFyZW50ICYmIGl0ZW1bdGhpcy5zZWxlY3RlZEZpZWxkKCldKSkge1xuICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBwYXJlbnQ/Llt0aGlzLmNoaWxkcmVuRmllbGQoKV0/LmV2ZXJ5KChjaGlsZCkgPT4gY2hpbGRbdGhpcy5zZWxlY3RlZEZpZWxkKCldKTtcblxuICAgICAgY29uc3Qgc29tZVNlbGVjdGVkID0gcGFyZW50Py5bdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5zb21lKFxuICAgICAgICAoY2hpbGQpID0+IGNoaWxkW3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSB8fCBjaGlsZFt0aGlzLmluZGV0ZXJtaW5hdGVGaWVsZCgpXSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghYWxsU2VsZWN0ZWQgJiYgIXNvbWVTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnRbdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gZmFsc2U7XG4gICAgICAgIHBhcmVudFt0aGlzLmluZGV0ZXJtaW5hdGVGaWVsZCgpXSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFhbGxTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnRbdGhpcy5pbmRldGVybWluYXRlRmllbGQoKV0gPSB0cnVlO1xuICAgICAgICBwYXJlbnRbdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoYWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgcGFyZW50W3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSA9IHRydWU7XG4gICAgICAgIHBhcmVudFt0aGlzLmluZGV0ZXJtaW5hdGVGaWVsZCgpXSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50W3RoaXMuaW5kZXRlcm1pbmF0ZUZpZWxkKCldID0gZmFsc2U7XG4gICAgICAgIHBhcmVudFt0aGlzLnNlbGVjdGVkRmllbGQoKV0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQocGFyZW50LCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhcmVudChpdGVtOiB1bmtub3duLCBub2RlczogdW5rbm93bltdKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAobm9kZVt0aGlzLmNoaWxkcmVuRmllbGQoKV0/LmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfSBlbHNlIGlmIChub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQoaXRlbSwgbm9kZVt0aGlzLmNoaWxkcmVuRmllbGQoKV0pO1xuICAgICAgICBpZiAocGFyZW50KSByZXR1cm4gcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBmaW5kIG5vZGUgc2VsZWN0ZWQgdHJ1ZSBmb3IgZW1pdCBTZWxlY3Rpb25zXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgZmluZFNlbGVjdGVkTm9kZXMobm9kZXM6IHVua25vd25bXSk6IHVua25vd25bXSB7XG4gICAgbGV0IHNlbGVjdGVkTm9kZXM6IHVua25vd25bXSA9IFtdO1xuXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGVbdGhpcy5zZWxlY3RlZEZpZWxkKCldKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkZpZWxkKCldKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZXMgPSBzZWxlY3RlZE5vZGVzLmNvbmNhdCh0aGlzLmZpbmRTZWxlY3RlZE5vZGVzKG5vZGVbdGhpcy5jaGlsZHJlbkZpZWxkKCldKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBmaW5kIGZvciBlbWl0IFNlbGVjdGlvbnMgc2luZ2xlIG1vZGVcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBoYW5kbGVVblNlbGVjdE5vZGUoaXRlbXM6IHVua25vd25bXSkge1xuICAgIGl0ZW1zLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBjaGlsZFt0aGlzLnNlbGVjdGVkRmllbGQoKV0gPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVW5TZWxlY3ROb2RlKGNoaWxkW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogbGF6eSBsb2FkIGxvZ2ljXG4gICAqXG4gICAqL1xuXG4gIGZldGNoRGF0YShzZWxlY3RlZE5vZGU/OiB1bmtub3duKSB7XG4gICAgdGhpcy5pdGVtc1Byb21pc2Uoc2VsZWN0ZWROb2RlPy5bdGhpcy52YWx1ZUZpZWxkKCldKVxuICAgICAgLnRoZW4oKGRhdGE6IHVua25vd25bXSkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIGlmIChzZWxlY3RlZE5vZGU/Llt0aGlzLnZhbHVlRmllbGQoKV0pIHtcbiAgICAgICAgICAgIHRoaXMuZmluZE5vZGUoc2VsZWN0ZWROb2RlW3RoaXMudmFsdWVGaWVsZCgpXSwgZGF0YSwgdGhpcy5pdGVtc1NpZ25hbCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaXNOb2RlRXhwYW5kZWQgPSBkYXRhLmZpbHRlcigoY2hpbGQpID0+IGNoaWxkW3RoaXMuZXhwYW5kZWRGaWVsZCgpXSk7XG5cbiAgICAgICAgICAgIGlzTm9kZUV4cGFuZGVkLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZmV0Y2hEYXRhKGNoaWxkKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcoc2VsZWN0ZWROb2RlPy5bdGhpcy52YWx1ZUZpZWxkKCldLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE5vZGUocGFyZW50SWQ6IG51bWJlciB8IHN0cmluZywgX2NoaWxkcmVuOiB1bmtub3duW10sIHNvdXJjZTogdW5rbm93bltdKSB7XG4gICAgaWYgKHNvdXJjZS5sZW5ndGgpIHtcbiAgICAgIHNvdXJjZS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50W3RoaXMudmFsdWVGaWVsZCgpXSA9PSBwYXJlbnRJZCkge1xuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkJlaGF2aW9yKCkgPT09ICdpbmRldGVybWluYXRlJyAmJiBlbGVtZW50W3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSkge1xuICAgICAgICAgICAgX2NoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiAoY2hpbGRbdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gdHJ1ZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50W3RoaXMuY2hpbGRyZW5GaWVsZCgpXSA9IF9jaGlsZHJlbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZWxlbWVudD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSkgdGhpcy5maW5kTm9kZShwYXJlbnRJZCwgX2NoaWxkcmVuLCBlbGVtZW50W3RoaXMuY2hpbGRyZW5GaWVsZCgpXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBlbWl0IHdoZW4gYXJyb3cgY2xpY2tcbiAgICpcbiAgICovXG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVFeHBhbmRDbGljayhub2RlOiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSBub2RlLmRhdGE7XG4gICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIG5vZGUuZGF0YVt0aGlzLmV4cGFuZGVkRmllbGQoKV0gJiYgIW5vZGU/LmRhdGFbdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmV0Y2hEYXRhKHNlbGVjdGVkTm9kZSk7XG4gICAgICB0aGlzLnNldE5vZGVMb2FkaW5nKHNlbGVjdGVkTm9kZVt0aGlzLnZhbHVlRmllbGQoKV0sIHRydWUpO1xuICAgIH1cbiAgICB0aGlzLm9uQ29sbGFwc2VkQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBub2RlLmRhdGEsIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIGhhbmRsZVVuQWN0aXZlTm9kZSh1bkFjdGl2ZVNvdXJjZTogdW5rbm93bltdKSB7XG4gICAgdW5BY3RpdmVTb3VyY2UuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNoaWxkW3RoaXMuYWN0aXZlRmllbGQoKV0gPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVW5BY3RpdmVOb2RlKGNoaWxkW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRpbmdTdGF0ZSA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBib29sZWFuPj4oe30pO1xuXG4gIHByb3RlY3RlZCBpc05vZGVMb2FkaW5nKG5vZGVJZDogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlKClbbm9kZUlkXSB8fCBmYWxzZTtcbiAgfVxuXG4gIHNldE5vZGVMb2FkaW5nKG5vZGVJZDogc3RyaW5nIHwgbnVtYmVyLCBpc0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBbbm9kZUlkXTogaXNMb2FkaW5nLFxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlT25UcmVlTm9kZShub2RlOiB1bmtub3duLCBvcGVyYXRpb246IEFYVHJlZVZpZXdPcGVyYXRpb25NZXRob2QsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgJ2FjdGl2ZSc6XG4gICAgICAgIG5vZGVbdGhpcy5hY3RpdmVGaWVsZCgpXSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4cGFuZCc6XG4gICAgICAgIG5vZGVbdGhpcy5leHBhbmRlZEZpZWxkKCldID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIG5vZGVbdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb2RlRXhwYW5kQ2xpY2soeyBkYXRhOiBub2RlLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlzaWJsZSc6XG4gICAgICAgIG5vZGVbdGhpcy52aXNpYmxlRmllbGQoKV0gPSB2YWx1ZTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcbiAgICAgICAgbm9kZVt0aGlzLmRpc2FibGVGaWVsZCgpXSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvKipcbiAgICAgKlxuICAgICAqIGZvciBkZXRlY3QgY2hhbmdlcyB0cmVldmlld2l0ZW1cbiAgICAgKlxuICAgICAqL1xuXG4gICAgdGhpcy5leGVjdXRvckNoYW5nZXMuc2V0KG9wZXJhdGlvbik7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIGlmICh0aGlzLml0ZW1zUHJvbWlzZSkge1xuICAgICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAocmVzb2x2ZWRJdGVtcz8ubGVuZ3RoKSB7XG4gIEBmb3IgKG5vZGUgb2YgcmVzb2x2ZWRJdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG5vZGUgfVwiPjwvbmctY29udGFpbmVyPlxuICB9XG59IEBlbHNlIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eVRlbXBsYXRlIHx8IGVtcHR5XCI+PC9uZy1jb250YWluZXI+XG59XG5cbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW1bdmlzaWJsZUZpZWxkKCldICE9PSBmYWxzZSkge1xuICAgIDxheC10cmVlLXZpZXctaXRlbVxuICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICBbaXNFeHBhbmRlZF09XCJpdGVtW2V4cGFuZGVkRmllbGQoKV1cIlxuICAgICAgWyhpc0FjdGl2ZSldPVwiaXRlbVthY3RpdmVGaWVsZCgpXVwiXG4gICAgICBbaXNMb2FkaW5nXT1cImlzTm9kZUxvYWRpbmcoaXRlbVt2YWx1ZUZpZWxkKCldKVwiXG4gICAgICBbZXhlY3V0b3JDaGFuZ2VzXT1cImV4ZWN1dG9yQ2hhbmdlcygpXCJcbiAgICA+XG4gICAgICBAaWYgKFxuICAgICAgICAoc2hvd0NoZWNrYm94KCkgJiYgc2VsZWN0aW9uU2NvcGUoKSA9PT0gJ2FsbCcgJiYgaXRlbVtoYXNDaGVja2JveEZpZWxkKCldICE9PSBmYWxzZSkgfHxcbiAgICAgICAgKHNob3dDaGVja2JveCgpICYmXG4gICAgICAgICAgc2VsZWN0aW9uU2NvcGUoKSA9PT0gJ3BhcmVudCcgJiZcbiAgICAgICAgICBpdGVtW2NoaWxkcmVuRmllbGQoKV0/Lmxlbmd0aCAmJlxuICAgICAgICAgIGl0ZW1baGFzQ2hlY2tib3hGaWVsZCgpXSkgIT09IGZhbHNlIHx8XG4gICAgICAgIChzaG93Q2hlY2tib3goKSAmJlxuICAgICAgICAgIHNlbGVjdGlvblNjb3BlKCkgPT09ICdjaGlsZHJlbicgJiZcbiAgICAgICAgICAhaXRlbVtjaGlsZHJlbkZpZWxkKCldPy5sZW5ndGggJiZcbiAgICAgICAgICBpdGVtW2hhc0NoZWNrYm94RmllbGQoKV0gIT09IGZhbHNlKVxuICAgICAgKSB7XG4gICAgICAgIDxheC1jaGVjay1ib3hcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGQoKV1cIlxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIml0ZW1baW5kZXRlcm1pbmF0ZUZpZWxkKCldXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW1bc2VsZWN0ZWRGaWVsZCgpXVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZU5vZGVTZWxlY3Rpb25DbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgPjwvYXgtY2hlY2stYm94PlxuICAgICAgfVxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgQGlmIChpdGVtW2ljb25GaWVsZCgpXSkge1xuICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW1baWNvbkZpZWxkKCldXCI+PC9heC1pY29uPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8aT48L2k+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgQGlmIChpdGVtW3RleHRGaWVsZCgpXSkge1xuICAgICAgICA8YXgtdGV4dD57eyBpdGVtW3RleHRGaWVsZCgpXSB9fTwvYXgtdGV4dD5cbiAgICAgIH1cblxuICAgICAgPGF4LXN1ZmZpeD48L2F4LXN1ZmZpeD5cbiAgICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0/LltjaGlsZHJlbkZpZWxkKCldOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L2F4LXRyZWUtdmlldy1pdGVtPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICB7eyAnbm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport { AXTreeViewComponent } from './tree-view.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXTreeViewComponent, AXTreeViewItemComponent];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXFormModule,\n FormsModule,\n AXTooltipModule,\n AXLoadingModule,\n];\nexport class AXTreeViewModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, imports: [AXTreeViewComponent, AXTreeViewItemComponent, CommonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXFormModule,\n FormsModule,\n AXTooltipModule,\n AXLoadingModule], exports: [AXTreeViewComponent, AXTreeViewItemComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, imports: [COMPONENT, MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...COMPONENT, ...MODULES],\n exports: [...COMPONENT],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTVELE1BQU0sU0FBUyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztBQUNqRSxNQUFNLE9BQU8sR0FBRztJQUNkLFlBQVk7SUFDWixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0NBQ2hCLENBQUM7QUFLRixNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixZQWZWLG1CQUFtQixFQUFFLHVCQUF1QixFQUU3RCxZQUFZO1lBQ1osY0FBYztZQUNkLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsZUFBZSxhQVRFLG1CQUFtQixFQUFFLHVCQUF1QjsrR0FlbEQsZ0JBQWdCLFlBSGQsU0FBUyxFQUFLLE9BQU87OzJGQUd2QixnQkFBZ0I7a0JBSjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYVHJlZVZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXctaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFRyZWVWaWV3Q29tcG9uZW50LCBBWFRyZWVWaWV3SXRlbUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW1xuICBDb21tb25Nb2R1bGUsXG4gIEFYQ29tbW9uTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhDaGVja0JveE1vZHVsZSxcbiAgQVhGb3JtTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQVhUb29sdGlwTW9kdWxlLFxuICBBWExvYWRpbmdNb2R1bGUsXG5dO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLkNPTVBPTkVOVCwgLi4uTU9EVUxFU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3TW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtdHJlZS12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2Fjb3JleC1jb21wb25lbnRzLXRyZWUtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-tree-view.mjs","sources":["../tmp-esm2022/tree-view/lib/tree-view.class.js","../tmp-esm2022/tree-view/lib/tree-view-item.component.js","../tmp-esm2022/tree-view/lib/tree-view.component.js","../tmp-esm2022/tree-view/lib/tree-view.component.module.js","../tmp-esm2022/tree-view/acorex-components-tree-view.js"],"sourcesContent":["import { AXClickEvent } from '@acorex/cdk/common';\nexport class AXTreeItemClickBaseEvent extends AXClickEvent {\n}\nexport class AXTreeViewBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXcuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2xELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0NBRXpEO0FBWUQsTUFBTSxPQUFnQixjQUFjO0NBK0JuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCBleHRlbmRzIEFYQ2xpY2tFdmVudCB7XG4gIG5hdGl2ZUVsZW1lbnQ6IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgQVhUcmVlVmlld1NlbGVjdGlvbkJlaGF2aW9yID0gJ2F1dG9FeHBhbmQnIHwgJ2Nhc2NhZGUnIHwgJ2luZGV0ZXJtaW5hdGUnO1xuXG5leHBvcnQgdHlwZSBBWFRyZWVWaWV3RXhwYW5kQmVoYXZpb3IgPSAnY2xpY2snIHwgJ2RiQ2xpY2snIHwgJ2RlZnVsdCc7XG5cbmV4cG9ydCB0eXBlIEFYVHJlZVZpZXdPcGVyYXRpb25NZXRob2QgPSAnZXhwYW5kJyB8ICdhY3RpdmUnIHwgJ3Zpc2libGUnIHwgJ2Rpc2FibGVkJztcblxuZXhwb3J0IHR5cGUgQVhUcmVlVmlld0xvb2sgPSAnd2l0aC1saW5lJyB8ICdkZWZ1bHQnO1xuXG5leHBvcnQgdHlwZSBBWFRyZWVWaWV3U2VsZWN0aW9uU2NvcGUgPSAnYWxsJyB8ICdwYXJlbnQnIHwgJ2NoaWxkcmVuJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYVHJlZVZpZXdCYXNlIHtcbiAgYWJzdHJhY3QgZ2V0Q2hpbGRyZW4oaXRlbTogdW5rbm93bik6IHVua25vd25bXTtcblxuICBhYnN0cmFjdCBoYXNDaGlsZHJlbihpdGVtOiB1bmtub3duKTogYm9vbGVhbjtcblxuICBhYnN0cmFjdCBpdGVtVGVtcGxhdGU6IGFueTtcblxuICAvLyBGaWVsZCBhY2Nlc3NvcnNcbiAgYWJzdHJhY3QgZGlzYWJsZUZpZWxkKCk6IHN0cmluZztcbiAgYWJzdHJhY3QgY2hpbGRyZW5GaWVsZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IHZhbHVlRmllbGQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBhY3RpdmVGaWVsZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGhhc0NoaWxkRmllbGQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCB0b29sdGlwRmllbGQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBzaG93RW1wdHlOb2RlTWFzc2FnZSgpOiBib29sZWFuO1xuICAvLyBCZWhhdmlvciBtZXRob2RzXG4gIGFic3RyYWN0IGV4cGFuZE9uKCk6IEFYVHJlZVZpZXdFeHBhbmRCZWhhdmlvcjtcbiAgYWJzdHJhY3QgZm9jdXNOb2RlRW5hYmxlZCgpOiBib29sZWFuO1xuICBhYnN0cmFjdCB0b2dnbGVJY29ucygpOiB7IGV4cGFuZGVkOiBzdHJpbmc7IGNvbGxhcHNlZDogc3RyaW5nIH0gfCBudWxsO1xuXG4gIC8vIERhdGEgbWFuYWdlbWVudFxuICBhYnN0cmFjdCBpdGVtc1Byb21pc2U6IGJvb2xlYW47XG4gIGFic3RyYWN0IGl0ZW1zU2lnbmFsKCk6IHVua25vd25bXTtcbiAgYWJzdHJhY3QgZmV0Y2hEYXRhKGl0ZW06IHVua25vd24pOiB2b2lkO1xuICBhYnN0cmFjdCBzZXROb2RlTG9hZGluZyh2YWx1ZTogdW5rbm93biwgbG9hZGluZzogYm9vbGVhbik6IHZvaWQ7XG4gIGFic3RyYWN0IGhhbmRsZVVuQWN0aXZlTm9kZShpdGVtczogdW5rbm93bltdKTogdm9pZDtcblxuICAvLyBFdmVudCBlbWl0dGVyc1xuICBhYnN0cmFjdCBvbkNvbGxhcHNlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjx7IGNvbXBvbmVudDogYW55OyBkYXRhOiB1bmtub3duOyBuYXRpdmVFbGVtZW50OiBhbnkgfT47XG4gIGFic3RyYWN0IG9uTm9kZUNsaWNrOiBFdmVudEVtaXR0ZXI8eyBjb21wb25lbnQ6IGFueTsgZGF0YTogdW5rbm93bjsgbmF0aXZlRWxlbWVudDogYW55IH0+O1xuICBhYnN0cmFjdCBvbk5vZGVkYkNsaWNrOiBFdmVudEVtaXR0ZXI8eyBjb21wb25lbnQ6IGFueTsgZGF0YTogdW5rbm93bjsgbmF0aXZlRWxlbWVudDogYW55IH0+O1xufVxuIl19","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { AsyncPipe, CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, model, ViewEncapsulation } from '@angular/core';\nimport { AXTreeViewBase } from './tree-view.class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class AXTreeViewItemComponent extends NXComponent {\n constructor() {\n super();\n this.treeView = inject(AXTreeViewBase);\n this.item = input();\n this.isExpanded = model(false);\n this.isActive = model(false);\n this.isLoading = input(false);\n this.executorChanges = input();\n this.platformService = inject(AXPlatform);\n this.arrowIcon = computed(() => {\n const baseClasses = 'ax-tree-view-arrow ax-icon ax-icon-solid';\n const toggleIcons = this.treeView.toggleIcons();\n if (toggleIcons) {\n return this.isExpanded() ? `${baseClasses} ${toggleIcons.expanded}` : `${baseClasses} ${toggleIcons.collapsed}`;\n }\n if (this.isExpanded()) {\n return `${baseClasses} ax-icon-chevron-down`;\n }\n return this.platformService.isRtl()\n ? `${baseClasses} ax-icon-chevron-left`\n : `${baseClasses} ax-icon-chevron-right`;\n });\n }\n handleArrowNodeClick() {\n if (this.item()[this.treeView.disableField()] || this.isLoading() || this.treeView.expandOn() === 'dbClick') {\n return;\n }\n this.isExpanded.set(!this.isExpanded());\n if (this.treeView.itemsPromise && this.isExpanded() && !this.item()[this.treeView.childrenField()]?.length) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n this.treeView.onCollapsedChanged.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n handleTextClick() {\n if (this.item()[this.treeView.disableField()]) {\n return;\n }\n if (this.treeView.focusNodeEnabled()) {\n this.treeView.handleUnActiveNode(this.treeView.itemsSignal());\n this.item()[this.treeView.activeField()] = true;\n }\n this.treeView.onNodeClick.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n handleTextDbClick() {\n if (this.item()[this.treeView.disableField()] || this.treeView.expandOn() === 'click') {\n return;\n }\n if (this.item()?.[this.treeView.childrenField()] || this.item()[this.treeView.hasChildField()]) {\n this.isExpanded.set(!this.isExpanded());\n if (this.treeView.itemsPromise && this.isExpanded()) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n }\n this.treeView.onNodedbClick.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n this.treeView.onCollapsedChanged.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXTreeViewItemComponent, isStandalone: true, selector: \"ax-tree-view-item\", inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: \"isExpanded\", publicName: \"isExpanded\", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: \"isActive\", publicName: \"isActive\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, executorChanges: { classPropertyName: \"executorChanges\", publicName: \"executorChanges\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: \"isExpandedChange\", isActive: \"isActiveChange\" }, providers: [{ provide: AXComponent, useExisting: AXTreeViewItemComponent }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-tree-view-container\\\">\\n @if (\\n (treeView.showEmptyNodeMassage() && item().hasOwnProperty(treeView.childrenField())) ||\\n (item()[this.treeView.childrenField()]?.length && !isLoading()) ||\\n (item()[treeView.hasChildField()] && !isLoading())\\n ) {\\n <div class=\\\"ax-tree-view-icon-container\\\" (click)=\\\"handleArrowNodeClick()\\\">\\n <i [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\" class=\\\"{{ arrowIcon() }}\\\"></i>\\n </div>\\n } @else if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n\\n <div class=\\\"ax-tree-view-items\\\">\\n <ng-content select=\\\"ax-check-box\\\"></ng-content>\\n <div\\n [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\"\\n [axTooltip]=\\\"item()[treeView.tooltipField()]\\\"\\n axTooltipPlacement=\\\"end-bottom\\\"\\n (click)=\\\"handleTextClick()\\\"\\n (dblclick)=\\\"handleTextDbClick()\\\"\\n class=\\\"ax-tree-view-items-prefix ax-noselect-tree-view\\\"\\n [class.ax-state-tree-view-active]=\\\"item()[treeView.activeField()]\\\"\\n >\\n @if (treeView.itemTemplate) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"treeView.itemTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item() }\\\"\\n ></ng-container>\\n } @else {\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n }\\n </div>\\n </div>\\n</div>\\n\\n<div\\n class=\\\"ax-tree-view-child\\\"\\n [class.ax-tree-view-empty-child]=\\\"\\n treeView.showEmptyNodeMassage() &&\\n item().hasOwnProperty(treeView.childrenField()) &&\\n !item()[treeView.childrenField()]?.length\\n \\\"\\n [@collapseExpand]=\\\"isExpanded() ? 'expanded' : 'collapsed'\\\"\\n>\\n @if (\\n treeView.showEmptyNodeMassage() &&\\n item().hasOwnProperty(treeView.childrenField()) &&\\n !item()[treeView.childrenField()]?.length\\n ) {\\n <ng-container [ngTemplateOutlet]=\\\"empty\\\"></ng-container>\\n } @else {\\n <ng-content></ng-content>\\n }\\n</div>\\n\\n<ng-template #empty>\\n {{ '@acorex:common.general.no-result-found' | translate | async }}\\n</ng-template>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltip\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], animations: [\n trigger('collapseExpand', [\n state('collapsed', style({\n height: '0',\n overflow: 'hidden',\n opacity: 0,\n })),\n state('expanded', style({\n height: '*',\n overflow: 'hidden',\n opacity: 1,\n })),\n transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),\n ]),\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-tree-view-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('collapseExpand', [\n state('collapsed', style({\n height: '0',\n overflow: 'hidden',\n opacity: 0,\n })),\n state('expanded', style({\n height: '*',\n overflow: 'hidden',\n opacity: 1,\n })),\n transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),\n ]),\n ], imports: [CommonModule, AXLoadingComponent, AXTooltipDirective, NgTemplateOutlet, AXTranslatorPipe, AsyncPipe], providers: [{ provide: AXComponent, useExisting: AXTreeViewItemComponent }], template: \"<div class=\\\"ax-tree-view-container\\\">\\n @if (\\n (treeView.showEmptyNodeMassage() && item().hasOwnProperty(treeView.childrenField())) ||\\n (item()[this.treeView.childrenField()]?.length && !isLoading()) ||\\n (item()[treeView.hasChildField()] && !isLoading())\\n ) {\\n <div class=\\\"ax-tree-view-icon-container\\\" (click)=\\\"handleArrowNodeClick()\\\">\\n <i [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\" class=\\\"{{ arrowIcon() }}\\\"></i>\\n </div>\\n } @else if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n\\n <div class=\\\"ax-tree-view-items\\\">\\n <ng-content select=\\\"ax-check-box\\\"></ng-content>\\n <div\\n [class.ax-state-disabled]=\\\"item()[treeView.disableField()]\\\"\\n [axTooltip]=\\\"item()[treeView.tooltipField()]\\\"\\n axTooltipPlacement=\\\"end-bottom\\\"\\n (click)=\\\"handleTextClick()\\\"\\n (dblclick)=\\\"handleTextDbClick()\\\"\\n class=\\\"ax-tree-view-items-prefix ax-noselect-tree-view\\\"\\n [class.ax-state-tree-view-active]=\\\"item()[treeView.activeField()]\\\"\\n >\\n @if (treeView.itemTemplate) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"treeView.itemTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item() }\\\"\\n ></ng-container>\\n } @else {\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n }\\n </div>\\n </div>\\n</div>\\n\\n<div\\n class=\\\"ax-tree-view-child\\\"\\n [class.ax-tree-view-empty-child]=\\\"\\n treeView.showEmptyNodeMassage() &&\\n item().hasOwnProperty(treeView.childrenField()) &&\\n !item()[treeView.childrenField()]?.length\\n \\\"\\n [@collapseExpand]=\\\"isExpanded() ? 'expanded' : 'collapsed'\\\"\\n>\\n @if (\\n treeView.showEmptyNodeMassage() &&\\n item().hasOwnProperty(treeView.childrenField()) &&\\n !item()[treeView.childrenField()]?.length\\n ) {\\n <ng-container [ngTemplateOutlet]=\\\"empty\\\"></ng-container>\\n } @else {\\n <ng-content></ng-content>\\n }\\n</div>\\n\\n<ng-template #empty>\\n {{ '@acorex:common.general.no-result-found' | translate | async }}\\n</ng-template>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXctaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLG1CQUFtQixDQUFDOzs7QUErQjlFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFXO0lBQ3REO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFHVixhQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxD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NEJBQ3hCLEtBQUssQ0FDSCxXQUFXLEVBQ1gsS0FBSyxDQUFDO2dDQUNKLE1BQU0sRUFBRSxHQUFHO2dDQUNYLFFBQVEsRUFBRSxRQUFRO2dDQUNsQixPQUFPLEVBQUUsQ0FBQzs2QkFDWCxDQUFDLENBQ0g7NEJBQ0QsS0FBSyxDQUNILFVBQVUsRUFDVixLQUFLLENBQUM7Z0NBQ0osTUFBTSxFQUFFLEdBQUc7Z0NBQ1gsUUFBUSxFQUFFLFFBQVE7Z0NBQ2xCLE9BQU8sRUFBRSxDQUFDOzZCQUNYLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO3lCQUNyRSxDQUFDO3FCQUNILFdBQ1EsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGFBQ25HLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRyZWVWaWV3QmFzZSwgQVhUcmVlVmlld09wZXJhdGlvbk1ldGhvZCB9IGZyb20gJy4vdHJlZS12aWV3LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdHJlZS12aWV3LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJ3RyZWUtdmlldy1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjb2xsYXBzZUV4cGFuZCcsIFtcbiAgICAgIHN0YXRlKFxuICAgICAgICAnY29sbGFwc2VkJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2V4cGFuZGVkJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgW2FuaW1hdGUoJzMwMG1zIGVhc2UtaW4tb3V0JyldKSxcbiAgICBdKSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhMb2FkaW5nQ29tcG9uZW50LCBBWFRvb2x0aXBEaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXQsIEFYVHJhbnNsYXRvclBpcGUsIEFzeW5jUGlwZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFRyZWVWaWV3SXRlbUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1Db21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICB0cmVlVmlldyA9IGluamVjdChBWFRyZWVWaWV3QmFzZSk7XG5cbiAgaXRlbSA9IGlucHV0PHVua25vd24+KCk7XG5cbiAgaXNFeHBhbmRlZCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBpc0FjdGl2ZSA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgZXhlY3V0b3JDaGFuZ2VzID0gaW5wdXQ8QVhUcmVlVmlld09wZXJhdGlvbk1ldGhvZD4oKTtcblxuICBwcm90ZWN0ZWQgcGxhdGZvcm1TZXJ2aWNlID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuXG4gIHByb3RlY3RlZCBhcnJvd0ljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSAnYXgtdHJlZS12aWV3LWFycm93IGF4LWljb24gYXgtaWNvbi1zb2xpZCc7XG4gICAgY29uc3QgdG9nZ2xlSWNvbnMgPSB0aGlzLnRyZWVWaWV3LnRvZ2dsZUljb25zKCk7XG5cbiAgICBpZiAodG9nZ2xlSWNvbnMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzRXhwYW5kZWQoKSA/IGAke2Jhc2VDbGFzc2VzfSAke3RvZ2dsZUljb25zLmV4cGFuZGVkfWAgOiBgJHtiYXNlQ2xhc3Nlc30gJHt0b2dnbGVJY29ucy5jb2xsYXBzZWR9YDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKCkpIHtcbiAgICAgIHJldHVybiBgJHtiYXNlQ2xhc3Nlc30gYXgtaWNvbi1jaGV2cm9uLWRvd25gO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBsYXRmb3JtU2VydmljZS5pc1J0bCgpXG4gICAgICA/IGAke2Jhc2VDbGFzc2VzfSBheC1pY29uLWNoZXZyb24tbGVmdGBcbiAgICAgIDogYCR7YmFzZUNsYXNzZXN9IGF4LWljb24tY2hldnJvbi1yaWdodGA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVBcnJvd05vZGVDbGljaygpIHtcbiAgICBpZiAodGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy5kaXNhYmxlRmllbGQoKV0gfHwgdGhpcy5pc0xvYWRpbmcoKSB8fCB0aGlzLnRyZWVWaWV3LmV4cGFuZE9uKCkgPT09ICdkYkNsaWNrJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNFeHBhbmRlZC5zZXQoIXRoaXMuaXNFeHBhbmRlZCgpKTtcblxuICAgIGlmICh0aGlzLnRyZWVWaWV3Lml0ZW1zUHJvbWlzZSAmJiB0aGlzLmlzRXhwYW5kZWQoKSAmJiAhdGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudHJlZVZpZXcuZmV0Y2hEYXRhKHRoaXMuaXRlbSgpKTtcbiAgICAgIHRoaXMudHJlZVZpZXcuc2V0Tm9kZUxvYWRpbmcodGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy52YWx1ZUZpZWxkKCldLCB0cnVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnRyZWVWaWV3Lm9uQ29sbGFwc2VkQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB0aGlzLml0ZW0oKSwgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVRleHRDbGljaygpIHtcbiAgICBpZiAodGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy5kaXNhYmxlRmllbGQoKV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudHJlZVZpZXcuZm9jdXNOb2RlRW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLnRyZWVWaWV3LmhhbmRsZVVuQWN0aXZlTm9kZSh0aGlzLnRyZWVWaWV3Lml0ZW1zU2lnbmFsKCkpO1xuICAgICAgdGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy5hY3RpdmVGaWVsZCgpXSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMudHJlZVZpZXcub25Ob2RlQ2xpY2suZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5pdGVtKCksIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUZXh0RGJDbGljaygpIHtcbiAgICBpZiAodGhpcy5pdGVtKClbdGhpcy50cmVlVmlldy5kaXNhYmxlRmllbGQoKV0gfHwgdGhpcy50cmVlVmlldy5leHBhbmRPbigpID09PSAnY2xpY2snKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLml0ZW0oKT8uW3RoaXMudHJlZVZpZXcuY2hpbGRyZW5GaWVsZCgpXSB8fCB0aGlzLml0ZW0oKVt0aGlzLnRyZWVWaWV3Lmhhc0NoaWxkRmllbGQoKV0pIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZC5zZXQoIXRoaXMuaXNFeHBhbmRlZCgpKTtcblxuICAgICAgaWYgKHRoaXMudHJlZVZpZXcuaXRlbXNQcm9taXNlICYmIHRoaXMuaXNFeHBhbmRlZCgpKSB7XG4gICAgICAgIHRoaXMudHJlZVZpZXcuZmV0Y2hEYXRhKHRoaXMuaXRlbSgpKTtcbiAgICAgICAgdGhpcy50cmVlVmlldy5zZXROb2RlTG9hZGluZyh0aGlzLml0ZW0oKVt0aGlzLnRyZWVWaWV3LnZhbHVlRmllbGQoKV0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudHJlZVZpZXcub25Ob2RlZGJDbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB0aGlzLml0ZW0oKSwgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50IH0pO1xuXG4gICAgdGhpcy50cmVlVmlldy5vbkNvbGxhcHNlZENoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5pdGVtKCksIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LXRyZWUtdmlldy1jb250YWluZXJcIj5cbiAgQGlmIChcbiAgICAodHJlZVZpZXcuc2hvd0VtcHR5Tm9kZU1hc3NhZ2UoKSAmJiBpdGVtKCkuaGFzT3duUHJvcGVydHkodHJlZVZpZXcuY2hpbGRyZW5GaWVsZCgpKSkgfHxcbiAgICAoaXRlbSgpW3RoaXMudHJlZVZpZXcuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoICYmICFpc0xvYWRpbmcoKSkgfHxcbiAgICAoaXRlbSgpW3RyZWVWaWV3Lmhhc0NoaWxkRmllbGQoKV0gJiYgIWlzTG9hZGluZygpKVxuICApIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtdHJlZS12aWV3LWljb24tY29udGFpbmVyXCIgKGNsaWNrKT1cImhhbmRsZUFycm93Tm9kZUNsaWNrKClcIj5cbiAgICAgIDxpIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtKClbdHJlZVZpZXcuZGlzYWJsZUZpZWxkKCldXCIgY2xhc3M9XCJ7eyBhcnJvd0ljb24oKSB9fVwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiYXgtdHJlZS12aWV3LWl0ZW1zXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY2hlY2stYm94XCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtKClbdHJlZVZpZXcuZGlzYWJsZUZpZWxkKCldXCJcbiAgICAgIFtheFRvb2x0aXBdPVwiaXRlbSgpW3RyZWVWaWV3LnRvb2x0aXBGaWVsZCgpXVwiXG4gICAgICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJlbmQtYm90dG9tXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVUZXh0Q2xpY2soKVwiXG4gICAgICAoZGJsY2xpY2spPVwiaGFuZGxlVGV4dERiQ2xpY2soKVwiXG4gICAgICBjbGFzcz1cImF4LXRyZWUtdmlldy1pdGVtcy1wcmVmaXggYXgtbm9zZWxlY3QtdHJlZS12aWV3XCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS10cmVlLXZpZXctYWN0aXZlXT1cIml0ZW0oKVt0cmVlVmlldy5hY3RpdmVGaWVsZCgpXVwiXG4gICAgPlxuICAgICAgQGlmICh0cmVlVmlldy5pdGVtVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyZWVWaWV3Lml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtKCkgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRleHRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImF4LXRyZWUtdmlldy1jaGlsZFwiXG4gIFtjbGFzcy5heC10cmVlLXZpZXctZW1wdHktY2hpbGRdPVwiXG4gICAgdHJlZVZpZXcuc2hvd0VtcHR5Tm9kZU1hc3NhZ2UoKSAmJlxuICAgIGl0ZW0oKS5oYXNPd25Qcm9wZXJ0eSh0cmVlVmlldy5jaGlsZHJlbkZpZWxkKCkpICYmXG4gICAgIWl0ZW0oKVt0cmVlVmlldy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGhcbiAgXCJcbiAgW0Bjb2xsYXBzZUV4cGFuZF09XCJpc0V4cGFuZGVkKCkgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIlxuPlxuICBAaWYgKFxuICAgIHRyZWVWaWV3LnNob3dFbXB0eU5vZGVNYXNzYWdlKCkgJiZcbiAgICBpdGVtKCkuaGFzT3duUHJvcGVydHkodHJlZVZpZXcuY2hpbGRyZW5GaWVsZCgpKSAmJlxuICAgICFpdGVtKClbdHJlZVZpZXcuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoXG4gICkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlcIj48L25nLWNvbnRhaW5lcj5cbiAgfSBAZWxzZSB7XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAge3sgJ0BhY29yZXg6Y29tbW9uLmdlbmVyYWwubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, HostBinding, inject, Input, input, output, signal, TemplateRef, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport { AXTreeViewBase, } from './tree-view.class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class AXTreeViewComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.itemsSignal = signal([]);\n this.items = input();\n this.showCheckbox = input(true);\n this.hasCheckboxField = input('hasCheckbox');\n this.selectionMode = input('single');\n this.selectionBehavior = input();\n this.selectionScope = input('all');\n this.focusNodeEnabled = input(true);\n this.valueField = input('id');\n this.textField = input('text');\n this.visibleField = input('visible');\n this.disableField = input('disabled');\n this.hasChildField = input('hasChild');\n this.selectedField = input('selected');\n this.expandedField = input('expanded');\n this.tooltipField = input('tooltip');\n this.childrenField = input('children');\n this.activeField = input('active');\n this.indeterminateField = input('indeterminate');\n this.parentField = input('parentId');\n this.iconField = input('icon');\n this.toggleIcons = input();\n this.look = input('defult');\n this.showEmptyNodeMassage = input(false);\n this.onSelectionChanged = output();\n this.onItemSelectedChanged = output();\n this.onNodeClick = output();\n this.onCollapsedChanged = output();\n this.onNodedbClick = output();\n this.executorChanges = signal(null);\n this.platformService = inject(AXPlatform);\n this.#effect = effect(() => {\n const itemsInput = this.items();\n if (typeof itemsInput === 'function') {\n const result = itemsInput();\n if (result instanceof Promise) {\n this.itemsPromise = (options) => itemsInput(options);\n this.fetchData();\n }\n else {\n this.itemsSignal.set(result);\n this.itemsPromise = null;\n }\n }\n else {\n this.itemsSignal.set(itemsInput);\n this.itemsPromise = null;\n }\n });\n this.expandOn = input('defult');\n this.loadingState = signal({});\n }\n /** @ignore */\n get __hostClass() {\n return [`ax-look-${this.look()}`];\n }\n get resolvedItems() {\n return this.itemsSignal();\n }\n #effect;\n handleNodeSelectionClick(event, item) {\n if (item[this.disableField()] || this.isNodeLoading(item[this.valueField()])) {\n return;\n }\n if (this.selectionMode() === 'single' && event.isUserInteraction) {\n this.handleUnSelectNode(this.itemsSignal());\n }\n if (event.isUserInteraction) {\n item[this.selectedField()] = event.value;\n if (event.value !== null) {\n switch (this.selectionBehavior()) {\n case 'autoExpand':\n if (event.value) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n this.setNodeLoading(item[this.valueField()], true);\n this.fetchData(item);\n }\n this.toggleExpand(item);\n }\n break;\n case 'cascade':\n this.expandAndToggleSelection(item, event.value);\n break;\n case 'indeterminate':\n if (item?.[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, event.value, item[this.valueField()]);\n }\n this.updateParentSelection(item, event.value);\n break;\n default:\n break;\n }\n }\n this.onItemSelectedChanged.emit({\n component: this,\n data: item,\n nativeElement: this.nativeElement,\n });\n const result = this.findSelectedNodes(this.itemsSignal());\n this.onSelectionChanged.emit({\n component: this,\n data: result,\n nativeElement: this.nativeElement,\n });\n }\n }\n /**\n *\n * auto expand\n *\n */\n toggleExpand(item) {\n if (!item[this.expandedField()]) {\n item[this.expandedField()] = true;\n }\n }\n /**\n *\n * expand and change value parent change\n *\n */\n async expandAndToggleSelection(item, selected) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n await this.setNodeLoading(item[this.valueField()], true);\n await this.fetchData(item);\n }\n this.toggleExpand(item);\n if (item[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, selected, item[this.valueField()]);\n }\n }\n applySelectionToChildren(item, isSelected, parentId) {\n item[this.childrenField()].forEach(async (child) => {\n if (this.itemsPromise &&\n child[this.hasChildField()] &&\n !child?.[this.childrenField()]?.length &&\n this.selectionBehavior() === 'cascade') {\n await this.setNodeLoading(child[this.valueField()], true);\n await this.fetchData(child);\n this.toggleExpand(child);\n }\n child[this.parentField()] = parentId;\n child[this.selectedField()] = isSelected;\n if (child[this.childrenField()]?.length) {\n this.applySelectionToChildren(child, isSelected, child[this.valueField()]);\n }\n });\n }\n /**\n *\n * indeterminate logic\n *\n */\n updateParentSelection(item, selected) {\n item[this.selectedField()] = selected;\n let parent = this.findParent(item, this.itemsSignal());\n while ((parent && parent[this.selectedField()] != false) || (parent && item[this.selectedField()])) {\n const allSelected = parent?.[this.childrenField()]?.every((child) => child[this.selectedField()]);\n const someSelected = parent?.[this.childrenField()]?.some((child) => child[this.selectedField()] || child[this.indeterminateField()]);\n if (!allSelected && !someSelected) {\n parent[this.selectedField()] = false;\n parent[this.indeterminateField()] = null;\n }\n else if (!allSelected) {\n parent[this.indeterminateField()] = true;\n parent[this.selectedField()] = null;\n }\n else if (allSelected) {\n parent[this.selectedField()] = true;\n parent[this.indeterminateField()] = false;\n }\n else {\n parent[this.indeterminateField()] = false;\n parent[this.selectedField()] = true;\n }\n parent = this.findParent(parent, this.itemsSignal());\n }\n }\n findParent(item, nodes) {\n for (const node of nodes) {\n if (node[this.childrenField()]?.includes(item)) {\n return node;\n }\n else if (node[this.childrenField()]) {\n const parent = this.findParent(item, node[this.childrenField()]);\n if (parent)\n return parent;\n }\n }\n return null;\n }\n /**\n *\n * find node selected true for emit Selections\n *\n */\n findSelectedNodes(nodes) {\n let selectedNodes = [];\n nodes.forEach((node) => {\n if (node[this.selectedField()]) {\n selectedNodes.push(node);\n }\n if (node[this.childrenField()]) {\n selectedNodes = selectedNodes.concat(this.findSelectedNodes(node[this.childrenField()]));\n }\n });\n return selectedNodes;\n }\n /**\n *\n * find for emit Selections single mode\n *\n */\n handleUnSelectNode(items) {\n items.forEach((child) => {\n child[this.selectedField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnSelectNode(child[this.childrenField()]);\n }\n });\n }\n /**\n *\n * lazy load logic\n *\n */\n fetchData(selectedNode) {\n this.itemsPromise(selectedNode?.[this.valueField()])\n .then((data) => {\n if (Array.isArray(data)) {\n if (selectedNode?.[this.valueField()]) {\n this.findNode(selectedNode[this.valueField()], data, this.itemsSignal());\n }\n else {\n const isNodeExpanded = data.filter((child) => child[this.expandedField()]);\n isNodeExpanded.forEach((child) => {\n this.fetchData(child);\n });\n this.itemsSignal.set(data);\n }\n }\n })\n .finally(() => {\n this.setNodeLoading(selectedNode?.[this.valueField()], false);\n });\n }\n findNode(parentId, _children, source) {\n if (source.length) {\n source.forEach((element) => {\n if (element[this.valueField()] == parentId) {\n if (this.selectionBehavior() === 'indeterminate' && element[this.selectedField()]) {\n _children.forEach((child) => (child[this.selectedField()] = true));\n }\n element[this.childrenField()] = _children;\n }\n else {\n if (element?.[this.childrenField()])\n this.findNode(parentId, _children, element[this.childrenField()]);\n }\n });\n }\n }\n /**\n *\n * emit when arrow click\n *\n */\n handleNodeExpandClick(node) {\n const selectedNode = node.data;\n if (this.itemsPromise && node.data[this.expandedField()] && !node?.data[this.childrenField()]?.length) {\n this.setNodeLoading(selectedNode[this.valueField()], true);\n this.fetchData(selectedNode);\n }\n this.onCollapsedChanged.emit({ component: this, data: node.data, nativeElement: this.nativeElement });\n }\n handleUnActiveNode(unActiveSource) {\n unActiveSource.forEach((child) => {\n child[this.activeField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnActiveNode(child[this.childrenField()]);\n }\n });\n }\n isNodeLoading(nodeId) {\n return this.loadingState()[nodeId] || false;\n }\n setNodeLoading(nodeId, isLoading) {\n this.loadingState.update((state) => ({\n ...state,\n [nodeId]: isLoading,\n }));\n }\n executeOnTreeNode(node, operation, value) {\n switch (operation) {\n case 'active':\n node[this.activeField()] = value;\n break;\n case 'expand':\n node[this.expandedField()] = true;\n if (this.itemsPromise && node[this.hasChildField()] && !node[this.childrenField()]?.length) {\n this.handleNodeExpandClick({ data: node, nativeElement: this.nativeElement, component: this });\n }\n break;\n case 'visible':\n node[this.visibleField()] = value;\n break;\n case 'disabled':\n node[this.disableField()] = value;\n break;\n default:\n break;\n }\n /**\n *\n * for detect changes treeviewitem\n *\n */\n this.executorChanges.set(operation);\n }\n refresh() {\n if (this.itemsPromise) {\n this.fetchData();\n }\n }\n async setNodeExpandAndChildren(valueFields, value) {\n const nodesToExpand = [];\n for (const valueField of valueFields) {\n const foundNodes = this.findNodesByValueField(this.itemsSignal(), valueField);\n nodesToExpand.push(...foundNodes);\n }\n await Promise.all(nodesToExpand.map((node) => this.expandNodeAndAllChildren(node, value)));\n }\n findNodesByValueField(nodes, valueField) {\n const results = [];\n for (const node of nodes) {\n if (node[this.valueField()] === valueField) {\n results.push(node);\n }\n if (node[this.childrenField()]?.length) {\n results.push(...this.findNodesByValueField(node[this.childrenField()], valueField));\n }\n }\n return results;\n }\n async expandNodeAndAllChildren(node, value) {\n node[this.expandedField()] = value;\n if (value && this.itemsPromise && node[this.hasChildField()] && !node[this.childrenField()]?.length) {\n await this.setNodeLoading(node[this.valueField()], true);\n await this.fetchData(node);\n }\n if (node[this.childrenField()]?.length) {\n await Promise.all(node[this.childrenField()].map((child) => this.expandNodeAndAllChildren(child, value)));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXTreeViewComponent, isStandalone: true, selector: \"ax-tree-view\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: \"showCheckbox\", publicName: \"showCheckbox\", isSignal: true, isRequired: false, transformFunction: null }, hasCheckboxField: { classPropertyName: \"hasCheckboxField\", publicName: \"hasCheckboxField\", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: \"selectionMode\", publicName: \"selectionMode\", isSignal: true, isRequired: false, transformFunction: null }, selectionBehavior: { classPropertyName: \"selectionBehavior\", publicName: \"selectionBehavior\", isSignal: true, isRequired: false, transformFunction: null }, selectionScope: { classPropertyName: \"selectionScope\", publicName: \"selectionScope\", isSignal: true, isRequired: false, transformFunction: null }, focusNodeEnabled: { classPropertyName: \"focusNodeEnabled\", publicName: \"focusNodeEnabled\", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: \"valueField\", publicName: \"valueField\", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: true, isRequired: false, transformFunction: null }, visibleField: { classPropertyName: \"visibleField\", publicName: \"visibleField\", isSignal: true, isRequired: false, transformFunction: null }, disableField: { classPropertyName: \"disableField\", publicName: \"disableField\", isSignal: true, isRequired: false, transformFunction: null }, hasChildField: { classPropertyName: \"hasChildField\", publicName: \"hasChildField\", isSignal: true, isRequired: false, transformFunction: null }, selectedField: { classPropertyName: \"selectedField\", publicName: \"selectedField\", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: \"expandedField\", publicName: \"expandedField\", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: \"tooltipField\", publicName: \"tooltipField\", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: \"childrenField\", publicName: \"childrenField\", isSignal: true, isRequired: false, transformFunction: null }, activeField: { classPropertyName: \"activeField\", publicName: \"activeField\", isSignal: true, isRequired: false, transformFunction: null }, indeterminateField: { classPropertyName: \"indeterminateField\", publicName: \"indeterminateField\", isSignal: true, isRequired: false, transformFunction: null }, parentField: { classPropertyName: \"parentField\", publicName: \"parentField\", isSignal: true, isRequired: false, transformFunction: null }, iconField: { classPropertyName: \"iconField\", publicName: \"iconField\", isSignal: true, isRequired: false, transformFunction: null }, toggleIcons: { classPropertyName: \"toggleIcons\", publicName: \"toggleIcons\", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: true, isRequired: false, transformFunction: null }, showEmptyNodeMassage: { classPropertyName: \"showEmptyNodeMassage\", publicName: \"showEmptyNodeMassage\", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: false, isRequired: false, transformFunction: null }, expandOn: { classPropertyName: \"expandOn\", publicName: \"expandOn\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: \"onSelectionChanged\", onItemSelectedChanged: \"onItemSelectedChanged\", onNodeClick: \"onNodeClick\", onCollapsedChanged: \"onCollapsedChanged\", onNodedbClick: \"onNodedbClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n { provide: AXComponent, useExisting: AXTreeViewComponent },\n { provide: AXTreeViewBase, useExisting: AXTreeViewComponent },\n ], usesInheritance: true, ngImport: i0, template: \"@if (resolvedItems?.length) {\\n @for (node of resolvedItems; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"></ng-container>\\n }\\n} @else {\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate || empty\\\"></ng-container>\\n}\\n\\n<ng-template #recursion let-item>\\n @if (item[visibleField()] !== false) {\\n <ax-tree-view-item\\n [item]=\\\"item\\\"\\n [isExpanded]=\\\"item[expandedField()]\\\"\\n [(isActive)]=\\\"item[activeField()]\\\"\\n [isLoading]=\\\"isNodeLoading(item[valueField()])\\\"\\n [executorChanges]=\\\"executorChanges()\\\"\\n >\\n @if (\\n (showCheckbox() && selectionScope() === 'all' && item[hasCheckboxField()] !== false) ||\\n (showCheckbox() &&\\n selectionScope() === 'parent' &&\\n item[childrenField()]?.length &&\\n item[hasCheckboxField()]) !== false ||\\n (showCheckbox() &&\\n selectionScope() === 'children' &&\\n !item[childrenField()]?.length &&\\n item[hasCheckboxField()] !== false)\\n ) {\\n <ax-check-box\\n [disabled]=\\\"item[disableField()]\\\"\\n [indeterminate]=\\\"item[indeterminateField()]\\\"\\n [(ngModel)]=\\\"item[selectedField()]\\\"\\n (onValueChanged)=\\\"handleNodeSelectionClick($event, item)\\\"\\n ></ax-check-box>\\n }\\n @if (item[iconField()]) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item[iconField()]\\\"></ax-icon>\\n </ax-prefix>\\n }\\n @if (item[textField()]) {\\n <ax-text>{{ item[textField()] }}</ax-text>\\n }\\n\\n @for (child of item?.[childrenField()]; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-tree-view-item>\\n }\\n</ng-template>\\n\\n<ng-template #empty>\\n {{ '@acorex:common.general.no-result-found' | translate | async }}\\n</ng-template>\\n\", styles: [\"ax-tree-view{--ax-comp-tree-view-arrow-size: .875rem;--ax-comp-tree-view-text-size: .875rem;--ax-comp-tree-view-active-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-tree-view-active-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-tree-view-hover-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-tree-view-indicator-size: 2px}ax-tree-view:has(>ax-tree-view-item i) ax-tree-view-item .ax-tree-view-container:not(:has(i)){padding-inline-start:1.5rem}ax-tree-view.ax-look-with-line ax-tree-view-item{position:relative}ax-tree-view.ax-look-with-line ax-tree-view-item:before{content:\\\"\\\";position:absolute;top:0;inset-inline-start:.625rem;width:1px;height:100%;background-color:#ccc}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container{padding-inline-start:1.25rem}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{padding:.25rem}ax-tree-view ax-tree-view-item ax-check-box{margin-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-text{font-size:var(--ax-comp-tree-view-text-size)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:var(--ax-comp-tree-view-arrow-size)!important}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-suffix:empty{display:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.25rem;overflow-x:auto;margin-inline-start:.25rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:rgba(var(--ax-comp-tree-view-active-bg-color));color:rgba(var(--ax-comp-tree-view-active-text-color))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover:not(.ax-state-tree-view-active){background-color:rgba(var(--ax-comp-tree-view-hover-bg-color))}ax-tree-view ax-tree-view-item .ax-tree-view-child{padding-inline-start:1rem}ax-tree-view ax-tree-view-item .ax-tree-view-child .ax-tree-view-container:not(:has(.ax-tree-view-icon-container i)){padding-inline-start:1.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-child.ax-tree-view-empty-child{padding-inline-start:2rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXTreeViewItemComponent, selector: \"ax-tree-view-item\", inputs: [\"item\", \"isExpanded\", \"isActive\", \"isLoading\", \"executorChanges\"], outputs: [\"isExpandedChange\", \"isActiveChange\"] }, { kind: \"component\", type: AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-tree-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n NgTemplateOutlet,\n AXTreeViewItemComponent,\n AXCheckBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXDecoratorIconComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ], providers: [\n { provide: AXComponent, useExisting: AXTreeViewComponent },\n { provide: AXTreeViewBase, useExisting: AXTreeViewComponent },\n ], template: \"@if (resolvedItems?.length) {\\n @for (node of resolvedItems; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"></ng-container>\\n }\\n} @else {\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate || empty\\\"></ng-container>\\n}\\n\\n<ng-template #recursion let-item>\\n @if (item[visibleField()] !== false) {\\n <ax-tree-view-item\\n [item]=\\\"item\\\"\\n [isExpanded]=\\\"item[expandedField()]\\\"\\n [(isActive)]=\\\"item[activeField()]\\\"\\n [isLoading]=\\\"isNodeLoading(item[valueField()])\\\"\\n [executorChanges]=\\\"executorChanges()\\\"\\n >\\n @if (\\n (showCheckbox() && selectionScope() === 'all' && item[hasCheckboxField()] !== false) ||\\n (showCheckbox() &&\\n selectionScope() === 'parent' &&\\n item[childrenField()]?.length &&\\n item[hasCheckboxField()]) !== false ||\\n (showCheckbox() &&\\n selectionScope() === 'children' &&\\n !item[childrenField()]?.length &&\\n item[hasCheckboxField()] !== false)\\n ) {\\n <ax-check-box\\n [disabled]=\\\"item[disableField()]\\\"\\n [indeterminate]=\\\"item[indeterminateField()]\\\"\\n [(ngModel)]=\\\"item[selectedField()]\\\"\\n (onValueChanged)=\\\"handleNodeSelectionClick($event, item)\\\"\\n ></ax-check-box>\\n }\\n @if (item[iconField()]) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item[iconField()]\\\"></ax-icon>\\n </ax-prefix>\\n }\\n @if (item[textField()]) {\\n <ax-text>{{ item[textField()] }}</ax-text>\\n }\\n\\n @for (child of item?.[childrenField()]; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-tree-view-item>\\n }\\n</ng-template>\\n\\n<ng-template #empty>\\n {{ '@acorex:common.general.no-result-found' | translate | async }}\\n</ng-template>\\n\", styles: [\"ax-tree-view{--ax-comp-tree-view-arrow-size: .875rem;--ax-comp-tree-view-text-size: .875rem;--ax-comp-tree-view-active-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-tree-view-active-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-tree-view-hover-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-tree-view-indicator-size: 2px}ax-tree-view:has(>ax-tree-view-item i) ax-tree-view-item .ax-tree-view-container:not(:has(i)){padding-inline-start:1.5rem}ax-tree-view.ax-look-with-line ax-tree-view-item{position:relative}ax-tree-view.ax-look-with-line ax-tree-view-item:before{content:\\\"\\\";position:absolute;top:0;inset-inline-start:.625rem;width:1px;height:100%;background-color:#ccc}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container{padding-inline-start:1.25rem}ax-tree-view.ax-look-with-line ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{padding:.25rem}ax-tree-view ax-tree-view-item ax-check-box{margin-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-text{font-size:var(--ax-comp-tree-view-text-size)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:var(--ax-comp-tree-view-arrow-size)!important}ax-tree-view ax-tree-view-item .ax-tree-view-container ax-suffix:empty{display:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-icon-container{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.25rem;overflow-x:auto;margin-inline-start:.25rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:rgba(var(--ax-comp-tree-view-active-bg-color));color:rgba(var(--ax-comp-tree-view-active-text-color))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover:not(.ax-state-tree-view-active){background-color:rgba(var(--ax-comp-tree-view-hover-bg-color))}ax-tree-view ax-tree-view-item .ax-tree-view-child{padding-inline-start:1rem}ax-tree-view ax-tree-view-item .ax-tree-view-child .ax-tree-view-container:not(:has(.ax-tree-view-icon-container i)){padding-inline-start:1.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-child.ax-tree-view-empty-child{padding-inline-start:2rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }], itemTemplate: [{\n type: Input\n }], emptyTemplate: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS12aWV3L3NyYy9saWIvdHJlZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS12aWV3L3NyYy9saWIvdHJlZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQTRDLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFFTCxjQUFjLEdBTWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBdUIzQixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQXJCcEQ7O1FBNEJFLGdCQUFXLEdBQUcsTUFB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LENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQztJQUNILENBQUM7OEdBemJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDg2SEFMbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1lBQzFELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7U0FDOUQsaURDbERILGk2REFzREEscXFHRGhCSSxnQkFBZ0Isb0pBQ2hCLHVCQUF1QiwyTEFDdkIsbUJBQW1CLGdQQUNuQixXQUFXLCtWQUNYLDJCQUEyQix5TEFDM0Isd0JBQXdCLGlFQUN4QixnQkFBZ0IsNkNBQ2hCLFNBQVM7OzJGQU9BLG1CQUFtQjtrQkFyQi9CLFNBQVM7K0JBQ0UsY0FBYyxpQkFHVCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsMkJBQTJCO3dCQUMzQix3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsU0FBUztxQkFDVixhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3dCQUMxRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTtxQkFDOUQ7OEJBS1csV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPO2dCQXVFWCxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhFeHBhbmRUb2dnbGVJY29ucywgQVhWYWx1ZUNoYW5nZWRFdmVudCwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhDaGVja0JveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jaGVjay1ib3gnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LCBBWERlY29yYXRvckljb25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhUcmVlVmlld0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RyZWUtdmlldy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQsXG4gIEFYVHJlZVZpZXdCYXNlLFxuICBBWFRyZWVWaWV3RXhwYW5kQmVoYXZpb3IsXG4gIEFYVHJlZVZpZXdMb29rLFxuICBBWFRyZWVWaWV3T3BlcmF0aW9uTWV0aG9kLFxuICBBWFRyZWVWaWV3U2VsZWN0aW9uQmVoYXZpb3IsXG4gIEFYVHJlZVZpZXdTZWxlY3Rpb25TY29wZSxcbn0gZnJvbSAnLi90cmVlLXZpZXcuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10cmVlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYVHJlZVZpZXdJdGVtQ29tcG9uZW50LFxuICAgIEFYQ2hlY2tCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCxcbiAgICBBWFRyYW5zbGF0b3JQaXBlLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYVHJlZVZpZXdDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVHJlZVZpZXdCYXNlLCB1c2VFeGlzdGluZzogQVhUcmVlVmlld0NvbXBvbmVudCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbYGF4LWxvb2stJHt0aGlzLmxvb2soKX1gXTtcbiAgfVxuXG4gIGl0ZW1zU2lnbmFsID0gc2lnbmFsPHVua25vd25bXT4oW10pO1xuXG4gIGl0ZW1zUHJvbWlzZTogYW55O1xuXG4gIGl0ZW1zID0gaW5wdXQ8dW5rbm93bltdIHwgKChzZWxlY3RlZEl0ZW1JZD86IHN0cmluZyB8IG51bWJlcikgPT4gdW5rbm93bltdIHwgUHJvbWlzZTx1bmtub3duW10+KT4oKTtcblxuICBwcm90ZWN0ZWQgZ2V0IHJlc29sdmVkSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNTaWduYWwoKTtcbiAgfVxuXG4gIHNob3dDaGVja2JveCA9IGlucHV0KHRydWUpO1xuXG4gIGhhc0NoZWNrYm94RmllbGQgPSBpbnB1dCgnaGFzQ2hlY2tib3gnKTtcblxuICBzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8J3NpbmdsZScgfCAnbXVsdGlwbGUnPignc2luZ2xlJyk7XG5cbiAgc2VsZWN0aW9uQmVoYXZpb3IgPSBpbnB1dDxBWFRyZWVWaWV3U2VsZWN0aW9uQmVoYXZpb3I+KCk7XG5cbiAgc2VsZWN0aW9uU2NvcGUgPSBpbnB1dDxBWFRyZWVWaWV3U2VsZWN0aW9uU2NvcGU+KCdhbGwnKTtcblxuICBmb2N1c05vZGVFbmFibGVkID0gaW5wdXQodHJ1ZSk7XG5cbiAgdmFsdWVGaWVsZCA9IGlucHV0KCdpZCcpO1xuXG4gIHRleHRGaWVsZCA9IGlucHV0KCd0ZXh0Jyk7XG5cbiAgdmlzaWJsZUZpZWxkID0gaW5wdXQoJ3Zpc2libGUnKTtcblxuICBkaXNhYmxlRmllbGQgPSBpbnB1dCgnZGlzYWJsZWQnKTtcblxuICBoYXNDaGlsZEZpZWxkID0gaW5wdXQoJ2hhc0NoaWxkJyk7XG5cbiAgc2VsZWN0ZWRGaWVsZCA9IGlucHV0KCdzZWxlY3RlZCcpO1xuXG4gIGV4cGFuZGVkRmllbGQgPSBpbnB1dCgnZXhwYW5kZWQnKTtcblxuICB0b29sdGlwRmllbGQgPSBpbnB1dCgndG9vbHRpcCcpO1xuXG4gIGNoaWxkcmVuRmllbGQgPSBpbnB1dCgnY2hpbGRyZW4nKTtcblxuICBhY3RpdmVGaWVsZCA9IGlucHV0KCdhY3RpdmUnKTtcblxuICBpbmRldGVybWluYXRlRmllbGQgPSBpbnB1dCgnaW5kZXRlcm1pbmF0ZScpO1xuXG4gIHBhcmVudEZpZWxkID0gaW5wdXQoJ3BhcmVudElkJyk7XG5cbiAgaWNvbkZpZWxkID0gaW5wdXQoJ2ljb24nKTtcblxuICB0b2dnbGVJY29ucyA9IGlucHV0PEFYRXhwYW5kVG9nZ2xlSWNvbnM+KCk7XG5cbiAgbG9vayA9IGlucHV0PEFYVHJlZVZpZXdMb29rPignZGVmdWx0Jyk7XG5cbiAgc2hvd0VtcHR5Tm9kZU1hc3NhZ2UgPSBpbnB1dChmYWxzZSk7XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBvbkl0ZW1TZWxlY3RlZENoYW5nZWQgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZUNsaWNrID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBvbkNvbGxhcHNlZENoYW5nZWQgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZWRiQ2xpY2sgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIGV4ZWN1dG9yQ2hhbmdlcyA9IHNpZ25hbDxBWFRyZWVWaWV3T3BlcmF0aW9uTWV0aG9kPihudWxsKTtcblxuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBlbXB0eVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJvdGVjdGVkIHBsYXRmb3JtU2VydmljZSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpdGVtc0lucHV0ID0gdGhpcy5pdGVtcygpO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVtc0lucHV0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBpdGVtc0lucHV0KCk7XG4gICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICB0aGlzLml0ZW1zUHJvbWlzZSA9IChvcHRpb25zKSA9PiBpdGVtc0lucHV0KG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtc1NpZ25hbC5zZXQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChpdGVtc0lucHV0KTtcbiAgICAgIHRoaXMuaXRlbXNQcm9taXNlID0gbnVsbDtcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGFuZE9uID0gaW5wdXQ8QVhUcmVlVmlld0V4cGFuZEJlaGF2aW9yPignZGVmdWx0Jyk7XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVTZWxlY3Rpb25DbGljayhldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCwgaXRlbTogdW5rbm93bikge1xuICAgIGlmIChpdGVtW3RoaXMuZGlzYWJsZUZpZWxkKCldIHx8IHRoaXMuaXNOb2RlTG9hZGluZyhpdGVtW3RoaXMudmFsdWVGaWVsZCgpXSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlKCkgPT09ICdzaW5nbGUnICYmIGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmhhbmRsZVVuU2VsZWN0Tm9kZSh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cblxuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgaXRlbVt0aGlzLnNlbGVjdGVkRmllbGQoKV0gPSBldmVudC52YWx1ZTtcblxuICAgICAgaWYgKGV2ZW50LnZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb25CZWhhdmlvcigpKSB7XG4gICAgICAgICAgY2FzZSAnYXV0b0V4cGFuZCc6XG4gICAgICAgICAgICBpZiAoZXZlbnQudmFsdWUpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFpdGVtPy5bdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5vZGVMb2FkaW5nKGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YShpdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Nhc2NhZGUnOlxuICAgICAgICAgICAgdGhpcy5leHBhbmRBbmRUb2dnbGVTZWxlY3Rpb24oaXRlbSwgZXZlbnQudmFsdWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaW5kZXRlcm1pbmF0ZSc6XG4gICAgICAgICAgICBpZiAoaXRlbT8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW0sIGV2ZW50LnZhbHVlLCBpdGVtW3RoaXMudmFsdWVGaWVsZCgpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudFNlbGVjdGlvbihpdGVtLCBldmVudC52YWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5vbkl0ZW1TZWxlY3RlZENoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogaXRlbSxcbiAgICAgICAgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogdW5rbm93bltdID0gdGhpcy5maW5kU2VsZWN0ZWROb2Rlcyh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuXG4gICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBhdXRvIGV4cGFuZFxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSB0b2dnbGVFeHBhbmQoaXRlbTogdW5rbm93bikge1xuICAgIGlmICghaXRlbVt0aGlzLmV4cGFuZGVkRmllbGQoKV0pIHtcbiAgICAgIGl0ZW1bdGhpcy5leHBhbmRlZEZpZWxkKCldID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogZXhwYW5kIGFuZCBjaGFuZ2UgdmFsdWUgcGFyZW50IGNoYW5nZVxuICAgKlxuICAgKi9cblxuICBwcml2YXRlIGFzeW5jIGV4cGFuZEFuZFRvZ2dsZVNlbGVjdGlvbihpdGVtOiB1bmtub3duLCBzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLml0ZW1zUHJvbWlzZSAmJiBpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZCgpXSAmJiAhaXRlbT8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldE5vZGVMb2FkaW5nKGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldLCB0cnVlKTtcbiAgICAgIGF3YWl0IHRoaXMuZmV0Y2hEYXRhKGl0ZW0pO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcblxuICAgIGlmIChpdGVtW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0aW9uVG9DaGlsZHJlbihpdGVtLCBzZWxlY3RlZCwgaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW06IHVua25vd24sIGlzU2VsZWN0ZWQ6IGJvb2xlYW4sIHBhcmVudElkPzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaXRlbVt0aGlzLmNoaWxkcmVuRmllbGQoKV0uZm9yRWFjaChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgJiZcbiAgICAgICAgY2hpbGRbdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmXG4gICAgICAgICFjaGlsZD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQmVoYXZpb3IoKSA9PT0gJ2Nhc2NhZGUnXG4gICAgICApIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXROb2RlTG9hZGluZyhjaGlsZFt0aGlzLnZhbHVlRmllbGQoKV0sIHRydWUpO1xuICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGF0YShjaGlsZCk7XG4gICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kKGNoaWxkKTtcbiAgICAgIH1cbiAgICAgIGNoaWxkW3RoaXMucGFyZW50RmllbGQoKV0gPSBwYXJlbnRJZDtcbiAgICAgIGNoaWxkW3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSA9IGlzU2VsZWN0ZWQ7XG4gICAgICBpZiAoY2hpbGRbdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oY2hpbGQsIGlzU2VsZWN0ZWQsIGNoaWxkW3RoaXMudmFsdWVGaWVsZCgpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogaW5kZXRlcm1pbmF0ZSBsb2dpY1xuICAgKlxuICAgKi9cblxuICBwcml2YXRlIHVwZGF0ZVBhcmVudFNlbGVjdGlvbihpdGVtOiB1bmtub3duLCBzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIGl0ZW1bdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gc2VsZWN0ZWQ7XG5cbiAgICBsZXQgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50KGl0ZW0sIHRoaXMuaXRlbXNTaWduYWwoKSk7XG5cbiAgICB3aGlsZSAoKHBhcmVudCAmJiBwYXJlbnRbdGhpcy5zZWxlY3RlZEZpZWxkKCldICE9IGZhbHNlKSB8fCAocGFyZW50ICYmIGl0ZW1bdGhpcy5zZWxlY3RlZEZpZWxkKCldKSkge1xuICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBwYXJlbnQ/Llt0aGlzLmNoaWxkcmVuRmllbGQoKV0/LmV2ZXJ5KChjaGlsZCkgPT4gY2hpbGRbdGhpcy5zZWxlY3RlZEZpZWxkKCldKTtcblxuICAgICAgY29uc3Qgc29tZVNlbGVjdGVkID0gcGFyZW50Py5bdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5zb21lKFxuICAgICAgICAoY2hpbGQpID0+IGNoaWxkW3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSB8fCBjaGlsZFt0aGlzLmluZGV0ZXJtaW5hdGVGaWVsZCgpXSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghYWxsU2VsZWN0ZWQgJiYgIXNvbWVTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnRbdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gZmFsc2U7XG4gICAgICAgIHBhcmVudFt0aGlzLmluZGV0ZXJtaW5hdGVGaWVsZCgpXSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFhbGxTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnRbdGhpcy5pbmRldGVybWluYXRlRmllbGQoKV0gPSB0cnVlO1xuICAgICAgICBwYXJlbnRbdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoYWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgcGFyZW50W3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSA9IHRydWU7XG4gICAgICAgIHBhcmVudFt0aGlzLmluZGV0ZXJtaW5hdGVGaWVsZCgpXSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50W3RoaXMuaW5kZXRlcm1pbmF0ZUZpZWxkKCldID0gZmFsc2U7XG4gICAgICAgIHBhcmVudFt0aGlzLnNlbGVjdGVkRmllbGQoKV0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQocGFyZW50LCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhcmVudChpdGVtOiB1bmtub3duLCBub2RlczogdW5rbm93bltdKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAobm9kZVt0aGlzLmNoaWxkcmVuRmllbGQoKV0/LmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfSBlbHNlIGlmIChub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQoaXRlbSwgbm9kZVt0aGlzLmNoaWxkcmVuRmllbGQoKV0pO1xuICAgICAgICBpZiAocGFyZW50KSByZXR1cm4gcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBmaW5kIG5vZGUgc2VsZWN0ZWQgdHJ1ZSBmb3IgZW1pdCBTZWxlY3Rpb25zXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgZmluZFNlbGVjdGVkTm9kZXMobm9kZXM6IHVua25vd25bXSk6IHVua25vd25bXSB7XG4gICAgbGV0IHNlbGVjdGVkTm9kZXM6IHVua25vd25bXSA9IFtdO1xuXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGVbdGhpcy5zZWxlY3RlZEZpZWxkKCldKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkZpZWxkKCldKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZXMgPSBzZWxlY3RlZE5vZGVzLmNvbmNhdCh0aGlzLmZpbmRTZWxlY3RlZE5vZGVzKG5vZGVbdGhpcy5jaGlsZHJlbkZpZWxkKCldKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBmaW5kIGZvciBlbWl0IFNlbGVjdGlvbnMgc2luZ2xlIG1vZGVcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBoYW5kbGVVblNlbGVjdE5vZGUoaXRlbXM6IHVua25vd25bXSkge1xuICAgIGl0ZW1zLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBjaGlsZFt0aGlzLnNlbGVjdGVkRmllbGQoKV0gPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVW5TZWxlY3ROb2RlKGNoaWxkW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogbGF6eSBsb2FkIGxvZ2ljXG4gICAqXG4gICAqL1xuXG4gIGZldGNoRGF0YShzZWxlY3RlZE5vZGU/OiB1bmtub3duKSB7XG4gICAgdGhpcy5pdGVtc1Byb21pc2Uoc2VsZWN0ZWROb2RlPy5bdGhpcy52YWx1ZUZpZWxkKCldKVxuICAgICAgLnRoZW4oKGRhdGE6IHVua25vd25bXSkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIGlmIChzZWxlY3RlZE5vZGU/Llt0aGlzLnZhbHVlRmllbGQoKV0pIHtcbiAgICAgICAgICAgIHRoaXMuZmluZE5vZGUoc2VsZWN0ZWROb2RlW3RoaXMudmFsdWVGaWVsZCgpXSwgZGF0YSwgdGhpcy5pdGVtc1NpZ25hbCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaXNOb2RlRXhwYW5kZWQgPSBkYXRhLmZpbHRlcigoY2hpbGQpID0+IGNoaWxkW3RoaXMuZXhwYW5kZWRGaWVsZCgpXSk7XG5cbiAgICAgICAgICAgIGlzTm9kZUV4cGFuZGVkLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZmV0Y2hEYXRhKGNoaWxkKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcoc2VsZWN0ZWROb2RlPy5bdGhpcy52YWx1ZUZpZWxkKCldLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE5vZGUocGFyZW50SWQ6IG51bWJlciB8IHN0cmluZywgX2NoaWxkcmVuOiB1bmtub3duW10sIHNvdXJjZTogdW5rbm93bltdKSB7XG4gICAgaWYgKHNvdXJjZS5sZW5ndGgpIHtcbiAgICAgIHNvdXJjZS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50W3RoaXMudmFsdWVGaWVsZCgpXSA9PSBwYXJlbnRJZCkge1xuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkJlaGF2aW9yKCkgPT09ICdpbmRldGVybWluYXRlJyAmJiBlbGVtZW50W3RoaXMuc2VsZWN0ZWRGaWVsZCgpXSkge1xuICAgICAgICAgICAgX2NoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiAoY2hpbGRbdGhpcy5zZWxlY3RlZEZpZWxkKCldID0gdHJ1ZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50W3RoaXMuY2hpbGRyZW5GaWVsZCgpXSA9IF9jaGlsZHJlbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZWxlbWVudD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSkgdGhpcy5maW5kTm9kZShwYXJlbnRJZCwgX2NoaWxkcmVuLCBlbGVtZW50W3RoaXMuY2hpbGRyZW5GaWVsZCgpXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBlbWl0IHdoZW4gYXJyb3cgY2xpY2tcbiAgICpcbiAgICovXG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVFeHBhbmRDbGljayhub2RlOiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSBub2RlLmRhdGE7XG4gICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIG5vZGUuZGF0YVt0aGlzLmV4cGFuZGVkRmllbGQoKV0gJiYgIW5vZGU/LmRhdGFbdGhpcy5jaGlsZHJlbkZpZWxkKCldPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcoc2VsZWN0ZWROb2RlW3RoaXMudmFsdWVGaWVsZCgpXSwgdHJ1ZSk7XG4gICAgICB0aGlzLmZldGNoRGF0YShzZWxlY3RlZE5vZGUpO1xuICAgIH1cbiAgICB0aGlzLm9uQ29sbGFwc2VkQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBub2RlLmRhdGEsIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIGhhbmRsZVVuQWN0aXZlTm9kZSh1bkFjdGl2ZVNvdXJjZTogdW5rbm93bltdKSB7XG4gICAgdW5BY3RpdmVTb3VyY2UuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNoaWxkW3RoaXMuYWN0aXZlRmllbGQoKV0gPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVW5BY3RpdmVOb2RlKGNoaWxkW3RoaXMuY2hpbGRyZW5GaWVsZCgpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRpbmdTdGF0ZSA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBib29sZWFuPj4oe30pO1xuXG4gIHByb3RlY3RlZCBpc05vZGVMb2FkaW5nKG5vZGVJZDogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlKClbbm9kZUlkXSB8fCBmYWxzZTtcbiAgfVxuXG4gIHNldE5vZGVMb2FkaW5nKG5vZGVJZDogc3RyaW5nIHwgbnVtYmVyLCBpc0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBbbm9kZUlkXTogaXNMb2FkaW5nLFxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlT25UcmVlTm9kZShub2RlOiB1bmtub3duLCBvcGVyYXRpb246IEFYVHJlZVZpZXdPcGVyYXRpb25NZXRob2QsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgJ2FjdGl2ZSc6XG4gICAgICAgIG5vZGVbdGhpcy5hY3RpdmVGaWVsZCgpXSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4cGFuZCc6XG4gICAgICAgIG5vZGVbdGhpcy5leHBhbmRlZEZpZWxkKCldID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIG5vZGVbdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb2RlRXhwYW5kQ2xpY2soeyBkYXRhOiBub2RlLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlzaWJsZSc6XG4gICAgICAgIG5vZGVbdGhpcy52aXNpYmxlRmllbGQoKV0gPSB2YWx1ZTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcbiAgICAgICAgbm9kZVt0aGlzLmRpc2FibGVGaWVsZCgpXSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvKipcbiAgICAgKlxuICAgICAqIGZvciBkZXRlY3QgY2hhbmdlcyB0cmVldmlld2l0ZW1cbiAgICAgKlxuICAgICAqL1xuXG4gICAgdGhpcy5leGVjdXRvckNoYW5nZXMuc2V0KG9wZXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UpIHtcbiAgICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldE5vZGVFeHBhbmRBbmRDaGlsZHJlbih2YWx1ZUZpZWxkczogKG51bWJlciB8IHN0cmluZylbXSwgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBub2Rlc1RvRXhwYW5kOiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB2YWx1ZUZpZWxkIG9mIHZhbHVlRmllbGRzKSB7XG4gICAgICBjb25zdCBmb3VuZE5vZGVzID0gdGhpcy5maW5kTm9kZXNCeVZhbHVlRmllbGQodGhpcy5pdGVtc1NpZ25hbCgpLCB2YWx1ZUZpZWxkKTtcbiAgICAgIG5vZGVzVG9FeHBhbmQucHVzaCguLi5mb3VuZE5vZGVzKTtcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChub2Rlc1RvRXhwYW5kLm1hcCgobm9kZSkgPT4gdGhpcy5leHBhbmROb2RlQW5kQWxsQ2hpbGRyZW4obm9kZSwgdmFsdWUpKSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmROb2Rlc0J5VmFsdWVGaWVsZChub2RlczogYW55W10sIHZhbHVlRmllbGQ6IG51bWJlciB8IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAobm9kZVt0aGlzLnZhbHVlRmllbGQoKV0gPT09IHZhbHVlRmllbGQpIHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZVt0aGlzLmNoaWxkcmVuRmllbGQoKV0/Lmxlbmd0aCkge1xuICAgICAgICByZXN1bHRzLnB1c2goLi4udGhpcy5maW5kTm9kZXNCeVZhbHVlRmllbGQobm9kZVt0aGlzLmNoaWxkcmVuRmllbGQoKV0sIHZhbHVlRmllbGQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhwYW5kTm9kZUFuZEFsbENoaWxkcmVuKG5vZGU6IGFueSwgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICBub2RlW3RoaXMuZXhwYW5kZWRGaWVsZCgpXSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICYmIHRoaXMuaXRlbXNQcm9taXNlICYmIG5vZGVbdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldE5vZGVMb2FkaW5nKG5vZGVbdGhpcy52YWx1ZUZpZWxkKCldLCB0cnVlKTtcbiAgICAgIGF3YWl0IHRoaXMuZmV0Y2hEYXRhKG5vZGUpO1xuICAgIH1cblxuICAgIGlmIChub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChub2RlW3RoaXMuY2hpbGRyZW5GaWVsZCgpXS5tYXAoKGNoaWxkKSA9PiB0aGlzLmV4cGFuZE5vZGVBbmRBbGxDaGlsZHJlbihjaGlsZCwgdmFsdWUpKSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKHJlc29sdmVkSXRlbXM/Lmxlbmd0aCkge1xuICBAZm9yIChub2RlIG9mIHJlc29sdmVkSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgfVxufSBAZWxzZSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUZW1wbGF0ZSB8fCBlbXB0eVwiPjwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI3JlY3Vyc2lvbiBsZXQtaXRlbT5cbiAgQGlmIChpdGVtW3Zpc2libGVGaWVsZCgpXSAhPT0gZmFsc2UpIHtcbiAgICA8YXgtdHJlZS12aWV3LWl0ZW1cbiAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgW2lzRXhwYW5kZWRdPVwiaXRlbVtleHBhbmRlZEZpZWxkKCldXCJcbiAgICAgIFsoaXNBY3RpdmUpXT1cIml0ZW1bYWN0aXZlRmllbGQoKV1cIlxuICAgICAgW2lzTG9hZGluZ109XCJpc05vZGVMb2FkaW5nKGl0ZW1bdmFsdWVGaWVsZCgpXSlcIlxuICAgICAgW2V4ZWN1dG9yQ2hhbmdlc109XCJleGVjdXRvckNoYW5nZXMoKVwiXG4gICAgPlxuICAgICAgQGlmIChcbiAgICAgICAgKHNob3dDaGVja2JveCgpICYmIHNlbGVjdGlvblNjb3BlKCkgPT09ICdhbGwnICYmIGl0ZW1baGFzQ2hlY2tib3hGaWVsZCgpXSAhPT0gZmFsc2UpIHx8XG4gICAgICAgIChzaG93Q2hlY2tib3goKSAmJlxuICAgICAgICAgIHNlbGVjdGlvblNjb3BlKCkgPT09ICdwYXJlbnQnICYmXG4gICAgICAgICAgaXRlbVtjaGlsZHJlbkZpZWxkKCldPy5sZW5ndGggJiZcbiAgICAgICAgICBpdGVtW2hhc0NoZWNrYm94RmllbGQoKV0pICE9PSBmYWxzZSB8fFxuICAgICAgICAoc2hvd0NoZWNrYm94KCkgJiZcbiAgICAgICAgICBzZWxlY3Rpb25TY29wZSgpID09PSAnY2hpbGRyZW4nICYmXG4gICAgICAgICAgIWl0ZW1bY2hpbGRyZW5GaWVsZCgpXT8ubGVuZ3RoICYmXG4gICAgICAgICAgaXRlbVtoYXNDaGVja2JveEZpZWxkKCldICE9PSBmYWxzZSlcbiAgICAgICkge1xuICAgICAgICA8YXgtY2hlY2stYm94XG4gICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW1bZGlzYWJsZUZpZWxkKCldXCJcbiAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpdGVtW2luZGV0ZXJtaW5hdGVGaWVsZCgpXVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtW3NlbGVjdGVkRmllbGQoKV1cIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVOb2RlU2VsZWN0aW9uQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgID48L2F4LWNoZWNrLWJveD5cbiAgICAgIH1cbiAgICAgIEBpZiAoaXRlbVtpY29uRmllbGQoKV0pIHtcbiAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtW2ljb25GaWVsZCgpXVwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICB9XG4gICAgICBAaWYgKGl0ZW1bdGV4dEZpZWxkKCldKSB7XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW1bdGV4dEZpZWxkKCldIH19PC9heC10ZXh0PlxuICAgICAgfVxuXG4gICAgICBAZm9yIChjaGlsZCBvZiBpdGVtPy5bY2hpbGRyZW5GaWVsZCgpXTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgPC9heC10cmVlLXZpZXctaXRlbT5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAge3sgJ0BhY29yZXg6Y29tbW9uLmdlbmVyYWwubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport { AXTreeViewComponent } from './tree-view.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXTreeViewComponent, AXTreeViewItemComponent];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXFormModule,\n FormsModule,\n AXTooltipModule,\n AXLoadingModule,\n];\nexport class AXTreeViewModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, imports: [AXTreeViewComponent, AXTreeViewItemComponent, CommonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXFormModule,\n FormsModule,\n AXTooltipModule,\n AXLoadingModule], exports: [AXTreeViewComponent, AXTreeViewItemComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, imports: [COMPONENT, MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXTreeViewModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...COMPONENT, ...MODULES],\n exports: [...COMPONENT],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTVELE1BQU0sU0FBUyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztBQUNqRSxNQUFNLE9BQU8sR0FBRztJQUNkLFlBQVk7SUFDWixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0NBQ2hCLENBQUM7QUFLRixNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixZQWZWLG1CQUFtQixFQUFFLHVCQUF1QixFQUU3RCxZQUFZO1lBQ1osY0FBYztZQUNkLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsZUFBZSxhQVRFLG1CQUFtQixFQUFFLHVCQUF1QjsrR0FlbEQsZ0JBQWdCLFlBSGQsU0FBUyxFQUFLLE9BQU87OzJGQUd2QixnQkFBZ0I7a0JBSjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYVHJlZVZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXctaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFRyZWVWaWV3Q29tcG9uZW50LCBBWFRyZWVWaWV3SXRlbUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW1xuICBDb21tb25Nb2R1bGUsXG4gIEFYQ29tbW9uTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhDaGVja0JveE1vZHVsZSxcbiAgQVhGb3JtTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQVhUb29sdGlwTW9kdWxlLFxuICBBWExvYWRpbmdNb2R1bGUsXG5dO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLkNPTVBPTkVOVCwgLi4uTU9EVUxFU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3TW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtdHJlZS12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2Fjb3JleC1jb21wb25lbnRzLXRyZWUtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1"],"mappings":"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"}