@acorex/components 18.15.3 → 18.16.0-next.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +1 -0
  2. package/comment/lib/comment-container/comment-container.component.d.ts +1 -0
  3. package/common/lib/components/value-component.class.d.ts +1 -0
  4. package/common/lib/directives/auto-focus.directive.d.ts +1 -0
  5. package/common/lib/directives/inverted-color.directive.d.ts +1 -0
  6. package/common/lib/directives/ripple.directive.d.ts +1 -0
  7. package/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.d.ts +1 -0
  8. package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +1 -0
  9. package/data-table/lib/data-table/data-table.component.d.ts +1 -0
  10. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +1 -0
  11. package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +1 -0
  12. package/esm2022/audio-wave/lib/audio-wave.component.mjs +18 -14
  13. package/esm2022/button/lib/button-item-list.component.mjs +2 -2
  14. package/esm2022/calendar/lib/calendar.component.mjs +17 -14
  15. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +18 -15
  16. package/esm2022/common/lib/components/value-component.class.mjs +5 -4
  17. package/esm2022/common/lib/directives/auto-focus.directive.mjs +8 -5
  18. package/esm2022/common/lib/directives/inverted-color.directive.mjs +23 -19
  19. package/esm2022/common/lib/directives/ripple.directive.mjs +18 -15
  20. package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +13 -9
  21. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +19 -5
  22. package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
  23. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +13 -13
  24. package/esm2022/data-table/lib/data-table/data-table.component.mjs +14 -9
  25. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +13 -10
  26. package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +5 -4
  27. package/esm2022/list/lib/list.component.mjs +14 -9
  28. package/esm2022/menu/lib/context-menu.component.mjs +40 -32
  29. package/esm2022/picker/lib/picker.component.mjs +11 -4
  30. package/esm2022/popover/lib/popover.component.mjs +7 -6
  31. package/esm2022/range-slider/lib/range-slider.component.mjs +15 -9
  32. package/esm2022/rate-picker/lib/rate-picker.component.mjs +8 -2
  33. package/esm2022/tree-view/acorex-components-tree-view.mjs +5 -0
  34. package/esm2022/tree-view/index.mjs +4 -0
  35. package/esm2022/tree-view/lib/tree-view-item.component.mjs +86 -0
  36. package/esm2022/tree-view/lib/tree-view.class.mjs +4 -0
  37. package/esm2022/tree-view/lib/tree-view.component.mjs +299 -0
  38. package/esm2022/tree-view/lib/tree-view.component.module.mjs +50 -0
  39. package/esm2022/uploader/lib/uploader-zone.directive.mjs +21 -16
  40. package/fesm2022/acorex-components-audio-wave.mjs +18 -15
  41. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  42. package/fesm2022/acorex-components-button.mjs +2 -2
  43. package/fesm2022/acorex-components-button.mjs.map +1 -1
  44. package/fesm2022/acorex-components-calendar.mjs +16 -14
  45. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  46. package/fesm2022/acorex-components-comment.mjs +17 -14
  47. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  48. package/fesm2022/acorex-components-common.mjs +44 -34
  49. package/fesm2022/acorex-components-common.mjs.map +1 -1
  50. package/fesm2022/acorex-components-conversation.mjs +12 -9
  51. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  52. package/fesm2022/acorex-components-data-pager.mjs +20 -6
  53. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  54. package/fesm2022/acorex-components-data-table.mjs +33 -25
  55. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  56. package/fesm2022/acorex-components-drawer.mjs +4 -3
  57. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  58. package/fesm2022/acorex-components-list.mjs +14 -10
  59. package/fesm2022/acorex-components-list.mjs.map +1 -1
  60. package/fesm2022/acorex-components-menu.mjs +39 -31
  61. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  62. package/fesm2022/acorex-components-picker.mjs +10 -4
  63. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  64. package/fesm2022/acorex-components-popover.mjs +6 -5
  65. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  66. package/fesm2022/acorex-components-range-slider.mjs +14 -8
  67. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  68. package/fesm2022/acorex-components-rate-picker.mjs +7 -1
  69. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  70. package/fesm2022/acorex-components-tree-view.mjs +433 -0
  71. package/fesm2022/acorex-components-tree-view.mjs.map +1 -0
  72. package/fesm2022/acorex-components-uploader.mjs +20 -15
  73. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  74. package/menu/lib/context-menu.component.d.ts +1 -0
  75. package/package.json +7 -1
  76. package/picker/lib/picker.component.d.ts +1 -0
  77. package/popover/lib/popover.component.d.ts +1 -0
  78. package/rate-picker/lib/rate-picker.component.d.ts +1 -0
  79. package/tree-view/README.md +3 -0
  80. package/tree-view/index.d.ts +3 -0
  81. package/tree-view/lib/tree-view-item.component.d.ts +23 -0
  82. package/tree-view/lib/tree-view.class.d.ts +20 -0
  83. package/tree-view/lib/tree-view.component.d.ts +80 -0
  84. package/tree-view/lib/tree-view.component.module.d.ts +16 -0
  85. package/uploader/lib/uploader-zone.directive.d.ts +1 -0
@@ -0,0 +1,86 @@
1
+ import { NXComponent } from '@acorex/components/common';
2
+ import { AXPlatform } from '@acorex/core/platform';
3
+ import { animate, state, style, transition, trigger } from '@angular/animations';
4
+ import { ChangeDetectionStrategy, Component, computed, inject, input, model, output, ViewEncapsulation, } from '@angular/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@acorex/components/tooltip";
7
+ import * as i2 from "@acorex/components/loading";
8
+ export class AXTreeViewItemComponent extends NXComponent {
9
+ constructor() {
10
+ super();
11
+ this.item = input();
12
+ this.onNodeExpand = output();
13
+ this.onNodeClick = output();
14
+ this.isExpanded = model(false);
15
+ this.hasChildField = input();
16
+ this.isActive = model(false);
17
+ this.onNodeDbClick = output();
18
+ this.isLoading = input(false);
19
+ this.disableField = input();
20
+ this.platformService = inject(AXPlatform);
21
+ this.arrowIcon = computed(() => {
22
+ if (this.isExpanded()) {
23
+ return 'ax-tree-view-arrow ax-icon ax-icon-solid ax-icon-chevron-down';
24
+ }
25
+ else {
26
+ return this.platformService.isRtl()
27
+ ? 'ax-tree-view-arrow ax-icon ax-icon-solid ax-icon-chevron-left'
28
+ : 'ax-tree-view-arrow ax-icon ax-icon-solid ax-icon-chevron-right';
29
+ }
30
+ });
31
+ }
32
+ handleArrowNodeClick() {
33
+ if (this.item()[this.disableField()] || this.isLoading()) {
34
+ return;
35
+ }
36
+ this.isExpanded.set(!this.isExpanded());
37
+ this.onNodeExpand.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });
38
+ }
39
+ handleTextClick(item) {
40
+ this.onNodeClick.emit({ component: this, data: item, nativeElement: this.nativeElement });
41
+ }
42
+ handleTextDbClick(item) {
43
+ if (item[this.disableField()]) {
44
+ return;
45
+ }
46
+ if (item?.childrens?.length || item[this.hasChildField()]) {
47
+ this.isExpanded.set(!this.isExpanded());
48
+ this.onNodeDbClick.emit({ component: this, data: item, nativeElement: this.nativeElement });
49
+ }
50
+ }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXTreeViewItemComponent, 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 }, hasChildField: { classPropertyName: "hasChildField", publicName: "hasChildField", 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 }, disableField: { classPropertyName: "disableField", publicName: "disableField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNodeExpand: "onNodeExpand", onNodeClick: "onNodeClick", isExpanded: "isExpandedChange", isActive: "isActiveChange", onNodeDbClick: "onNodeDbClick" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-tree-view-container\">\n @if ((item().childrens && !isLoading()) || (item()[hasChildField()] && !isLoading())) {\n <i\n [class.ax-state-disabled]=\"item()[disableField()]\"\n (click)=\"handleArrowNodeClick()\"\n class=\"{{ arrowIcon() }}\"\n ></i>\n } @else if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <i class=\"ax-icon\"></i>\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()[disableField()]\"\n [axTooltip]=\"item().tooltip\"\n axTooltipPlacement=\"end-bottom\"\n (click)=\"handleTextClick(item())\"\n (dblclick)=\"handleTextDbClick(item())\"\n class=\"ax-tree-view-items-prefix noselect-tree-view\"\n [class.ax-state-tree-view-active]=\"item().active\"\n >\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 </div>\n </div>\n</div>\n\n<div\n class=\"{{ platformService.isRtl() ? 'ax-state-tree-view-rtl' : 'ax-state-tree-view-ltr' }}\"\n [@collapseExpand]=\"isExpanded() ? 'expanded' : 'collapsed'\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], animations: [
53
+ trigger('collapseExpand', [
54
+ state('collapsed', style({
55
+ height: '0',
56
+ overflow: 'hidden',
57
+ opacity: 0,
58
+ })),
59
+ state('expanded', style({
60
+ height: '*',
61
+ overflow: 'hidden',
62
+ opacity: 1,
63
+ })),
64
+ transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),
65
+ ]),
66
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewItemComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'ax-tree-view-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [
71
+ trigger('collapseExpand', [
72
+ state('collapsed', style({
73
+ height: '0',
74
+ overflow: 'hidden',
75
+ opacity: 0,
76
+ })),
77
+ state('expanded', style({
78
+ height: '*',
79
+ overflow: 'hidden',
80
+ opacity: 1,
81
+ })),
82
+ transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),
83
+ ]),
84
+ ], template: "<div class=\"ax-tree-view-container\">\n @if ((item().childrens && !isLoading()) || (item()[hasChildField()] && !isLoading())) {\n <i\n [class.ax-state-disabled]=\"item()[disableField()]\"\n (click)=\"handleArrowNodeClick()\"\n class=\"{{ arrowIcon() }}\"\n ></i>\n } @else if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <i class=\"ax-icon\"></i>\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()[disableField()]\"\n [axTooltip]=\"item().tooltip\"\n axTooltipPlacement=\"end-bottom\"\n (click)=\"handleTextClick(item())\"\n (dblclick)=\"handleTextDbClick(item())\"\n class=\"ax-tree-view-items-prefix noselect-tree-view\"\n [class.ax-state-tree-view-active]=\"item().active\"\n >\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 </div>\n </div>\n</div>\n\n<div\n class=\"{{ platformService.isRtl() ? 'ax-state-tree-view-rtl' : 'ax-state-tree-view-ltr' }}\"\n [@collapseExpand]=\"isExpanded() ? 'expanded' : 'collapsed'\"\n>\n <ng-content></ng-content>\n</div>\n" }]
85
+ }], ctorParameters: () => [] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXctaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7QUE4QnZCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFXO0lBQ3REO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFHVixTQUFJLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBRWpDLGlCQUFZLEdBQUcsTUFBTSxFQUE0QixDQUFDO1FBRWxELGdCQUFXLEdBQUcsTUFBTSxFQUE0QixDQUFDO1FBRWpELGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbkMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUVoQyxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpDLGtCQUFhLEdBQUcsTUFBTSxFQUE0QixDQUFDO1FBRW5ELGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7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QUc7Z0NBQ1gsUUFBUSxFQUFFLFFBQVE7Z0NBQ2xCLE9BQU8sRUFBRSxDQUFDOzZCQUNYLENBQUMsQ0FDSDs0QkFDRCxLQUFLLENBQ0gsVUFBVSxFQUNWLEtBQUssQ0FBQztnQ0FDSixNQUFNLEVBQUUsR0FBRztnQ0FDWCxRQUFRLEVBQUUsUUFBUTtnQ0FDbEIsT0FBTyxFQUFFLENBQUM7NkJBQ1gsQ0FBQyxDQUNIOzRCQUNELFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7eUJBQ3JFLENBQUM7cUJBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQsIEFYVHJlZVZpZXdTY2hlbWEgfSBmcm9tICcuL3RyZWUtdmlldy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXRyZWUtdmlldy1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICd0cmVlLXZpZXctaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignY29sbGFwc2VFeHBhbmQnLCBbXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2NvbGxhcHNlZCcsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgc3RhdGUoXG4gICAgICAgICdleHBhbmRlZCcsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgdHJhbnNpdGlvbignY29sbGFwc2VkIDw9PiBleHBhbmRlZCcsIFthbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcpXSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdJdGVtQ29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaXRlbSA9IGlucHV0PEFYVHJlZVZpZXdTY2hlbWE+KCk7XG5cbiAgb25Ob2RlRXhwYW5kID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBvbk5vZGVDbGljayA9IG91dHB1dDxBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQ+KCk7XG5cbiAgaXNFeHBhbmRlZCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBoYXNDaGlsZEZpZWxkID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIGlzQWN0aXZlID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIG9uTm9kZURiQ2xpY2sgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBkaXNhYmxlRmllbGQgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIHBsYXRmb3JtU2VydmljZSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICBwcm90ZWN0ZWQgYXJyb3dJY29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQoKSkge1xuICAgICAgcmV0dXJuICdheC10cmVlLXZpZXctYXJyb3cgYXgtaWNvbiBheC1pY29uLXNvbGlkIGF4LWljb24tY2hldnJvbi1kb3duJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmlzUnRsKClcbiAgICAgICAgPyAnYXgtdHJlZS12aWV3LWFycm93IGF4LWljb24gYXgtaWNvbi1zb2xpZCBheC1pY29uLWNoZXZyb24tbGVmdCdcbiAgICAgICAgOiAnYXgtdHJlZS12aWV3LWFycm93IGF4LWljb24gYXgtaWNvbi1zb2xpZCBheC1pY29uLWNoZXZyb24tcmlnaHQnO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUFycm93Tm9kZUNsaWNrKCkge1xuICAgIGlmICh0aGlzLml0ZW0oKVt0aGlzLmRpc2FibGVGaWVsZCgpXSB8fCB0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0V4cGFuZGVkLnNldCghdGhpcy5pc0V4cGFuZGVkKCkpO1xuXG4gICAgdGhpcy5vbk5vZGVFeHBhbmQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5pdGVtKCksIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUZXh0Q2xpY2soaXRlbTogQVhUcmVlVmlld1NjaGVtYSkge1xuICAgIHRoaXMub25Ob2RlQ2xpY2suZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogaXRlbSwgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVRleHREYkNsaWNrKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEpIHtcbiAgICBpZiAoaXRlbVt0aGlzLmRpc2FibGVGaWVsZCgpXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaXRlbT8uY2hpbGRyZW5zPy5sZW5ndGggfHwgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGQoKV0pIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZC5zZXQoIXRoaXMuaXNFeHBhbmRlZCgpKTtcbiAgICAgIHRoaXMub25Ob2RlRGJDbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBpdGVtLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtdHJlZS12aWV3LWNvbnRhaW5lclwiPlxuICBAaWYgKChpdGVtKCkuY2hpbGRyZW5zICYmICFpc0xvYWRpbmcoKSkgfHwgKGl0ZW0oKVtoYXNDaGlsZEZpZWxkKCldICYmICFpc0xvYWRpbmcoKSkpIHtcbiAgICA8aVxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIml0ZW0oKVtkaXNhYmxlRmllbGQoKV1cIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUFycm93Tm9kZUNsaWNrKClcIlxuICAgICAgY2xhc3M9XCJ7eyBhcnJvd0ljb24oKSB9fVwiXG4gICAgPjwvaT5cbiAgfSBAZWxzZSBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gIH0gQGVsc2Uge1xuICAgIDxpIGNsYXNzPVwiYXgtaWNvblwiPjwvaT5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJheC10cmVlLXZpZXctaXRlbXNcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jaGVjay1ib3hcIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIml0ZW0oKVtkaXNhYmxlRmllbGQoKV1cIlxuICAgICAgW2F4VG9vbHRpcF09XCJpdGVtKCkudG9vbHRpcFwiXG4gICAgICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJlbmQtYm90dG9tXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVUZXh0Q2xpY2soaXRlbSgpKVwiXG4gICAgICAoZGJsY2xpY2spPVwiaGFuZGxlVGV4dERiQ2xpY2soaXRlbSgpKVwiXG4gICAgICBjbGFzcz1cImF4LXRyZWUtdmlldy1pdGVtcy1wcmVmaXggbm9zZWxlY3QtdHJlZS12aWV3XCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS10cmVlLXZpZXctYWN0aXZlXT1cIml0ZW0oKS5hY3RpdmVcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRleHRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJ7eyBwbGF0Zm9ybVNlcnZpY2UuaXNSdGwoKSA/ICdheC1zdGF0ZS10cmVlLXZpZXctcnRsJyA6ICdheC1zdGF0ZS10cmVlLXZpZXctbHRyJyB9fVwiXG4gIFtAY29sbGFwc2VFeHBhbmRdPVwiaXNFeHBhbmRlZCgpID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import { AXClickEvent } from '@acorex/components/common';
2
+ export class AXTreeItemClickBaseEvent extends AXClickEvent {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUE4QnpELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0NBRXpEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUcmVlVmlld1NjaGVtYSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgcGFyZW50SWQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgdGV4dDogc3RyaW5nO1xuXG4gIGNoaWxkcmVucz86IEFYVHJlZVZpZXdTY2hlbWFbXTtcblxuICBpY29uPzogc3RyaW5nO1xuXG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcblxuICBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG5cbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG5cbiAgYWN0aXZlPzogYm9vbGVhbjtcblxuICBoYXNDaGlsZD86IGJvb2xlYW47XG5cbiAgdmlzaWJsZT86IGJvb2xlYW47XG5cbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCBleHRlbmRzIEFYQ2xpY2tFdmVudCB7XG4gIG5hdGl2ZUVsZW1lbnQ6IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgU2VsZWN0aW9uQmVoYXZpb3JUeXBlID1cbiAgfCAnYXV0b0V4cGFuZCdcbiAgfCAnZXhwYW5kQW5kU2VsZWN0QWxsT3JVblNlbGVjdCdcbiAgfCAnaW5kZXRlcm1pbmF0ZSdcbiAgfCAnYWN0aXZlQW5kU2VsZWN0J1xuICB8IG51bGw7XG4iXX0=
@@ -0,0 +1,299 @@
1
+ import { NXComponent } from '@acorex/components/common';
2
+ import { ChangeDetectionStrategy, Component, effect, input, output, signal, ViewEncapsulation, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@acorex/components/decorators";
6
+ import * as i3 from "@acorex/components/check-box";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "./tree-view-item.component";
9
+ export class AXTreeViewComponent extends NXComponent {
10
+ constructor() {
11
+ super();
12
+ this.itemsSignal = signal([]);
13
+ this.#effect = effect(() => {
14
+ const itemsInput = this.items();
15
+ if (typeof itemsInput === 'function') {
16
+ const result = itemsInput();
17
+ if (result instanceof Promise) {
18
+ this.itemsPromise = (options) => itemsInput(options);
19
+ this.fetchData();
20
+ }
21
+ else {
22
+ this.itemsSignal.set(result);
23
+ this.itemsPromise = null;
24
+ }
25
+ }
26
+ else {
27
+ this.itemsSignal.set(itemsInput);
28
+ this.itemsPromise = null;
29
+ }
30
+ }, { allowSignalWrites: true });
31
+ this.items = input();
32
+ this.selectable = input(true);
33
+ this.selectionMode = input('single');
34
+ this.selectionBehavior = input(null);
35
+ this.showActiveNode = signal(true);
36
+ this.valueField = input('id');
37
+ this.textField = input('text');
38
+ this.visibleField = input('visible');
39
+ this.disableField = input('disabled');
40
+ this.hasChildField = input();
41
+ this.iconField = input('icon');
42
+ this.onSelectionChange = output();
43
+ this.onItemClick = output();
44
+ this.onNodeClick = output();
45
+ this.loadingState = signal({});
46
+ }
47
+ #effect;
48
+ get resolvedItems() {
49
+ return this.itemsSignal();
50
+ }
51
+ handleNodeSelectionClick(event, item) {
52
+ if (item[this.disableField()] || this.isNodeLoading(item.id)) {
53
+ return;
54
+ }
55
+ if (this.selectionMode() === 'single' && event.isUserInteraction) {
56
+ this.handleUnSelectNode(this.itemsSignal());
57
+ }
58
+ item.selected = event.value;
59
+ if (event.value != null) {
60
+ switch (this.selectionBehavior()) {
61
+ case 'autoExpand':
62
+ if (event.value) {
63
+ if (this.itemsPromise && item[this.hasChildField()] && !item?.childrens?.length) {
64
+ this.fetchData(item.id);
65
+ this.setNodeLoading(item.id, true);
66
+ }
67
+ this.toggleExpand(item);
68
+ }
69
+ break;
70
+ case 'expandAndSelectAllOrUnSelect':
71
+ if (this.itemsPromise) {
72
+ console.error('This mode only available client Side');
73
+ return;
74
+ }
75
+ this.expandAndToggleSelection(item, event.value);
76
+ break;
77
+ case 'indeterminate':
78
+ if (item?.childrens?.length) {
79
+ this.applySelectionToChildren(item, event.value, item[this.valueField()]);
80
+ }
81
+ this.updateParentSelection(item, event.value);
82
+ break;
83
+ default:
84
+ break;
85
+ }
86
+ }
87
+ if (event.isUserInteraction) {
88
+ const result = this.findSelectedNodes(this.itemsSignal());
89
+ this.onSelectionChange.emit({
90
+ component: this,
91
+ data: result,
92
+ nativeElement: this.nativeElement,
93
+ });
94
+ this.onItemClick.emit({ component: this, data: item, nativeElement: this.nativeElement });
95
+ }
96
+ }
97
+ /**
98
+ *
99
+ * auto expand
100
+ *
101
+ */
102
+ toggleExpand(item) {
103
+ if (!item.isExpanded) {
104
+ item.isExpanded = true;
105
+ }
106
+ }
107
+ /**
108
+ *
109
+ * expand and change value parent change
110
+ *
111
+ */
112
+ expandAndToggleSelection(item, selected) {
113
+ this.toggleExpand(item);
114
+ if (item.childrens?.length) {
115
+ this.applySelectionToChildren(item, selected, item[this.valueField()]);
116
+ }
117
+ }
118
+ applySelectionToChildren(item, isSelected, parentId) {
119
+ item.childrens.forEach((child) => {
120
+ child.parentId = parentId;
121
+ child.selected = isSelected;
122
+ if (child.childrens?.length) {
123
+ this.applySelectionToChildren(child, isSelected, child.id);
124
+ }
125
+ });
126
+ }
127
+ /**
128
+ *
129
+ * indeterminate logic
130
+ *
131
+ */
132
+ updateParentSelection(item, selected) {
133
+ item.selected = selected;
134
+ let parent = this.findParent(item, this.itemsSignal());
135
+ while ((parent && parent.selected != false) || (parent && item.selected)) {
136
+ const allSelected = parent?.childrens?.every((child) => child.selected);
137
+ const someSelected = parent?.childrens?.some((child) => child.selected || child.indeterminate);
138
+ if (!allSelected && !someSelected) {
139
+ parent.selected = false;
140
+ parent.indeterminate = null;
141
+ }
142
+ else if (!allSelected) {
143
+ parent.indeterminate = true;
144
+ parent.selected = null;
145
+ }
146
+ else if (allSelected) {
147
+ parent.selected = true;
148
+ parent.indeterminate = false;
149
+ }
150
+ else {
151
+ parent.indeterminate = false;
152
+ parent.selected = true;
153
+ }
154
+ parent = this.findParent(parent, this.itemsSignal());
155
+ }
156
+ }
157
+ findParent(item, nodes) {
158
+ for (let node of nodes) {
159
+ if (node.childrens?.includes(item)) {
160
+ return node;
161
+ }
162
+ else if (node.childrens) {
163
+ const parent = this.findParent(item, node.childrens);
164
+ if (parent)
165
+ return parent;
166
+ }
167
+ }
168
+ return null;
169
+ }
170
+ /**
171
+ *
172
+ * find node selected true for emit Selections
173
+ *
174
+ */
175
+ findSelectedNodes(nodes) {
176
+ let selectedNodes = [];
177
+ nodes.forEach((node) => {
178
+ if (node.selected) {
179
+ selectedNodes.push(node);
180
+ }
181
+ if (node.childrens) {
182
+ selectedNodes = selectedNodes.concat(this.findSelectedNodes(node.childrens));
183
+ }
184
+ });
185
+ return selectedNodes;
186
+ }
187
+ /**
188
+ *
189
+ * find for emit Selections single mode
190
+ *
191
+ */
192
+ handleUnSelectNode(items) {
193
+ items.forEach((child) => {
194
+ child.selected = false;
195
+ if (child?.childrens?.length) {
196
+ this.handleUnSelectNode(child.childrens);
197
+ }
198
+ });
199
+ }
200
+ /**
201
+ *
202
+ * lazy load logic
203
+ *
204
+ */
205
+ fetchData(parentId) {
206
+ this.itemsPromise({ parentId })
207
+ .then((data) => {
208
+ if (Array.isArray(data)) {
209
+ if (parentId) {
210
+ this.findNode(parentId, data, this.itemsSignal());
211
+ }
212
+ else {
213
+ this.itemsSignal.set(data);
214
+ }
215
+ }
216
+ })
217
+ .finally(() => {
218
+ this.setNodeLoading(parentId, false);
219
+ });
220
+ }
221
+ findNode(parentId, _children, source) {
222
+ if (source.length) {
223
+ source.forEach((element) => {
224
+ if (element[this.valueField()] == parentId) {
225
+ element.childrens = _children;
226
+ }
227
+ else {
228
+ if (element?.childrens)
229
+ this.findNode(parentId, _children, element.childrens);
230
+ }
231
+ });
232
+ }
233
+ }
234
+ /**
235
+ *
236
+ * emit when arrow click
237
+ *
238
+ */
239
+ handleNodeExpandClick(node) {
240
+ const parentId = node.data.id;
241
+ if (this.itemsPromise && node.data.isExpanded && !node?.data.childrens?.length) {
242
+ this.fetchData(parentId);
243
+ this.setNodeLoading(node.data.id, true);
244
+ }
245
+ this.onItemClick.emit({ component: this, data: node.data, nativeElement: this.nativeElement });
246
+ }
247
+ handleNodeClick(node) {
248
+ if (node.data[this.disableField()]) {
249
+ return;
250
+ }
251
+ if (this.showActiveNode()) {
252
+ this.handleUnActiveNode(this.itemsSignal());
253
+ node.data.active = true;
254
+ }
255
+ ///to do
256
+ // switch (this.selectionBehavior()) {
257
+ // case 'activeAndSelect':
258
+ // if (this.selectionMode() === 'single') {
259
+ // this.handleUnselectNode(this.itemsSignal());
260
+ // }
261
+ // node.selected = true;
262
+ // break;
263
+ // default:
264
+ // break;
265
+ // }
266
+ this.onNodeClick.emit({ component: this, data: node.data, nativeElement: this.nativeElement });
267
+ }
268
+ handleUnActiveNode(unActiveSource) {
269
+ unActiveSource.forEach((child) => {
270
+ child.active = false;
271
+ if (child?.childrens?.length) {
272
+ this.handleUnActiveNode(child.childrens);
273
+ }
274
+ });
275
+ }
276
+ handleNodeDbClick(node) {
277
+ if (this.itemsPromise) {
278
+ const nodeParentId = node.data.id;
279
+ this.fetchData(nodeParentId);
280
+ this.setNodeLoading(node.data.id, true);
281
+ }
282
+ }
283
+ isNodeLoading(nodeId) {
284
+ return this.loadingState()[nodeId] || false;
285
+ }
286
+ setNodeLoading(nodeId, isLoading) {
287
+ this.loadingState.update((state) => ({
288
+ ...state,
289
+ [nodeId]: isLoading,
290
+ }));
291
+ }
292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXTreeViewComponent, selector: "ax-tree-view", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", 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 }, 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 }, iconField: { classPropertyName: "iconField", publicName: "iconField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange", onItemClick: "onItemClick", onNodeClick: "onNodeClick" }, usesInheritance: true, ngImport: i0, template: "@for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></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.isExpanded\"\n [(isActive)]=\"item.active\"\n [isLoading]=\"isNodeLoading(item.id)\"\n [disableField]=\"disableField()\"\n [hasChildField]=\"hasChildField()\"\n (onNodeExpand)=\"handleNodeExpandClick($event)\"\n (onNodeClick)=\"handleNodeClick($event)\"\n (onNodeDbClick)=\"handleNodeDbClick($event)\"\n >\n @if (this.selectable()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\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?.childrens; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n", styles: ["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-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:.875rem!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center;gap:.5rem}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:.375rem;padding-inline-end:.5rem!important;border-radius:.25rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.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-color-primary-500));color:#fff}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:hover{background-color:rgba(var(--ax-color-primary-500))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover{background-color:rgba(var(--ax-color-on-surface))}ax-tree-view ax-tree-view-item .ax-state-tree-view-rtl{padding-inline-end:.5rem}ax-tree-view ax-tree-view-item .ax-state-tree-view-ltr{padding-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}ax-tree-view ax-tree-view-item .arrow-container{position:relative;display:flex;align-items:center}ax-tree-view ax-tree-view-item .vertical-line{width:.125rem;height:100%;background-color:#ccc;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.AXTreeViewItemComponent, selector: "ax-tree-view-item", inputs: ["item", "isExpanded", "hasChildField", "isActive", "isLoading", "disableField"], outputs: ["onNodeExpand", "onNodeClick", "isExpandedChange", "isActiveChange", "onNodeDbClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
294
+ }
295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewComponent, decorators: [{
296
+ type: Component,
297
+ args: [{ selector: 'ax-tree-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></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.isExpanded\"\n [(isActive)]=\"item.active\"\n [isLoading]=\"isNodeLoading(item.id)\"\n [disableField]=\"disableField()\"\n [hasChildField]=\"hasChildField()\"\n (onNodeExpand)=\"handleNodeExpandClick($event)\"\n (onNodeClick)=\"handleNodeClick($event)\"\n (onNodeDbClick)=\"handleNodeDbClick($event)\"\n >\n @if (this.selectable()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\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?.childrens; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n", styles: ["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-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:.875rem!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center;gap:.5rem}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:.375rem;padding-inline-end:.5rem!important;border-radius:.25rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.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-color-primary-500));color:#fff}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:hover{background-color:rgba(var(--ax-color-primary-500))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover{background-color:rgba(var(--ax-color-on-surface))}ax-tree-view ax-tree-view-item .ax-state-tree-view-rtl{padding-inline-end:.5rem}ax-tree-view ax-tree-view-item .ax-state-tree-view-ltr{padding-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}ax-tree-view ax-tree-view-item .arrow-container{position:relative;display:flex;align-items:center}ax-tree-view ax-tree-view-item .vertical-line{width:.125rem;height:100%;background-color:#ccc;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}\n"] }]
298
+ }], ctorParameters: () => [] });
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFVdkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFDbEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUdGLGdCQUFXLEdBQUcsTUFBTSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQUlyRCxZQUFPLEdBQUcsTUFBTSxDQUNkLEdBQUcsRUFBRTtZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVoQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLE1BQU0sR0FBRyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzdCLElBQUks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dCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50LCBBWFRyZWVWaWV3U2NoZW1hLCBTZWxlY3Rpb25CZWhhdmlvclR5cGUgfSBmcm9tICcuL3RyZWUtdmlldy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXRyZWUtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAndHJlZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3RyZWUtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0NvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbXNTaWduYWwgPSBzaWduYWw8QVhUcmVlVmlld1NjaGVtYVtdPihbXSk7XG5cbiAgcHJpdmF0ZSBpdGVtc1Byb21pc2U6IGFueTtcblxuICAjZWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zSW5wdXQgPSB0aGlzLml0ZW1zKCk7XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlbXNJbnB1dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpdGVtc0lucHV0KCk7XG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgPSAob3B0aW9ucykgPT4gaXRlbXNJbnB1dChvcHRpb25zKTtcbiAgICAgICAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXRlbXNTaWduYWwuc2V0KHJlc3VsdCk7XG4gICAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChpdGVtc0lucHV0KTtcbiAgICAgICAgdGhpcy5pdGVtc1Byb21pc2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICApO1xuXG4gIGl0ZW1zID0gaW5wdXQ8XG4gICAgfCBBWFRyZWVWaWV3U2NoZW1hW11cbiAgICB8ICgob3B0aW9ucz86IHsgcGFyZW50SWQ6IHN0cmluZyB8IG51bWJlciB9KSA9PiBBWFRyZWVWaWV3U2NoZW1hW10gfCBQcm9taXNlPEFYVHJlZVZpZXdTY2hlbWFbXT4pXG4gID4oKTtcblxuICBwcm90ZWN0ZWQgZ2V0IHJlc29sdmVkSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNTaWduYWwoKTtcbiAgfVxuXG4gIHNlbGVjdGFibGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8J3NpbmdsZScgfCAnbXVsdGlwbGUnPignc2luZ2xlJyk7XG5cbiAgc2VsZWN0aW9uQmVoYXZpb3IgPSBpbnB1dDxTZWxlY3Rpb25CZWhhdmlvclR5cGU+KG51bGwpO1xuXG4gIHNob3dBY3RpdmVOb2RlID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuXG4gIHZhbHVlRmllbGQgPSBpbnB1dDxzdHJpbmc+KCdpZCcpO1xuXG4gIHRleHRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ3RleHQnKTtcblxuICB2aXNpYmxlRmllbGQgPSBpbnB1dDxzdHJpbmc+KCd2aXNpYmxlJyk7XG5cbiAgZGlzYWJsZUZpZWxkID0gaW5wdXQ8c3RyaW5nPignZGlzYWJsZWQnKTtcblxuICBoYXNDaGlsZEZpZWxkID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIGljb25GaWVsZCA9IGlucHV0PHN0cmluZz4oJ2ljb24nKTtcblxuICBvblNlbGVjdGlvbkNoYW5nZSA9IG91dHB1dDxBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQ+KCk7XG5cbiAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZUNsaWNrID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZVNlbGVjdGlvbkNsaWNrKGV2ZW50OiBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBpdGVtOiBBWFRyZWVWaWV3U2NoZW1hKSB7XG4gICAgaWYgKGl0ZW1bdGhpcy5kaXNhYmxlRmllbGQoKV0gfHwgdGhpcy5pc05vZGVMb2FkaW5nKGl0ZW0uaWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSgpID09PSAnc2luZ2xlJyAmJiBldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5oYW5kbGVVblNlbGVjdE5vZGUodGhpcy5pdGVtc1NpZ25hbCgpKTtcbiAgICB9XG4gICAgaXRlbS5zZWxlY3RlZCA9IGV2ZW50LnZhbHVlO1xuXG4gICAgaWYgKGV2ZW50LnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb25CZWhhdmlvcigpKSB7XG4gICAgICAgIGNhc2UgJ2F1dG9FeHBhbmQnOlxuICAgICAgICAgIGlmIChldmVudC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFpdGVtPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YShpdGVtLmlkKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXROb2RlTG9hZGluZyhpdGVtLmlkLCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmQoaXRlbSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdleHBhbmRBbmRTZWxlY3RBbGxPclVuU2VsZWN0JzpcbiAgICAgICAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoaXMgbW9kZSBvbmx5IGF2YWlsYWJsZSBjbGllbnQgU2lkZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmV4cGFuZEFuZFRvZ2dsZVNlbGVjdGlvbihpdGVtLCBldmVudC52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2luZGV0ZXJtaW5hdGUnOlxuICAgICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oaXRlbSwgZXZlbnQudmFsdWUsIGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRTZWxlY3Rpb24oaXRlbSwgZXZlbnQudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3QgcmVzdWx0OiBBWFRyZWVWaWV3U2NoZW1hW10gPSB0aGlzLmZpbmRTZWxlY3RlZE5vZGVzKHRoaXMuaXRlbXNTaWduYWwoKSk7XG5cbiAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBpdGVtLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGF1dG8gZXhwYW5kXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZUV4cGFuZChpdGVtOiBBWFRyZWVWaWV3U2NoZW1hKSB7XG4gICAgaWYgKCFpdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgIGl0ZW0uaXNFeHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGV4cGFuZCBhbmQgY2hhbmdlIHZhbHVlIHBhcmVudCBjaGFuZ2VcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBleHBhbmRBbmRUb2dnbGVTZWxlY3Rpb24oaXRlbTogQVhUcmVlVmlld1NjaGVtYSwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcblxuICAgIGlmIChpdGVtLmNoaWxkcmVucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0aW9uVG9DaGlsZHJlbihpdGVtLCBzZWxlY3RlZCwgaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEsIGlzU2VsZWN0ZWQ6IGJvb2xlYW4sIHBhcmVudElkPzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaXRlbS5jaGlsZHJlbnMuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNoaWxkLnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgICBjaGlsZC5zZWxlY3RlZCA9IGlzU2VsZWN0ZWQ7XG4gICAgICBpZiAoY2hpbGQuY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oY2hpbGQsIGlzU2VsZWN0ZWQsIGNoaWxkLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBpbmRldGVybWluYXRlIGxvZ2ljXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgdXBkYXRlUGFyZW50U2VsZWN0aW9uKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEsIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgaXRlbS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgbGV0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChpdGVtLCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuXG4gICAgd2hpbGUgKChwYXJlbnQgJiYgcGFyZW50LnNlbGVjdGVkICE9IGZhbHNlKSB8fCAocGFyZW50ICYmIGl0ZW0uc2VsZWN0ZWQpKSB7XG4gICAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHBhcmVudD8uY2hpbGRyZW5zPy5ldmVyeSgoY2hpbGQpID0+IGNoaWxkLnNlbGVjdGVkKTtcblxuICAgICAgY29uc3Qgc29tZVNlbGVjdGVkID0gcGFyZW50Py5jaGlsZHJlbnM/LnNvbWUoKGNoaWxkKSA9PiBjaGlsZC5zZWxlY3RlZCB8fCBjaGlsZC5pbmRldGVybWluYXRlKTtcblxuICAgICAgaWYgKCFhbGxTZWxlY3RlZCAmJiAhc29tZVNlbGVjdGVkKSB7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFhbGxTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKGFsbFNlbGVjdGVkKSB7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICBwYXJlbnQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQocGFyZW50LCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhcmVudChpdGVtOiBBWFRyZWVWaWV3U2NoZW1hLCBub2RlczogQVhUcmVlVmlld1NjaGVtYVtdKTogQVhUcmVlVmlld1NjaGVtYSB8IG51bGwge1xuICAgIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgIGlmIChub2RlLmNoaWxkcmVucz8uaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGRyZW5zKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChpdGVtLCBub2RlLmNoaWxkcmVucyk7XG4gICAgICAgIGlmIChwYXJlbnQpIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGZpbmQgbm9kZSBzZWxlY3RlZCB0cnVlIGZvciBlbWl0IFNlbGVjdGlvbnNcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBmaW5kU2VsZWN0ZWROb2Rlcyhub2RlczogQVhUcmVlVmlld1NjaGVtYVtdKTogQVhUcmVlVmlld1NjaGVtYVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogQVhUcmVlVmlld1NjaGVtYVtdID0gW107XG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLmNoaWxkcmVucykge1xuICAgICAgICBzZWxlY3RlZE5vZGVzID0gc2VsZWN0ZWROb2Rlcy5jb25jYXQodGhpcy5maW5kU2VsZWN0ZWROb2Rlcyhub2RlLmNoaWxkcmVucykpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGVkTm9kZXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogZmluZCBmb3IgZW1pdCBTZWxlY3Rpb25zIHNpbmdsZSBtb2RlXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgaGFuZGxlVW5TZWxlY3ROb2RlKGl0ZW1zOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICBpdGVtcy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVVblNlbGVjdE5vZGUoY2hpbGQuY2hpbGRyZW5zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBsYXp5IGxvYWQgbG9naWNcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBmZXRjaERhdGEocGFyZW50SWQ/OiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICB0aGlzLml0ZW1zUHJvbWlzZSh7IHBhcmVudElkIH0pXG4gICAgICAudGhlbigoZGF0YTogQVhUcmVlVmlld1NjaGVtYVtdKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgaWYgKHBhcmVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmROb2RlKHBhcmVudElkLCBkYXRhLCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcocGFyZW50SWQsIGZhbHNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShwYXJlbnRJZDogbnVtYmVyIHwgc3RyaW5nLCBfY2hpbGRyZW46IEFYVHJlZVZpZXdTY2hlbWFbXSwgc291cmNlOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICBpZiAoc291cmNlLmxlbmd0aCkge1xuICAgICAgc291cmNlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkKCldID09IHBhcmVudElkKSB7XG4gICAgICAgICAgZWxlbWVudC5jaGlsZHJlbnMgPSBfY2hpbGRyZW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQ/LmNoaWxkcmVucykgdGhpcy5maW5kTm9kZShwYXJlbnRJZCwgX2NoaWxkcmVuLCBlbGVtZW50LmNoaWxkcmVucyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBlbWl0IHdoZW4gYXJyb3cgY2xpY2tcbiAgICpcbiAgICovXG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVFeHBhbmRDbGljayhub2RlOiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpIHtcbiAgICBjb25zdCBwYXJlbnRJZCA9IG5vZGUuZGF0YS5pZDtcbiAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UgJiYgbm9kZS5kYXRhLmlzRXhwYW5kZWQgJiYgIW5vZGU/LmRhdGEuY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmV0Y2hEYXRhKHBhcmVudElkKTtcbiAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcobm9kZS5kYXRhLmlkLCB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBub2RlLmRhdGEsIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVOb2RlQ2xpY2sobm9kZTogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KSB7XG4gICAgaWYgKG5vZGUuZGF0YVt0aGlzLmRpc2FibGVGaWVsZCgpXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QWN0aXZlTm9kZSgpKSB7XG4gICAgICB0aGlzLmhhbmRsZVVuQWN0aXZlTm9kZSh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgICAgbm9kZS5kYXRhLmFjdGl2ZSA9IHRydWU7XG4gICAgfVxuICAgIC8vL3RvIGRvXG4gICAgLy8gc3dpdGNoICh0aGlzLnNlbGVjdGlvbkJlaGF2aW9yKCkpIHtcbiAgICAvLyAgIGNhc2UgJ2FjdGl2ZUFuZFNlbGVjdCc6XG4gICAgLy8gICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAvLyAgICAgICB0aGlzLmhhbmRsZVVuc2VsZWN0Tm9kZSh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgLy8gICAgIGJyZWFrO1xuXG4gICAgLy8gICBkZWZhdWx0OlxuICAgIC8vICAgICBicmVhaztcbiAgICAvLyB9XG4gICAgdGhpcy5vbk5vZGVDbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBub2RlLmRhdGEsIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVW5BY3RpdmVOb2RlKHVuQWN0aXZlU291cmNlOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICB1bkFjdGl2ZVNvdXJjZS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY2hpbGQuYWN0aXZlID0gZmFsc2U7XG4gICAgICBpZiAoY2hpbGQ/LmNoaWxkcmVucz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVW5BY3RpdmVOb2RlKGNoaWxkLmNoaWxkcmVucyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZURiQ2xpY2sobm9kZTogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlKSB7XG4gICAgICBjb25zdCBub2RlUGFyZW50SWQgPSBub2RlLmRhdGEuaWQ7XG4gICAgICB0aGlzLmZldGNoRGF0YShub2RlUGFyZW50SWQpO1xuICAgICAgdGhpcy5zZXROb2RlTG9hZGluZyhub2RlLmRhdGEuaWQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZGluZ1N0YXRlID0gc2lnbmFsPFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIGJvb2xlYW4+Pih7fSk7XG5cbiAgaXNOb2RlTG9hZGluZyhub2RlSWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZSgpW25vZGVJZF0gfHwgZmFsc2U7XG4gIH1cblxuICBzZXROb2RlTG9hZGluZyhub2RlSWQ6IHN0cmluZyB8IG51bWJlciwgaXNMb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgW25vZGVJZF06IGlzTG9hZGluZyxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIkBmb3IgKG5vZGUgb2YgcmVzb2x2ZWRJdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbn1cblxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbVt2aXNpYmxlRmllbGQoKV0gIT09IGZhbHNlKSB7XG4gICAgPGF4LXRyZWUtdmlldy1pdGVtXG4gICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgIFsoaXNFeHBhbmRlZCldPVwiaXRlbS5pc0V4cGFuZGVkXCJcbiAgICAgIFsoaXNBY3RpdmUpXT1cIml0ZW0uYWN0aXZlXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXNOb2RlTG9hZGluZyhpdGVtLmlkKVwiXG4gICAgICBbZGlzYWJsZUZpZWxkXT1cImRpc2FibGVGaWVsZCgpXCJcbiAgICAgIFtoYXNDaGlsZEZpZWxkXT1cImhhc0NoaWxkRmllbGQoKVwiXG4gICAgICAob25Ob2RlRXhwYW5kKT1cImhhbmRsZU5vZGVFeHBhbmRDbGljaygkZXZlbnQpXCJcbiAgICAgIChvbk5vZGVDbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25Ob2RlRGJDbGljayk9XCJoYW5kbGVOb2RlRGJDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAaWYgKHRoaXMuc2VsZWN0YWJsZSgpKSB7XG4gICAgICAgIDxheC1jaGVjay1ib3hcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGQoKV1cIlxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlTm9kZVNlbGVjdGlvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICA+PC9heC1jaGVjay1ib3g+XG4gICAgICB9XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICBAaWYgKGl0ZW1baWNvbkZpZWxkKCldKSB7XG4gICAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaXRlbVtpY29uRmllbGQoKV1cIj48L2F4LWljb24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpPjwvaT5cbiAgICAgICAgfVxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICBAaWYgKGl0ZW1bdGV4dEZpZWxkKCldKSB7XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW1bdGV4dEZpZWxkKCldIH19PC9heC10ZXh0PlxuICAgICAgfVxuXG4gICAgICA8YXgtc3VmZml4PjwvYXgtc3VmZml4PlxuICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbT8uY2hpbGRyZW5zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvYXgtdHJlZS12aWV3LWl0ZW0+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { AXCheckBoxModule } from '@acorex/components/check-box';
2
+ import { AXCommonModule } from '@acorex/components/common';
3
+ import { AXDecoratorModule } from '@acorex/components/decorators';
4
+ import { AXFormModule } from '@acorex/components/form';
5
+ import { AXLoadingModule } from '@acorex/components/loading';
6
+ import { AXTooltipModule } from '@acorex/components/tooltip';
7
+ import { CommonModule } from '@angular/common';
8
+ import { NgModule } from '@angular/core';
9
+ import { FormsModule } from '@angular/forms';
10
+ import { AXTreeViewItemComponent } from './tree-view-item.component';
11
+ import { AXTreeViewComponent } from './tree-view.component';
12
+ import * as i0 from "@angular/core";
13
+ export class AXTreeViewModule {
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewModule, declarations: [AXTreeViewComponent, AXTreeViewItemComponent], imports: [CommonModule,
16
+ AXCommonModule,
17
+ AXDecoratorModule,
18
+ AXCheckBoxModule,
19
+ AXFormModule,
20
+ FormsModule,
21
+ AXTooltipModule,
22
+ AXLoadingModule], exports: [AXTreeViewComponent, AXTreeViewItemComponent] }); }
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewModule, imports: [CommonModule,
24
+ AXCommonModule,
25
+ AXDecoratorModule,
26
+ AXCheckBoxModule,
27
+ AXFormModule,
28
+ FormsModule,
29
+ AXTooltipModule,
30
+ AXLoadingModule] }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewModule, decorators: [{
33
+ type: NgModule,
34
+ args: [{
35
+ imports: [
36
+ CommonModule,
37
+ AXCommonModule,
38
+ AXDecoratorModule,
39
+ AXCheckBoxModule,
40
+ AXFormModule,
41
+ FormsModule,
42
+ AXTooltipModule,
43
+ AXLoadingModule,
44
+ ],
45
+ exports: [AXTreeViewComponent, AXTreeViewItemComponent],
46
+ declarations: [AXTreeViewComponent, AXTreeViewItemComponent],
47
+ providers: [],
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdHJlZS12aWV3L3NyYy9saWIvdHJlZS12aWV3LmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFnQjVELE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQUhaLG1CQUFtQixFQUFFLHVCQUF1QixhQVZ6RCxZQUFZO1lBQ1osY0FBYztZQUNkLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsZUFBZSxhQUVQLG1CQUFtQixFQUFFLHVCQUF1QjsrR0FJM0MsZ0JBQWdCLFlBYnpCLFlBQVk7WUFDWixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osV0FBVztZQUNYLGVBQWU7WUFDZixlQUFlOzsyRkFNTixnQkFBZ0I7a0JBZjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUM7b0JBQ3ZELFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDO29CQUM1RCxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWFRyZWVWaWV3SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEFYVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtdmlldy5jb21wb25lbnQnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbQVhUcmVlVmlld0NvbXBvbmVudCwgQVhUcmVlVmlld0l0ZW1Db21wb25lbnRdLFxuICBkZWNsYXJhdGlvbnM6IFtBWFRyZWVWaWV3Q29tcG9uZW50LCBBWFRyZWVWaWV3SXRlbUNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdNb2R1bGUge31cbiJdfQ==