@abp/ng.components 7.2.2 → 7.3.0-rc.2

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 (72) hide show
  1. package/README.md +129 -2
  2. package/chart.js/chart.component.d.ts +30 -30
  3. package/chart.js/chart.module.d.ts +8 -8
  4. package/chart.js/index.d.ts +5 -5
  5. package/chart.js/public-api.d.ts +3 -3
  6. package/chart.js/widget-utils.d.ts +1 -1
  7. package/{esm2020 → esm2022}/abp-ng.components.mjs +4 -4
  8. package/{esm2020 → esm2022}/chart.js/abp-ng.components-chart.js.mjs +4 -4
  9. package/esm2022/chart.js/chart.component.mjs +141 -0
  10. package/esm2022/chart.js/chart.module.mjs +20 -0
  11. package/{esm2020 → esm2022}/chart.js/public-api.mjs +3 -3
  12. package/{esm2020 → esm2022}/chart.js/widget-utils.mjs +10 -10
  13. package/{esm2020 → esm2022}/page/abp-ng.components-page.mjs +4 -4
  14. package/esm2022/page/page-part.directive.mjs +77 -0
  15. package/esm2022/page/page-parts.component.mjs +48 -0
  16. package/esm2022/page/page.component.mjs +56 -0
  17. package/esm2022/page/page.module.mjs +39 -0
  18. package/{esm2020 → esm2022}/page/public-api.mjs +4 -4
  19. package/{esm2020 → esm2022}/public-api.mjs +4 -4
  20. package/{esm2020 → esm2022}/tree/abp-ng.components-tree.mjs +4 -4
  21. package/esm2022/tree/lib/components/tree.component.mjs +154 -0
  22. package/{esm2020 → esm2022}/tree/lib/disable-tree-style-loading.token.mjs +2 -2
  23. package/esm2022/tree/lib/templates/expanded-icon-template.directive.mjs +17 -0
  24. package/esm2022/tree/lib/templates/tree-node-template.directive.mjs +17 -0
  25. package/esm2022/tree/lib/tree.module.mjs +26 -0
  26. package/{esm2020 → esm2022}/tree/lib/utils/nz-tree-adapter.mjs +91 -91
  27. package/{esm2020 → esm2022}/tree/public-api.mjs +6 -6
  28. package/{fesm2020 → fesm2022}/abp-ng.components-chart.js.mjs +135 -135
  29. package/fesm2022/abp-ng.components-chart.js.mjs.map +1 -0
  30. package/{fesm2020 → fesm2022}/abp-ng.components-page.mjs +187 -187
  31. package/{fesm2020 → fesm2022}/abp-ng.components-page.mjs.map +1 -1
  32. package/{fesm2020 → fesm2022}/abp-ng.components-tree.mjs +269 -269
  33. package/fesm2022/abp-ng.components-tree.mjs.map +1 -0
  34. package/{fesm2020 → fesm2022}/abp-ng.components.mjs +4 -4
  35. package/index.d.ts +5 -5
  36. package/package.json +31 -30
  37. package/page/index.d.ts +5 -5
  38. package/page/page-part.directive.d.ts +31 -31
  39. package/page/page-parts.component.d.ts +18 -18
  40. package/page/page.component.d.ts +21 -21
  41. package/page/page.module.d.ts +13 -13
  42. package/page/public-api.d.ts +4 -4
  43. package/public-api.d.ts +1 -1
  44. package/tree/index.d.ts +5 -5
  45. package/tree/lib/components/tree.component.d.ts +51 -51
  46. package/tree/lib/disable-tree-style-loading.token.d.ts +2 -2
  47. package/tree/lib/templates/expanded-icon-template.directive.d.ts +8 -8
  48. package/tree/lib/templates/tree-node-template.directive.d.ts +8 -8
  49. package/tree/lib/tree.module.d.ts +13 -13
  50. package/tree/lib/utils/nz-tree-adapter.d.ts +38 -38
  51. package/tree/public-api.d.ts +6 -6
  52. package/esm2020/chart.js/chart.component.mjs +0 -140
  53. package/esm2020/chart.js/chart.module.mjs +0 -19
  54. package/esm2020/page/page-part.directive.mjs +0 -76
  55. package/esm2020/page/page-parts.component.mjs +0 -45
  56. package/esm2020/page/page.component.mjs +0 -55
  57. package/esm2020/page/page.module.mjs +0 -38
  58. package/esm2020/tree/lib/components/tree.component.mjs +0 -153
  59. package/esm2020/tree/lib/templates/expanded-icon-template.directive.mjs +0 -16
  60. package/esm2020/tree/lib/templates/tree-node-template.directive.mjs +0 -16
  61. package/esm2020/tree/lib/tree.module.mjs +0 -25
  62. package/fesm2015/abp-ng.components-chart.js.mjs +0 -175
  63. package/fesm2015/abp-ng.components-chart.js.mjs.map +0 -1
  64. package/fesm2015/abp-ng.components-page.mjs +0 -215
  65. package/fesm2015/abp-ng.components-page.mjs.map +0 -1
  66. package/fesm2015/abp-ng.components-tree.mjs +0 -300
  67. package/fesm2015/abp-ng.components-tree.mjs.map +0 -1
  68. package/fesm2015/abp-ng.components.mjs +0 -4
  69. package/fesm2015/abp-ng.components.mjs.map +0 -1
  70. package/fesm2020/abp-ng.components-chart.js.mjs.map +0 -1
  71. package/fesm2020/abp-ng.components-tree.mjs.map +0 -1
  72. /package/{fesm2020 → fesm2022}/abp-ng.components.mjs.map +0 -0
@@ -1,215 +0,0 @@
1
- import { CoreModule } from '@abp/ng.core';
2
- import * as i3 from '@abp/ng.theme.shared';
3
- import { ThemeSharedModule } from '@abp/ng.theme.shared';
4
- import * as i2 from '@abp/ng.theme.shared/extensions';
5
- import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';
6
- import * as i1 from '@angular/common';
7
- import { CommonModule } from '@angular/common';
8
- import * as i0 from '@angular/core';
9
- import { InjectionToken, Directive, Optional, Inject, Input, Component, ViewEncapsulation, ContentChild, NgModule } from '@angular/core';
10
- import { Observable, of } from 'rxjs';
11
-
12
- const PAGE_RENDER_STRATEGY = new InjectionToken('PAGE_RENDER_STRATEGY');
13
- class PagePartDirective {
14
- constructor(templateRef, viewContainer, renderLogic, injector) {
15
- this.templateRef = templateRef;
16
- this.viewContainer = viewContainer;
17
- this.renderLogic = renderLogic;
18
- this.injector = injector;
19
- this.hasRendered = false;
20
- this.render = (shouldRender) => {
21
- if (shouldRender && !this.hasRendered) {
22
- this.viewContainer.createEmbeddedView(this.templateRef);
23
- this.hasRendered = true;
24
- }
25
- else if (!shouldRender && this.hasRendered) {
26
- this.viewContainer.clear();
27
- this.hasRendered = false;
28
- }
29
- };
30
- }
31
- set abpPagePart(type) {
32
- this.type = type;
33
- this.createRenderStream(type);
34
- }
35
- ngOnChanges({ context }) {
36
- var _a;
37
- if ((_a = this.renderLogic) === null || _a === void 0 ? void 0 : _a.onContextUpdate) {
38
- this.renderLogic.onContextUpdate(context);
39
- }
40
- }
41
- ngOnInit() {
42
- var _a;
43
- if ((_a = this.renderLogic) === null || _a === void 0 ? void 0 : _a.onInit) {
44
- this.renderLogic.onInit(this.type, this.injector, this.context);
45
- }
46
- }
47
- ngOnDestroy() {
48
- var _a;
49
- this.clearSubscription();
50
- if ((_a = this.renderLogic) === null || _a === void 0 ? void 0 : _a.onDestroy) {
51
- this.renderLogic.onDestroy(this.type, this.injector, this.context);
52
- }
53
- }
54
- shouldRender(type) {
55
- if (this.renderLogic) {
56
- const willRender = this.renderLogic.shouldRender(type);
57
- return willRender instanceof Observable ? willRender : of(willRender);
58
- }
59
- return of(true);
60
- }
61
- createRenderStream(type) {
62
- this.clearSubscription();
63
- this.subscription = this.shouldRender(type).subscribe(this.render);
64
- }
65
- clearSubscription() {
66
- if (this.subscription) {
67
- this.subscription.unsubscribe();
68
- }
69
- }
70
- }
71
- PagePartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PagePartDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PAGE_RENDER_STRATEGY, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
72
- PagePartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: PagePartDirective, selector: "[abpPagePart]", inputs: { context: ["abpPagePartContext", "context"], abpPagePart: "abpPagePart" }, usesOnChanges: true, ngImport: i0 });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PagePartDirective, decorators: [{
74
- type: Directive,
75
- args: [{ selector: '[abpPagePart]' }]
76
- }], ctorParameters: function () {
77
- return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
78
- type: Optional
79
- }, {
80
- type: Inject,
81
- args: [PAGE_RENDER_STRATEGY]
82
- }] }, { type: i0.Injector }];
83
- }, propDecorators: { context: [{
84
- type: Input,
85
- args: ['abpPagePartContext']
86
- }], abpPagePart: [{
87
- type: Input
88
- }] } });
89
-
90
- var PageParts;
91
- (function (PageParts) {
92
- PageParts["title"] = "PageTitleContainerComponent";
93
- PageParts["breadcrumb"] = "PageBreadcrumbContainerComponent";
94
- PageParts["toolbar"] = "PageToolbarContainerComponent";
95
- })(PageParts || (PageParts = {}));
96
- class PageTitleContainerComponent {
97
- }
98
- PageTitleContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageTitleContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
99
- PageTitleContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PageTitleContainerComponent, selector: "abp-page-title-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageTitleContainerComponent, decorators: [{
101
- type: Component,
102
- args: [{
103
- selector: 'abp-page-title-container',
104
- template: ` <ng-content></ng-content> `,
105
- encapsulation: ViewEncapsulation.None,
106
- }]
107
- }] });
108
- class PageBreadcrumbContainerComponent {
109
- }
110
- PageBreadcrumbContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageBreadcrumbContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
111
- PageBreadcrumbContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PageBreadcrumbContainerComponent, selector: "abp-page-breadcrumb-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageBreadcrumbContainerComponent, decorators: [{
113
- type: Component,
114
- args: [{
115
- selector: 'abp-page-breadcrumb-container',
116
- template: ` <ng-content></ng-content> `,
117
- encapsulation: ViewEncapsulation.None,
118
- }]
119
- }] });
120
- class PageToolbarContainerComponent {
121
- }
122
- PageToolbarContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageToolbarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- PageToolbarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PageToolbarContainerComponent, selector: "abp-page-toolbar-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageToolbarContainerComponent, decorators: [{
125
- type: Component,
126
- args: [{
127
- selector: 'abp-page-toolbar-container',
128
- template: ` <ng-content></ng-content> `,
129
- encapsulation: ViewEncapsulation.None,
130
- }]
131
- }] });
132
-
133
- class PageComponent {
134
- constructor() {
135
- this.toolbarVisible = false;
136
- this.breadcrumb = true;
137
- this.pageParts = {
138
- title: PageParts.title,
139
- breadcrumb: PageParts.breadcrumb,
140
- toolbar: PageParts.toolbar,
141
- };
142
- }
143
- set toolbar(val) {
144
- this._toolbarData = val;
145
- this.toolbarVisible = true;
146
- }
147
- get toolbarData() {
148
- return this._toolbarData;
149
- }
150
- get shouldRenderRow() {
151
- return !!(this.title ||
152
- this.toolbarVisible ||
153
- this.breadcrumb ||
154
- this.customTitle ||
155
- this.customBreadcrumb ||
156
- this.customToolbar);
157
- }
158
- }
159
- PageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
- PageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PageComponent, selector: "abp-page", inputs: { title: "title", toolbar: "toolbar", breadcrumb: "breadcrumb" }, queries: [{ propertyName: "customTitle", first: true, predicate: PageTitleContainerComponent, descendants: true }, { propertyName: "customBreadcrumb", first: true, predicate: PageBreadcrumbContainerComponent, descendants: true }, { propertyName: "customToolbar", first: true, predicate: PageToolbarContainerComponent, descendants: true }], ngImport: i0, template: "<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\r\n <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<ng-template #defaultTitleTemplate>\r\n <ng-container *ngIf=\"title\">\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title }}\r\n </h1>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultBreadcrumbTemplate>\r\n <ng-container *ngIf=\"breadcrumb\">\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultPageToolbarTemplate>\r\n <ng-container *ngIf=\"toolbarVisible\">\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData\">\r\n <abp-page-toolbar [record]=\"toolbarData\"></abp-page-toolbar>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "abp-breadcrumb" }, { kind: "directive", type: PagePartDirective, selector: "[abpPagePart]", inputs: ["abpPagePartContext", "abpPagePart"] }], encapsulation: i0.ViewEncapsulation.None });
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageComponent, decorators: [{
162
- type: Component,
163
- args: [{ selector: 'abp-page', encapsulation: ViewEncapsulation.None, template: "<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\r\n <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<ng-template #defaultTitleTemplate>\r\n <ng-container *ngIf=\"title\">\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title }}\r\n </h1>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultBreadcrumbTemplate>\r\n <ng-container *ngIf=\"breadcrumb\">\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultPageToolbarTemplate>\r\n <ng-container *ngIf=\"toolbarVisible\">\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData\">\r\n <abp-page-toolbar [record]=\"toolbarData\"></abp-page-toolbar>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n" }]
164
- }], propDecorators: { title: [{
165
- type: Input
166
- }], toolbar: [{
167
- type: Input
168
- }], breadcrumb: [{
169
- type: Input
170
- }], customTitle: [{
171
- type: ContentChild,
172
- args: [PageTitleContainerComponent]
173
- }], customBreadcrumb: [{
174
- type: ContentChild,
175
- args: [PageBreadcrumbContainerComponent]
176
- }], customToolbar: [{
177
- type: ContentChild,
178
- args: [PageToolbarContainerComponent]
179
- }] } });
180
-
181
- const exportedDeclarations = [
182
- PageComponent,
183
- PageTitleContainerComponent,
184
- PageBreadcrumbContainerComponent,
185
- PageToolbarContainerComponent,
186
- PagePartDirective,
187
- ];
188
- class PageModule {
189
- }
190
- PageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
191
- PageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: PageModule, declarations: [PageComponent,
192
- PageTitleContainerComponent,
193
- PageBreadcrumbContainerComponent,
194
- PageToolbarContainerComponent,
195
- PagePartDirective], imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule], exports: [PageComponent,
196
- PageTitleContainerComponent,
197
- PageBreadcrumbContainerComponent,
198
- PageToolbarContainerComponent,
199
- PagePartDirective, UiExtensionsModule] });
200
- PageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageModule, imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule, UiExtensionsModule] });
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PageModule, decorators: [{
202
- type: NgModule,
203
- args: [{
204
- declarations: [...exportedDeclarations],
205
- imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule],
206
- exports: [...exportedDeclarations, UiExtensionsModule],
207
- }]
208
- }] });
209
-
210
- /**
211
- * Generated bundle index. Do not edit.
212
- */
213
-
214
- export { PAGE_RENDER_STRATEGY, PageBreadcrumbContainerComponent, PageComponent, PageModule, PagePartDirective, PageParts, PageTitleContainerComponent, PageToolbarContainerComponent };
215
- //# sourceMappingURL=abp-ng.components-page.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abp-ng.components-page.mjs","sources":["../../../../packages/components/page/src/page-part.directive.ts","../../../../packages/components/page/src/page-parts.component.ts","../../../../packages/components/page/src/page.component.ts","../../../../packages/components/page/src/page.component.html","../../../../packages/components/page/src/page.module.ts","../../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import {\r\n Directive,\r\n TemplateRef,\r\n ViewContainerRef,\r\n Input,\r\n InjectionToken,\r\n Optional,\r\n Inject,\r\n OnInit,\r\n OnDestroy,\r\n Injector,\r\n OnChanges,\r\n SimpleChanges,\r\n SimpleChange,\r\n} from '@angular/core';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\n\r\nexport interface PageRenderStrategy {\r\n shouldRender(type?: string): boolean | Observable<boolean>;\r\n onInit?(type?: string, injector?: Injector, context?: any): void;\r\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\r\n onContextUpdate?(change?: SimpleChange): void;\r\n}\r\n\r\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\r\n\r\n@Directive({ selector: '[abpPagePart]' })\r\nexport class PagePartDirective implements OnInit, OnDestroy, OnChanges {\r\n hasRendered = false;\r\n type!: string;\r\n subscription!: Subscription;\r\n\r\n @Input('abpPagePartContext') context: any;\r\n @Input() set abpPagePart(type: string) {\r\n this.type = type;\r\n this.createRenderStream(type);\r\n }\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n };\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n @Optional() @Inject(PAGE_RENDER_STRATEGY) private renderLogic: PageRenderStrategy,\r\n private injector: Injector,\r\n ) {}\r\n\r\n ngOnChanges({ context }: SimpleChanges): void {\r\n if (this.renderLogic?.onContextUpdate) {\r\n this.renderLogic.onContextUpdate(context);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.renderLogic?.onInit) {\r\n this.renderLogic.onInit(this.type, this.injector, this.context);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearSubscription();\r\n\r\n if (this.renderLogic?.onDestroy) {\r\n this.renderLogic.onDestroy(this.type, this.injector, this.context);\r\n }\r\n }\r\n\r\n shouldRender(type: string) {\r\n if (this.renderLogic) {\r\n const willRender = this.renderLogic.shouldRender(type);\r\n return willRender instanceof Observable ? willRender : of(willRender);\r\n }\r\n return of(true);\r\n }\r\n\r\n protected createRenderStream(type: string) {\r\n this.clearSubscription();\r\n\r\n this.subscription = this.shouldRender(type).subscribe(this.render);\r\n }\r\n\r\n protected clearSubscription() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\nexport enum PageParts {\r\n title = 'PageTitleContainerComponent',\r\n breadcrumb = 'PageBreadcrumbContainerComponent',\r\n toolbar = 'PageToolbarContainerComponent',\r\n}\r\n\r\n@Component({\r\n selector: 'abp-page-title-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageTitleContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-breadcrumb-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageBreadcrumbContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-toolbar-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageToolbarContainerComponent {}\r\n","import { Component, Input, ViewEncapsulation, ContentChild } from '@angular/core';\r\nimport {\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PageParts,\r\n} from './page-parts.component';\r\n\r\n@Component({\r\n selector: 'abp-page',\r\n templateUrl: './page.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageComponent {\r\n @Input() title?: string;\r\n\r\n toolbarVisible = false;\r\n _toolbarData: any;\r\n @Input() set toolbar(val: any) {\r\n this._toolbarData = val;\r\n this.toolbarVisible = true;\r\n }\r\n\r\n get toolbarData() {\r\n return this._toolbarData;\r\n }\r\n\r\n @Input() breadcrumb = true;\r\n\r\n pageParts = {\r\n title: PageParts.title,\r\n breadcrumb: PageParts.breadcrumb,\r\n toolbar: PageParts.toolbar,\r\n };\r\n\r\n @ContentChild(PageTitleContainerComponent) customTitle?: PageTitleContainerComponent;\r\n @ContentChild(PageBreadcrumbContainerComponent)\r\n customBreadcrumb?: PageBreadcrumbContainerComponent;\r\n @ContentChild(PageToolbarContainerComponent) customToolbar?: PageToolbarContainerComponent;\r\n\r\n get shouldRenderRow() {\r\n return !!(\r\n this.title ||\r\n this.toolbarVisible ||\r\n this.breadcrumb ||\r\n this.customTitle ||\r\n this.customBreadcrumb ||\r\n this.customToolbar\r\n );\r\n }\r\n}\r\n","<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\r\n <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<ng-template #defaultTitleTemplate>\r\n <ng-container *ngIf=\"title\">\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title }}\r\n </h1>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultBreadcrumbTemplate>\r\n <ng-container *ngIf=\"breadcrumb\">\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultPageToolbarTemplate>\r\n <ng-container *ngIf=\"toolbarVisible\">\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData\">\r\n <abp-page-toolbar [record]=\"toolbarData\"></abp-page-toolbar>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n","import { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { PagePartDirective } from './page-part.directive';\r\nimport {\r\n PageBreadcrumbContainerComponent,\r\n PageTitleContainerComponent,\r\n PageToolbarContainerComponent,\r\n} from './page-parts.component';\r\nimport { PageComponent } from './page.component';\r\n\r\nconst exportedDeclarations = [\r\n PageComponent,\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PagePartDirective,\r\n];\r\n\r\n@NgModule({\r\n declarations: [...exportedDeclarations],\r\n imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule],\r\n exports: [...exportedDeclarations, UiExtensionsModule],\r\n})\r\nexport class PageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4.PagePartDirective"],"mappings":"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"}
@@ -1,300 +0,0 @@
1
- import * as i1 from '@abp/ng.core';
2
- import { LOADING_STRATEGY, SubscriptionService, CoreModule } from '@abp/ng.core';
3
- import * as i0 from '@angular/core';
4
- import { Directive, InjectionToken, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ContentChild, Output, Input, NgModule } from '@angular/core';
5
- import * as i4 from '@ng-bootstrap/ng-bootstrap';
6
- import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
7
- import * as i5 from 'ng-zorro-antd/core/no-animation';
8
- import { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';
9
- import * as i3 from 'ng-zorro-antd/tree';
10
- import { NzTreeModule } from 'ng-zorro-antd/tree';
11
- import { of } from 'rxjs';
12
- import * as i2 from '@angular/common';
13
-
14
- class TreeNodeTemplateDirective {
15
- constructor(template) {
16
- this.template = template;
17
- }
18
- }
19
- TreeNodeTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeNodeTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
20
- TreeNodeTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TreeNodeTemplateDirective, selector: "[abpTreeNodeTemplate],[abp-tree-node-template]", ngImport: i0 });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeNodeTemplateDirective, decorators: [{
22
- type: Directive,
23
- args: [{
24
- selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',
25
- }]
26
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
27
-
28
- class ExpandedIconTemplateDirective {
29
- constructor(template) {
30
- this.template = template;
31
- }
32
- }
33
- ExpandedIconTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpandedIconTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
34
- ExpandedIconTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ExpandedIconTemplateDirective, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]", ngImport: i0 });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpandedIconTemplateDirective, decorators: [{
36
- type: Directive,
37
- args: [{
38
- selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',
39
- }]
40
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
41
-
42
- const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken('DISABLE_TREE_STYLE_LOADING_TOKEN');
43
-
44
- class TreeComponent {
45
- constructor(lazyLoadService, subscriptionService, disableTreeStyleLoading, cdr) {
46
- this.lazyLoadService = lazyLoadService;
47
- this.subscriptionService = subscriptionService;
48
- this.disableTreeStyleLoading = disableTreeStyleLoading;
49
- this.cdr = cdr;
50
- this.dropdowns = {};
51
- this.checkedKeysChange = new EventEmitter();
52
- this.expandedKeysChange = new EventEmitter();
53
- this.selectedNodeChange = new EventEmitter();
54
- this.dropOver = new EventEmitter();
55
- this.nzExpandChange = new EventEmitter();
56
- this.noAnimation = true;
57
- this.checkedKeys = [];
58
- this.nodes = [];
59
- this.expandedKeys = [];
60
- this.isNodeSelected = node => { var _a; return ((_a = this.selectedNode) === null || _a === void 0 ? void 0 : _a.id) === node.key; };
61
- this.beforeDrop = (event) => {
62
- this.dropPosition = event.pos;
63
- return of(false);
64
- };
65
- }
66
- ngOnInit() {
67
- this.loadStyle();
68
- }
69
- loadStyle() {
70
- if (this.disableTreeStyleLoading) {
71
- return;
72
- }
73
- const loaded$ = this.lazyLoadService.load(LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'));
74
- this.subscriptionService.addOne(loaded$);
75
- }
76
- findNode(target, nodes) {
77
- for (const node of nodes) {
78
- if (node.key === target.id) {
79
- return node;
80
- }
81
- if (node.children) {
82
- let res = this.findNode(target, node.children);
83
- if (res) {
84
- return res;
85
- }
86
- }
87
- }
88
- return null;
89
- }
90
- onSelectedNodeChange(node) {
91
- this.selectedNode = node.origin.entity;
92
- if (this.changeCheckboxWithNode) {
93
- let newVal;
94
- if (node.isChecked) {
95
- newVal = this.checkedKeys.filter(x => x !== node.key);
96
- }
97
- else {
98
- newVal = [...this.checkedKeys, node.key];
99
- }
100
- this.selectedNodeChange.emit(node);
101
- this.checkedKeys = newVal;
102
- this.checkedKeysChange.emit(newVal);
103
- }
104
- else {
105
- this.selectedNodeChange.emit(node.origin.entity);
106
- }
107
- }
108
- onCheckboxChange(event) {
109
- this.checkedKeys = [...event.keys];
110
- this.checkedKeysChange.emit(event.keys);
111
- }
112
- onExpandedKeysChange(event) {
113
- this.expandedKeys = [...event.keys];
114
- this.expandedKeysChange.emit(event.keys);
115
- this.nzExpandChange.emit(event);
116
- }
117
- onDrop(event) {
118
- event.event.stopPropagation();
119
- event.event.preventDefault();
120
- event.pos = this.dropPosition;
121
- this.dropOver.emit(event);
122
- }
123
- initDropdown(key, dropdown) {
124
- this.dropdowns[key] = dropdown;
125
- }
126
- setSelectedNode(node) {
127
- let newSelectedNode = this.findNode(node, this.nodes);
128
- this.selectedNode = Object.assign({}, newSelectedNode);
129
- this.cdr.markForCheck();
130
- }
131
- }
132
- TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeComponent, deps: [{ token: i1.LazyLoadService }, { token: i1.SubscriptionService }, { token: DISABLE_TREE_STYLE_LOADING_TOKEN, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
133
- TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TreeComponent, selector: "abp-tree", inputs: { noAnimation: "noAnimation", draggable: "draggable", checkable: "checkable", checkStrictly: "checkStrictly", checkedKeys: "checkedKeys", nodes: "nodes", expandedKeys: "expandedKeys", selectedNode: "selectedNode", changeCheckboxWithNode: "changeCheckboxWithNode", isNodeSelected: "isNodeSelected", beforeDrop: "beforeDrop" }, outputs: { checkedKeysChange: "checkedKeysChange", expandedKeysChange: "expandedKeysChange", selectedNodeChange: "selectedNodeChange", dropOver: "dropOver", nzExpandChange: "nzExpandChange" }, providers: [SubscriptionService], queries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "customNodeTemplate", first: true, predicate: TreeNodeTemplateDirective, descendants: true }, { propertyName: "expandedIconTemplate", first: true, predicate: ExpandedIconTemplateDirective, descendants: true }], ngImport: i0, template: "<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable\"\r\n [nzCheckStrictly]=\"checkStrictly\"\r\n [nzCheckable]=\"checkable\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckBoxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation\"\r\n (nzContextMenu)=\"dropdowns[$event.node?.key]?.toggle()\"\r\n></nz-tree>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\"></ng-container>\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-block\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n *ngIf=\"menu\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu; context: { $implicit: node }\"></ng-template>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"></ng-container\r\n ></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: ["abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "component", type: i3.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckBoxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i5.NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeComponent, decorators: [{
135
- type: Component,
136
- args: [{ selector: 'abp-tree', encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable\"\r\n [nzCheckStrictly]=\"checkStrictly\"\r\n [nzCheckable]=\"checkable\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckBoxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation\"\r\n (nzContextMenu)=\"dropdowns[$event.node?.key]?.toggle()\"\r\n></nz-tree>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\"></ng-container>\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-block\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n *ngIf=\"menu\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu; context: { $implicit: node }\"></ng-template>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"></ng-container\r\n ></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: ["abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\n"] }]
137
- }], ctorParameters: function () {
138
- return [{ type: i1.LazyLoadService }, { type: i1.SubscriptionService }, { type: undefined, decorators: [{
139
- type: Optional
140
- }, {
141
- type: Inject,
142
- args: [DISABLE_TREE_STYLE_LOADING_TOKEN]
143
- }] }, { type: i0.ChangeDetectorRef }];
144
- }, propDecorators: { menu: [{
145
- type: ContentChild,
146
- args: ['menu']
147
- }], customNodeTemplate: [{
148
- type: ContentChild,
149
- args: [TreeNodeTemplateDirective]
150
- }], expandedIconTemplate: [{
151
- type: ContentChild,
152
- args: [ExpandedIconTemplateDirective]
153
- }], checkedKeysChange: [{
154
- type: Output
155
- }], expandedKeysChange: [{
156
- type: Output
157
- }], selectedNodeChange: [{
158
- type: Output
159
- }], dropOver: [{
160
- type: Output
161
- }], nzExpandChange: [{
162
- type: Output
163
- }], noAnimation: [{
164
- type: Input
165
- }], draggable: [{
166
- type: Input
167
- }], checkable: [{
168
- type: Input
169
- }], checkStrictly: [{
170
- type: Input
171
- }], checkedKeys: [{
172
- type: Input
173
- }], nodes: [{
174
- type: Input
175
- }], expandedKeys: [{
176
- type: Input
177
- }], selectedNode: [{
178
- type: Input
179
- }], changeCheckboxWithNode: [{
180
- type: Input
181
- }], isNodeSelected: [{
182
- type: Input
183
- }], beforeDrop: [{
184
- type: Input
185
- }] } });
186
-
187
- const templates = [TreeNodeTemplateDirective, ExpandedIconTemplateDirective];
188
- const exported = [...templates, TreeComponent];
189
- class TreeModule {
190
- }
191
- TreeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
192
- TreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: TreeModule, declarations: [TreeNodeTemplateDirective, ExpandedIconTemplateDirective, TreeComponent], imports: [CoreModule, NzTreeModule, NgbDropdownModule, NzNoAnimationModule], exports: [TreeNodeTemplateDirective, ExpandedIconTemplateDirective, TreeComponent] });
193
- TreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeModule, imports: [CoreModule, NzTreeModule, NgbDropdownModule, NzNoAnimationModule] });
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TreeModule, decorators: [{
195
- type: NgModule,
196
- args: [{
197
- imports: [CoreModule, NzTreeModule, NgbDropdownModule, NzNoAnimationModule],
198
- exports: [...exported],
199
- declarations: [...exported],
200
- }]
201
- }] });
202
-
203
- class BaseNode {
204
- constructor(id, parentId) {
205
- this.id = id;
206
- this.parentId = parentId;
207
- }
208
- }
209
- class TreeNode extends BaseNode {
210
- constructor(entity, nameResolver = ent => ent.displayName || ent.name) {
211
- super(entity.id, entity.parentId);
212
- this.entity = entity;
213
- this.nameResolver = nameResolver;
214
- this.icon = null;
215
- this.children = [];
216
- this.isLeaf = true;
217
- this.checked = false;
218
- this.selected = false;
219
- this.expanded = false;
220
- this.selectable = true;
221
- this.disabled = false;
222
- this.disableCheckbox = false;
223
- this.key = entity.id;
224
- this.title = nameResolver(entity);
225
- }
226
- }
227
- class TreeAdapter {
228
- constructor(list = []) {
229
- this.list = list;
230
- this.tree = createTreeFromList(this.list);
231
- }
232
- getList() {
233
- return this.list;
234
- }
235
- getTree() {
236
- return this.tree;
237
- }
238
- handleDrop({ key, parentNode }) {
239
- const index = this.list.findIndex(({ id }) => id === key);
240
- this.list[index].parentId = parentNode ? parentNode.key : null;
241
- this.tree = createTreeFromList(this.list);
242
- }
243
- handleRemove({ key }) {
244
- this.updateTreeFromList(this.list.filter(item => item.id !== key));
245
- }
246
- handleUpdate({ key, children }) {
247
- /**
248
- * When we need to update a node with new children, first we need to remove any descendant nodes.
249
- * If we remove immediate children and create a new tree, any other descendant nodes will be removed
250
- * and we won't need to recursively remove sub children.
251
- * Then, you simply add back the new children and create a new tree.
252
- */
253
- const listWithDescendantNodesRemoved = this.updateTreeFromList(this.list.filter(item => item.parentId !== key));
254
- this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));
255
- }
256
- updateTreeFromList(list) {
257
- this.tree = createTreeFromList(list);
258
- this.list = createListFromTree(this.tree);
259
- return this.list;
260
- }
261
- }
262
- // UTILITY FUNCTIONS
263
- function createTreeFromList(list) {
264
- const map = createMapFromList(list);
265
- const tree = [];
266
- list.forEach(row => {
267
- const parentId = row.parentId;
268
- const node = map.get(row.id);
269
- if (parentId) {
270
- const parent = map.get(parentId);
271
- if (!parent)
272
- return;
273
- parent.children.push(node);
274
- parent.isLeaf = false;
275
- }
276
- else {
277
- tree.push(node);
278
- }
279
- });
280
- return tree;
281
- }
282
- function createListFromTree(tree, list = []) {
283
- tree.forEach(node => {
284
- list.push(Object.assign(Object.assign({}, node.entity), { parentId: node.parentId }));
285
- if (node.children)
286
- createListFromTree(node.children, list);
287
- });
288
- return list;
289
- }
290
- function createMapFromList(list, map = new Map()) {
291
- list.forEach(row => map.set(row.id, new TreeNode(row)));
292
- return map;
293
- }
294
-
295
- /**
296
- * Generated bundle index. Do not edit.
297
- */
298
-
299
- export { BaseNode, DISABLE_TREE_STYLE_LOADING_TOKEN, ExpandedIconTemplateDirective, TreeAdapter, TreeComponent, TreeModule, TreeNode, TreeNodeTemplateDirective };
300
- //# sourceMappingURL=abp-ng.components-tree.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abp-ng.components-tree.mjs","sources":["../../../../packages/components/tree/src/lib/templates/tree-node-template.directive.ts","../../../../packages/components/tree/src/lib/templates/expanded-icon-template.directive.ts","../../../../packages/components/tree/src/lib/disable-tree-style-loading.token.ts","../../../../packages/components/tree/src/lib/components/tree.component.ts","../../../../packages/components/tree/src/lib/components/tree.component.html","../../../../packages/components/tree/src/lib/tree.module.ts","../../../../packages/components/tree/src/lib/utils/nz-tree-adapter.ts","../../../../packages/components/tree/src/abp-ng.components-tree.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',\r\n})\r\nexport class TreeNodeTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',\r\n})\r\nexport class ExpandedIconTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken<boolean>(\r\n 'DISABLE_TREE_STYLE_LOADING_TOKEN',\r\n);\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { NzFormatBeforeDropEvent, NzFormatEmitEvent, NzTreeNode } from 'ng-zorro-antd/tree';\r\nimport { of } from 'rxjs';\r\nimport { TreeNodeTemplateDirective } from '../templates/tree-node-template.directive';\r\nimport { ExpandedIconTemplateDirective } from '../templates/expanded-icon-template.directive';\r\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\r\nimport { LazyLoadService, LOADING_STRATEGY, SubscriptionService } from '@abp/ng.core';\r\nimport { DISABLE_TREE_STYLE_LOADING_TOKEN } from '../disable-tree-style-loading.token';\r\n\r\nexport type DropEvent = NzFormatEmitEvent & { pos: number };\r\n\r\n@Component({\r\n selector: 'abp-tree',\r\n templateUrl: 'tree.component.html',\r\n styleUrls: ['tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [SubscriptionService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TreeComponent implements OnInit {\r\n dropPosition: number;\r\n\r\n dropdowns = {} as { [key: string]: NgbDropdown };\r\n\r\n constructor(\r\n private lazyLoadService: LazyLoadService,\r\n private subscriptionService: SubscriptionService,\r\n @Optional()\r\n @Inject(DISABLE_TREE_STYLE_LOADING_TOKEN)\r\n private disableTreeStyleLoading: boolean | undefined,\r\n private cdr: ChangeDetectorRef,\r\n ) {}\r\n\r\n @ContentChild('menu') menu: TemplateRef<any>;\r\n @ContentChild(TreeNodeTemplateDirective) customNodeTemplate: TreeNodeTemplateDirective;\r\n @ContentChild(ExpandedIconTemplateDirective) expandedIconTemplate: ExpandedIconTemplateDirective;\r\n @Output() readonly checkedKeysChange = new EventEmitter();\r\n @Output() readonly expandedKeysChange = new EventEmitter<string[]>();\r\n @Output() readonly selectedNodeChange = new EventEmitter();\r\n @Output() readonly dropOver = new EventEmitter<DropEvent>();\r\n @Output() readonly nzExpandChange = new EventEmitter<NzFormatEmitEvent>();\r\n @Input() noAnimation = true;\r\n @Input() draggable: boolean;\r\n @Input() checkable: boolean;\r\n @Input() checkStrictly: boolean;\r\n @Input() checkedKeys = [];\r\n @Input() nodes = [];\r\n @Input() expandedKeys: string[] = [];\r\n @Input() selectedNode: any;\r\n @Input() changeCheckboxWithNode: boolean;\r\n @Input() isNodeSelected = node => this.selectedNode?.id === node.key;\r\n @Input() beforeDrop = (event: NzFormatBeforeDropEvent) => {\r\n this.dropPosition = event.pos;\r\n return of(false);\r\n };\r\n\r\n ngOnInit() {\r\n this.loadStyle();\r\n }\r\n\r\n private loadStyle() {\r\n if (this.disableTreeStyleLoading) {\r\n return;\r\n }\r\n const loaded$ = this.lazyLoadService.load(\r\n LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'),\r\n );\r\n this.subscriptionService.addOne(loaded$);\r\n }\r\n\r\n private findNode(target: any, nodes: any[]) {\r\n for (const node of nodes) {\r\n if (node.key === target.id) {\r\n return node;\r\n }\r\n if (node.children) {\r\n let res = this.findNode(target, node.children);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onSelectedNodeChange(node: NzTreeNode) {\r\n this.selectedNode = node.origin.entity;\r\n if (this.changeCheckboxWithNode) {\r\n let newVal;\r\n if (node.isChecked) {\r\n newVal = this.checkedKeys.filter(x => x !== node.key);\r\n } else {\r\n newVal = [...this.checkedKeys, node.key];\r\n }\r\n this.selectedNodeChange.emit(node);\r\n this.checkedKeys = newVal;\r\n this.checkedKeysChange.emit(newVal);\r\n } else {\r\n this.selectedNodeChange.emit(node.origin.entity);\r\n }\r\n }\r\n\r\n onCheckboxChange(event) {\r\n this.checkedKeys = [...event.keys];\r\n this.checkedKeysChange.emit(event.keys);\r\n }\r\n\r\n onExpandedKeysChange(event) {\r\n this.expandedKeys = [...event.keys];\r\n this.expandedKeysChange.emit(event.keys);\r\n this.nzExpandChange.emit(event);\r\n }\r\n\r\n onDrop(event: DropEvent) {\r\n event.event.stopPropagation();\r\n event.event.preventDefault();\r\n event.pos = this.dropPosition;\r\n\r\n this.dropOver.emit(event);\r\n }\r\n\r\n initDropdown(key: string, dropdown: NgbDropdown) {\r\n this.dropdowns[key] = dropdown;\r\n }\r\n\r\n setSelectedNode(node: any) {\r\n let newSelectedNode = this.findNode(node, this.nodes);\r\n this.selectedNode = { ...newSelectedNode };\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable\"\r\n [nzCheckStrictly]=\"checkStrictly\"\r\n [nzCheckable]=\"checkable\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckBoxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation\"\r\n (nzContextMenu)=\"dropdowns[$event.node?.key]?.toggle()\"\r\n></nz-tree>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\"></ng-container>\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-block\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n *ngIf=\"menu\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu; context: { $implicit: node }\"></ng-template>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"></ng-container\r\n ></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n","import { CoreModule } from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\r\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\r\nimport { TreeComponent } from './components/tree.component';\r\nimport { ExpandedIconTemplateDirective } from './templates/expanded-icon-template.directive';\r\nimport { TreeNodeTemplateDirective } from './templates/tree-node-template.directive';\r\n\r\nconst templates = [TreeNodeTemplateDirective, ExpandedIconTemplateDirective];\r\n\r\nconst exported = [...templates, TreeComponent];\r\n\r\n@NgModule({\r\n imports: [CoreModule, NzTreeModule, NgbDropdownModule, NzNoAnimationModule],\r\n exports: [...exported],\r\n declarations: [...exported],\r\n})\r\nexport class TreeModule {}\r\n","export abstract class BaseNode {\r\n name?: string;\r\n displayName?: string;\r\n\r\n constructor(public id: string, public parentId: string | null) {}\r\n}\r\n\r\nexport class TreeNode<T extends BaseNode> extends BaseNode {\r\n title: string | undefined;\r\n key: string;\r\n icon: string | null = null;\r\n children: TreeNode<T>[] = [];\r\n isLeaf = true;\r\n checked = false;\r\n selected = false;\r\n expanded = false;\r\n selectable = true;\r\n disabled = false;\r\n disableCheckbox = false;\r\n parentNode?: TreeNode<T> | null;\r\n\r\n constructor(public entity: T, private nameResolver = ent => ent.displayName || ent.name) {\r\n super(entity.id, entity.parentId);\r\n this.key = entity.id;\r\n this.title = nameResolver(entity);\r\n }\r\n}\r\n\r\nexport class TreeAdapter<T extends BaseNode = BaseNode> {\r\n private tree: TreeNode<T>[];\r\n\r\n constructor(private list: T[] = []) {\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n getList() {\r\n return this.list;\r\n }\r\n\r\n getTree() {\r\n return this.tree;\r\n }\r\n\r\n handleDrop({ key, parentNode }: TreeNode<T>) {\r\n const index = this.list.findIndex(({ id }) => id === key);\r\n this.list[index].parentId = parentNode ? parentNode.key : null;\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n handleRemove({ key }: TreeNode<T>) {\r\n this.updateTreeFromList(this.list.filter(item => item.id !== key));\r\n }\r\n\r\n handleUpdate({ key, children }: { key: string; children: T[] }) {\r\n /**\r\n * When we need to update a node with new children, first we need to remove any descendant nodes.\r\n * If we remove immediate children and create a new tree, any other descendant nodes will be removed\r\n * and we won't need to recursively remove sub children.\r\n * Then, you simply add back the new children and create a new tree.\r\n */\r\n const listWithDescendantNodesRemoved = this.updateTreeFromList(\r\n this.list.filter(item => item.parentId !== key),\r\n );\r\n this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));\r\n }\r\n\r\n updateTreeFromList(list: T[]) {\r\n this.tree = createTreeFromList(list);\r\n this.list = createListFromTree(this.tree);\r\n return this.list;\r\n }\r\n}\r\n\r\n// UTILITY FUNCTIONS\r\n\r\nfunction createTreeFromList<T extends BaseNode>(list: T[]): TreeNode<T>[] {\r\n const map = createMapFromList(list);\r\n const tree: TreeNode<T>[] = [];\r\n\r\n list.forEach(row => {\r\n const parentId = row.parentId;\r\n const node = map.get(row.id);\r\n if (parentId) {\r\n const parent = map.get(parentId);\r\n if (!parent) return;\r\n parent.children.push(node);\r\n parent.isLeaf = false;\r\n } else {\r\n tree.push(node);\r\n }\r\n });\r\n return tree;\r\n}\r\n\r\nfunction createListFromTree<T extends BaseNode>(tree: TreeNode<T>[], list: T[] = []): T[] {\r\n tree.forEach(node => {\r\n list.push({ ...node.entity, parentId: node.parentId });\r\n if (node.children) createListFromTree(node.children, list);\r\n });\r\n\r\n return list;\r\n}\r\n\r\nfunction createMapFromList<T extends BaseNode>(\r\n list: T[],\r\n map = new Map<string, TreeNode<T>>(),\r\n): Map<string, TreeNode<T>> {\r\n list.forEach(row => map.set(row.id, new TreeNode(row)));\r\n\r\n return map;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAKa,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAmB,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAI;;sHADtC,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,gDAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gDAAgD;iBAC3D,CAAA;;;MCCY,6BAA6B,CAAA;AACxC,IAAA,WAAA,CAAmB,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAI;;0HADtC,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAA7B,6BAA6B,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iEAAiE;iBAC5E,CAAA;;;MCFY,gCAAgC,GAAG,IAAI,cAAc,CAChE,kCAAkC;;MC6BvB,aAAa,CAAA;AAKxB,IAAA,WAAA,CACU,eAAgC,EAChC,mBAAwC,EAGxC,uBAA4C,EAC5C,GAAsB,EAAA;AALtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAChC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAGxC,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAqB;AAC5C,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AARhC,QAAA,IAAS,CAAA,SAAA,GAAG,EAAoC,CAAC;AAc9B,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAY,CAAC;AAClD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAa,CAAC;AACzC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAqB,CAAC;AACjE,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAInB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAY,CAAA,YAAA,GAAa,EAAE,CAAC;QAG5B,IAAA,CAAA,cAAc,GAAG,IAAI,IAAG,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,0CAAE,EAAE,MAAK,IAAI,CAAC,GAAG,CAAA,EAAA,CAAC;AAC5D,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,KAA8B,KAAI;AACvD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;AAC9B,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB,SAAC,CAAC;KAvBE;IAyBJ,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,SAAS,GAAA;QACf,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC,OAAO;AACR,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACvC,gBAAgB,CAAC,0BAA0B,CAAC,wBAAwB,CAAC,CACtE,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC1C;IAEO,QAAQ,CAAC,MAAW,EAAE,KAAY,EAAA;AACxC,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,oBAAoB,CAAC,IAAgB,EAAA;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,IAAI,MAAM,CAAC;YACX,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,aAAA;AAAM,iBAAA;gBACL,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClD,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzC;AAED,IAAA,oBAAoB,CAAC,KAAK,EAAA;QACxB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,CAAC,KAAgB,EAAA;AACrB,QAAA,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,QAAA,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7B,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;AAE9B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,YAAY,CAAC,GAAW,EAAE,QAAqB,EAAA;AAC7C,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;KAChC;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,YAAY,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,eAAe,CAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;AA9GU,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,oFASd,gCAAgC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8FAT/B,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAHb,CAAC,mBAAmB,CAAC,yJAkBlB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChD7C,0tGA+FA,EAAA,MAAA,EAAA,CAAA,8nBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD/Da,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;+BACE,UAAU,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,mBAAmB,CAAC,EAAA,eAAA,EACf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0tGAAA,EAAA,MAAA,EAAA,CAAA,8nBAAA,CAAA,EAAA,CAAA;;;8BAU5C,QAAQ;;8BACR,MAAM;+BAAC,gCAAgC,CAAA;;yBAKpB,IAAI,EAAA,CAAA;sBAAzB,YAAY;uBAAC,MAAM,CAAA;gBACqB,kBAAkB,EAAA,CAAA;sBAA1D,YAAY;uBAAC,yBAAyB,CAAA;gBACM,oBAAoB,EAAA,CAAA;sBAAhE,YAAY;uBAAC,6BAA6B,CAAA;gBACxB,iBAAiB,EAAA,CAAA;sBAAnC,MAAM;gBACY,kBAAkB,EAAA,CAAA;sBAApC,MAAM;gBACY,kBAAkB,EAAA,CAAA;sBAApC,MAAM;gBACY,QAAQ,EAAA,CAAA;sBAA1B,MAAM;gBACY,cAAc,EAAA,CAAA;sBAAhC,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AEvDR,MAAM,SAAS,GAAG,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC;AAE7E,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,aAAa,CAAC,CAAC;MAOlC,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBATJ,yBAAyB,EAAE,6BAA6B,EAE3C,aAAa,aAGjC,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CALzD,yBAAyB,EAAE,6BAA6B,EAE3C,aAAa,CAAA,EAAA,CAAA,CAAA;AAOhC,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAJX,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAI/D,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;AAC3E,oBAAA,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;AACtB,oBAAA,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC;iBAC5B,CAAA;;;MCjBqB,QAAQ,CAAA;IAI5B,WAAmB,CAAA,EAAU,EAAS,QAAuB,EAAA;AAA1C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;AAAS,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAe;KAAI;AAClE,CAAA;AAEK,MAAO,QAA6B,SAAQ,QAAQ,CAAA;AAcxD,IAAA,WAAA,CAAmB,MAAS,EAAU,YAAe,GAAA,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,EAAA;QACrF,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AADjB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAG;AAAU,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqC;AAXvF,QAAA,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;AAC3B,QAAA,IAAQ,CAAA,QAAA,GAAkB,EAAE,CAAC;AAC7B,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AACd,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAClB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAKtB,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;KACnC;AACF,CAAA;MAEY,WAAW,CAAA;IAGtB,WAAoB,CAAA,OAAY,EAAE,EAAA;AAAd,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAU;QAChC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IAED,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;AAED,IAAA,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,EAAe,EAAA;AACzC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,YAAY,CAAC,EAAE,GAAG,EAAe,EAAA;QAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;KACpE;AAED,IAAA,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAkC,EAAA;AAC5D;;;;;AAKG;QACH,MAAM,8BAA8B,GAAG,IAAI,CAAC,kBAAkB,CAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAChD,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC1E;AAED,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;AACF,CAAA;AAED;AAEA,SAAS,kBAAkB,CAAqB,IAAS,EAAA;AACvD,IAAA,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAkB,EAAE,CAAC;AAE/B,IAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;AACjB,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,IAAI,QAAQ,EAAE;YACZ,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,MAAM;gBAAE,OAAO;AACpB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAA,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,SAAA;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAqB,IAAmB,EAAE,OAAY,EAAE,EAAA;AACjF,IAAA,IAAI,CAAC,OAAO,CAAC,IAAI,IAAG;AAClB,QAAA,IAAI,CAAC,IAAI,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAM,CAAE,EAAA,EAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAG,CAAC;QACvD,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAS,EACT,GAAM,GAAA,IAAI,GAAG,EAAuB,EAAA;IAEpC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAExD,IAAA,OAAO,GAAG,CAAC;AACb;;AC9GA;;AAEG;;;;"}