@dangl/angular-ava 0.1.1-beta0093

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 (66) hide show
  1. package/README.md +1 -0
  2. package/esm2022/dangl-angular-ava.mjs +5 -0
  3. package/esm2022/lib/angular-ava.module.mjs +91 -0
  4. package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +412 -0
  5. package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +41 -0
  6. package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +110 -0
  7. package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +102 -0
  8. package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +53 -0
  9. package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +33 -0
  10. package/esm2022/lib/ava-tree/tree/constants/defaultFilters.mjs +23 -0
  11. package/esm2022/lib/ava-tree/tree/constants/defaultTextWords.mjs +11 -0
  12. package/esm2022/lib/ava-tree/tree/constants/defaults.mjs +4 -0
  13. package/esm2022/lib/ava-tree/tree/constants/index.mjs +5 -0
  14. package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +47 -0
  15. package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +199 -0
  16. package/esm2022/lib/ava-tree/tree/model/context-menu-data.model.mjs +2 -0
  17. package/esm2022/lib/ava-tree/tree/model/function-view-line.model.mjs +2 -0
  18. package/esm2022/lib/ava-tree/tree/model/index.mjs +4 -0
  19. package/esm2022/lib/ava-tree/tree/model/selecting.model.mjs +2 -0
  20. package/esm2022/lib/ava-tree/tree/model/tableColumnType.mjs +2 -0
  21. package/esm2022/lib/ava-tree/tree/model/tree-mode.model.mjs +7 -0
  22. package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +27 -0
  23. package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +23 -0
  24. package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +27 -0
  25. package/esm2022/lib/ava-tree/tree/pipes/group-child-elements.pipe.mjs +20 -0
  26. package/esm2022/lib/ava-tree/tree/services/expand-parent-group.service.mjs +32 -0
  27. package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +96 -0
  28. package/esm2022/lib/ava-tree/tree/services/keyboard-operation.service.mjs +116 -0
  29. package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +41 -0
  30. package/esm2022/lib/ava-tree/tree/services/tree-node-selection.service.mjs +133 -0
  31. package/esm2022/lib/version.mjs +10 -0
  32. package/esm2022/public-api.mjs +8 -0
  33. package/fesm2022/dangl-angular-ava.mjs +1574 -0
  34. package/fesm2022/dangl-angular-ava.mjs.map +1 -0
  35. package/index.d.ts +5 -0
  36. package/lib/angular-ava.module.d.ts +27 -0
  37. package/lib/ava-tree/tree/components/ava-tree/ava-tree.component.d.ts +165 -0
  38. package/lib/ava-tree/tree/components/list-structure/list-structure.component.d.ts +18 -0
  39. package/lib/ava-tree/tree/components/table-structure/table-structure.component.d.ts +34 -0
  40. package/lib/ava-tree/tree/components/tree-item/tree-item.component.d.ts +35 -0
  41. package/lib/ava-tree/tree/components/tree-node/tree-node.component.d.ts +23 -0
  42. package/lib/ava-tree/tree/components/tree-structure/tree-structure.component.d.ts +14 -0
  43. package/lib/ava-tree/tree/constants/defaultFilters.d.ts +2 -0
  44. package/lib/ava-tree/tree/constants/defaultTextWords.d.ts +11 -0
  45. package/lib/ava-tree/tree/constants/defaults.d.ts +3 -0
  46. package/lib/ava-tree/tree/constants/index.d.ts +4 -0
  47. package/lib/ava-tree/tree/directives/save-changing-view.directive.d.ts +13 -0
  48. package/lib/ava-tree/tree/model/ava-models.d.ts +1041 -0
  49. package/lib/ava-tree/tree/model/context-menu-data.model.d.ts +8 -0
  50. package/lib/ava-tree/tree/model/function-view-line.model.d.ts +12 -0
  51. package/lib/ava-tree/tree/model/index.d.ts +7 -0
  52. package/lib/ava-tree/tree/model/selecting.model.d.ts +14 -0
  53. package/lib/ava-tree/tree/model/tableColumnType.d.ts +6 -0
  54. package/lib/ava-tree/tree/model/tree-mode.model.d.ts +5 -0
  55. package/lib/ava-tree/tree/pipes/element-icon-name.pipe.d.ts +8 -0
  56. package/lib/ava-tree/tree/pipes/element-item-number.pipe.d.ts +8 -0
  57. package/lib/ava-tree/tree/pipes/element-text.pipe.d.ts +8 -0
  58. package/lib/ava-tree/tree/pipes/group-child-elements.pipe.d.ts +8 -0
  59. package/lib/ava-tree/tree/services/expand-parent-group.service.d.ts +7 -0
  60. package/lib/ava-tree/tree/services/flat-elements.service.d.ts +28 -0
  61. package/lib/ava-tree/tree/services/keyboard-operation.service.d.ts +35 -0
  62. package/lib/ava-tree/tree/services/select-element.service.d.ts +31 -0
  63. package/lib/ava-tree/tree/services/tree-node-selection.service.d.ts +23 -0
  64. package/lib/version.d.ts +8 -0
  65. package/package.json +31 -0
  66. package/public-api.d.ts +4 -0
@@ -0,0 +1,41 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/select-element.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../tree-item/tree-item.component";
7
+ export class ListStructureComponent {
8
+ constructor(selectElementService) {
9
+ this.selectElementService = selectElementService;
10
+ this.filteredElementList = [];
11
+ this.isSelectionMode = false;
12
+ this.selectedColor = null;
13
+ this.allowDblClick = true;
14
+ this.selectedElement = null;
15
+ this.$destroy = new Subject();
16
+ }
17
+ ngOnInit() {
18
+ this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
19
+ this.selectedElement = element;
20
+ });
21
+ }
22
+ ngOnDestroy() {
23
+ this.$destroy.next(true);
24
+ this.$destroy.complete();
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ListStructureComponent, deps: [{ token: i1.SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ListStructureComponent, selector: "ava-list-structure", inputs: { filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of filteredElementList\">\n <div\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <ava-tree-item\n [element]=\"element\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n</ng-container>\n", styles: [".select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode", "allowDblClick"] }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ListStructureComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'ava-list-structure', template: "<ng-container *ngFor=\"let element of filteredElementList\">\n <div\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <ava-tree-item\n [element]=\"element\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n</ng-container>\n", styles: [".select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"] }]
32
+ }], ctorParameters: () => [{ type: i1.SelectElementService }], propDecorators: { filteredElementList: [{
33
+ type: Input
34
+ }], isSelectionMode: [{
35
+ type: Input
36
+ }], selectedColor: [{
37
+ type: Input
38
+ }], allowDblClick: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdHJ1Y3R1cmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvbGlzdC1zdHJ1Y3R1cmUvbGlzdC1zdHJ1Y3R1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvbGlzdC1zdHJ1Y3R1cmUvbGlzdC1zdHJ1Y3R1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQVUxQyxNQUFNLE9BQU8sc0JBQXNCO0lBU2pDLFlBQW1CLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBUnBELHdCQUFtQixHQUFrQixFQUFFLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTlCLG9CQUFlLEdBQXVCLElBQUksQ0FBQztRQUNuQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUVzQixDQUFDO0lBRWpFLFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoRyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQXBCVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixzTkNabkMsbWNBWUE7OzJGREFhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7eUZBS3JCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJRWxlbWVudER0byB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IFNlbGVjdEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VsZWN0LWVsZW1lbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F2YS1saXN0LXN0cnVjdHVyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXN0cnVjdHVyZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3Qtc3RydWN0dXJlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdFN0cnVjdHVyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQElucHV0KCkgZmlsdGVyZWRFbGVtZW50TGlzdDogSUVsZW1lbnREdG9bXSA9IFtdO1xuICBASW5wdXQoKSBpc1NlbGVjdGlvbk1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VsZWN0ZWRDb2xvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGFsbG93RGJsQ2xpY2sgPSB0cnVlO1xuXG4gIHNlbGVjdGVkRWxlbWVudDogSUVsZW1lbnREdG8gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSAkZGVzdHJveSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlbGVjdEVsZW1lbnRTZXJ2aWNlOiBTZWxlY3RFbGVtZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNlbGVjdENsaWNrRWxlbWVudC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKChlbGVtZW50KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiRkZXN0cm95Lm5leHQodHJ1ZSk7XG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGZpbHRlcmVkRWxlbWVudExpc3RcIj5cbiAgPGRpdlxuICAgIFtjbGFzcy5zZWxlY3RdPVwiIWlzU2VsZWN0aW9uTW9kZSAmJiBlbGVtZW50LmlkID09PSBzZWxlY3RlZEVsZW1lbnQ/LmlkXCJcbiAgICBbc3R5bGUuYmFja2dyb3VuZF09XCIhaXNTZWxlY3Rpb25Nb2RlICYmIGVsZW1lbnQuaWQgPT09IHNlbGVjdGVkRWxlbWVudD8uaWQgPyBzZWxlY3RlZENvbG9yIHx8ICcnIDogJydcIlxuICA+XG4gICAgPGF2YS10cmVlLWl0ZW1cbiAgICAgIFtlbGVtZW50XT1cImVsZW1lbnRcIlxuICAgICAgW2lzU2VsZWN0aW9uTW9kZV09XCJpc1NlbGVjdGlvbk1vZGVcIlxuICAgICAgW2FsbG93RGJsQ2xpY2tdPVwiYWxsb3dEYmxDbGlja1wiXG4gICAgPjwvYXZhLXRyZWUtaXRlbT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,110 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { defaults } from '../../constants';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/select-element.service";
6
+ import * as i2 from "../../services/tree-node-selection.service";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "@angular/forms";
10
+ import * as i6 from "@angular/material/checkbox";
11
+ import * as i7 from "@angular/material/table";
12
+ import * as i8 from "../../directives/save-changing-view.directive";
13
+ import * as i9 from "../../pipes/element-icon-name.pipe";
14
+ import * as i10 from "../../pipes/element-text.pipe";
15
+ import * as i11 from "../../pipes/element-item-number.pipe";
16
+ export class TableStructureComponent {
17
+ constructor(selectElementService, treeNodeSelectionService, cdr) {
18
+ this.selectElementService = selectElementService;
19
+ this.treeNodeSelectionService = treeNodeSelectionService;
20
+ this.cdr = cdr;
21
+ this.filteredElementList = [];
22
+ this.isSelectionMode = false;
23
+ this.addTableColumns = [];
24
+ this.selectedColor = null;
25
+ this.allowDblClick = true;
26
+ this.displayedColumns = [];
27
+ this.isAllowOneClick = true;
28
+ this.selectedElement = null;
29
+ this.preselectedElement = null;
30
+ this.timerStop = null;
31
+ this.checkedElements = {};
32
+ this.$destroy = new Subject();
33
+ }
34
+ ngOnInit() {
35
+ this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
36
+ this.selectedElement = element;
37
+ });
38
+ this.selectElementService.preselectedElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
39
+ this.preselectedElement = element;
40
+ });
41
+ if (this.isSelectionMode) {
42
+ this.displayedColumns = ['icon', 'checkbox', 'itemNumber', 'text', ...this.addTableColumns.map((item) => item.name)];
43
+ this.treeNodeSelectionService.treeNodeSelecting.pipe(takeUntil(this.$destroy)).subscribe((treeNodeSelecting) => {
44
+ this.checkedElements = treeNodeSelecting;
45
+ this.cdr.detectChanges();
46
+ });
47
+ }
48
+ else {
49
+ this.displayedColumns = ['icon', 'itemNumber', 'text', ...this.addTableColumns.map((item) => item.name)];
50
+ }
51
+ }
52
+ ngOnDestroy() {
53
+ this.timerStop && clearTimeout(this.timerStop);
54
+ this.$destroy.next(true);
55
+ this.$destroy.complete();
56
+ }
57
+ select(row) {
58
+ if (this.isSelectionMode) {
59
+ return;
60
+ }
61
+ const clickElement = () => {
62
+ this.selectElementService.setClickElement(this.selectedElement?.id === row.id ? null : row);
63
+ };
64
+ if (!this.allowDblClick) {
65
+ clickElement();
66
+ }
67
+ else if (this.isAllowOneClick) {
68
+ this.isAllowOneClick = false;
69
+ this.timerStop = setTimeout(() => {
70
+ clickElement();
71
+ this.isAllowOneClick = true;
72
+ }, defaults.doubleClickTimeoutInMilliseconds);
73
+ }
74
+ }
75
+ dblSelect(row) {
76
+ if (!this.allowDblClick) {
77
+ return;
78
+ }
79
+ if (this.isSelectionMode) {
80
+ return;
81
+ }
82
+ this.timerStop && clearTimeout(this.timerStop);
83
+ this.selectElementService.setDblClickElement(row);
84
+ this.isAllowOneClick = true;
85
+ }
86
+ openContextMenu(event, row) {
87
+ event.preventDefault();
88
+ this.selectElementService.setContextMenuElement({ position: { x: `${event.x}px`, y: `${event.y}px` }, node: row });
89
+ }
90
+ changeSelecting(element, event) {
91
+ this.treeNodeSelectionService.changeSelecting(event, element.id);
92
+ }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TableStructureComponent, deps: [{ token: i1.SelectElementService }, { token: i2.TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TableStructureComponent, selector: "ava-table-structure", inputs: { filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", addTableColumns: "addTableColumns", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<table\n mat-table\n [dataSource]=\"filteredElementList\"\n>\n <ng-container matColumnDef=\"icon\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-cell-small-width\"\n >\n <mat-icon\n class=\"icon-element\"\n saveChangingView=\"icon\"\n [id]=\"row.id\"\n >\n {{ row | elementIconName }}\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"checkbox\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"table-cell-small-width\"\n >\n <mat-checkbox\n class=\"checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"itemNumber\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n OZ\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementItemNumber }}\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"text\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n Text\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-text\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementText }}\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n {{ oneColumn.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n >\n <div\n [style.textAlign]=\"oneColumn.align\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <tr\n mat-header-row\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\n class=\"mat-header-row\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n (click)=\"select(row)\"\n (dblclick)=\"dblSelect(row)\"\n (contextmenu)=\"openContextMenu($event, row)\"\n [ngClass]=\"{\n choose: !isSelectionMode && row.id === preselectedElement?.id,\n select: !isSelectionMode && row.id === selectedElement?.id\n }\"\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\n [id]=\"row.id\"\n ></tr>\n</table>\n", styles: ["table{width:100%}table tr.mat-mdc-row,table tr.mat-mdc-header-row{height:24px}table tr input{box-sizing:border-box;padding:0 3px;outline:none;border:none;height:20px;width:calc(100% - 2px)}table tr input:focus{background:#fff!important}table tr .right{text-align:right}table tr td,table tr th{border-right:1px solid #777;border-bottom:1px solid #777;padding:0}table tr td:first-child,table tr th:first-child{border-left:1px solid #777}table tr td.min-width,table tr th.min-width{width:12ch;min-width:12ch}table tr td div,table tr th div{padding:0 3px}table tr th{border-top:1px solid #777;padding:0 3px}.table-text{overflow-x:hidden;position:relative}.table-text div{position:absolute;top:50%;left:0;white-space:nowrap;transform:translateY(-50%)}.select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}.choose div{color:red!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}.text-element{-webkit-user-select:none;user-select:none}.table-cell-small-width{width:24px;min-width:24px;position:relative;text-align:center}.table-cell-small-width .icon-element{position:absolute;top:0;left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i8.SaveChangingViewDirective, selector: "[saveChangingView]", inputs: ["attributeValue"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i9.ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: i10.ElementTextPipe, name: "elementText" }, { kind: "pipe", type: i11.ElementItemNumberPipe, name: "elementItemNumber" }] }); }
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TableStructureComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'ava-table-structure', template: "<table\n mat-table\n [dataSource]=\"filteredElementList\"\n>\n <ng-container matColumnDef=\"icon\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-cell-small-width\"\n >\n <mat-icon\n class=\"icon-element\"\n saveChangingView=\"icon\"\n [id]=\"row.id\"\n >\n {{ row | elementIconName }}\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"checkbox\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"table-cell-small-width\"\n >\n <mat-checkbox\n class=\"checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"itemNumber\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n OZ\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementItemNumber }}\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"text\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n Text\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-text\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementText }}\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n {{ oneColumn.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n >\n <div\n [style.textAlign]=\"oneColumn.align\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <tr\n mat-header-row\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\n class=\"mat-header-row\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n (click)=\"select(row)\"\n (dblclick)=\"dblSelect(row)\"\n (contextmenu)=\"openContextMenu($event, row)\"\n [ngClass]=\"{\n choose: !isSelectionMode && row.id === preselectedElement?.id,\n select: !isSelectionMode && row.id === selectedElement?.id\n }\"\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\n [id]=\"row.id\"\n ></tr>\n</table>\n", styles: ["table{width:100%}table tr.mat-mdc-row,table tr.mat-mdc-header-row{height:24px}table tr input{box-sizing:border-box;padding:0 3px;outline:none;border:none;height:20px;width:calc(100% - 2px)}table tr input:focus{background:#fff!important}table tr .right{text-align:right}table tr td,table tr th{border-right:1px solid #777;border-bottom:1px solid #777;padding:0}table tr td:first-child,table tr th:first-child{border-left:1px solid #777}table tr td.min-width,table tr th.min-width{width:12ch;min-width:12ch}table tr td div,table tr th div{padding:0 3px}table tr th{border-top:1px solid #777;padding:0 3px}.table-text{overflow-x:hidden;position:relative}.table-text div{position:absolute;top:50%;left:0;white-space:nowrap;transform:translateY(-50%)}.select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}.choose div{color:red!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}.text-element{-webkit-user-select:none;user-select:none}.table-cell-small-width{width:24px;min-width:24px;position:relative;text-align:center}.table-cell-small-width .icon-element{position:absolute;top:0;left:0}\n"] }]
99
+ }], ctorParameters: () => [{ type: i1.SelectElementService }, { type: i2.TreeNodeSelectionService }, { type: i0.ChangeDetectorRef }], propDecorators: { filteredElementList: [{
100
+ type: Input
101
+ }], isSelectionMode: [{
102
+ type: Input
103
+ }], addTableColumns: [{
104
+ type: Input
105
+ }], selectedColor: [{
106
+ type: Input
107
+ }], allowDblClick: [{
108
+ type: Input
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RydWN0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb21wb25lbnRzL3RhYmxlLXN0cnVjdHVyZS90YWJsZS1zdHJ1Y3R1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdGFibGUtc3RydWN0dXJlL3RhYmxlLXN0cnVjdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVczQyxNQUFNLE9BQU8sdUJBQXVCO0lBaUJsQyxZQUNTLG9CQUEwQyxFQUN6Qyx3QkFBa0QsRUFDbEQsR0FBc0I7UUFGdkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUN6Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkJ2Qix3QkFBbUIsR0FBa0IsRUFBRSxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUN4QyxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUIscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQy9CLG9CQUFlLEdBQXVCLElBQUksQ0FBQztRQUMzQyx1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ckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSUVsZW1lbnREdG8sIFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL3NlbGVjdGluZy5tb2RlbCc7XG5pbXBvcnQgeyBTZWxlY3RFbGVtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlbGVjdC1lbGVtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJlZS1ub2RlLXNlbGVjdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXZhLXRhYmxlLXN0cnVjdHVyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1zdHJ1Y3R1cmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1zdHJ1Y3R1cmUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVN0cnVjdHVyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZmlsdGVyZWRFbGVtZW50TGlzdDogSUVsZW1lbnREdG9bXSA9IFtdO1xuICBASW5wdXQoKSBpc1NlbGVjdGlvbk1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkVGFibGVDb2x1bW5zOiBUYWJsZUNvbHVtblR5cGVbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZENvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWxsb3dEYmxDbGljayA9IHRydWU7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgaXNBbGxvd09uZUNsaWNrID0gdHJ1ZTtcbiAgc2VsZWN0ZWRFbGVtZW50OiBJRWxlbWVudER0byB8IG51bGwgPSBudWxsO1xuICBwcmVzZWxlY3RlZEVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgdGltZXJTdG9wOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBjaGVja2VkRWxlbWVudHM6IHtcbiAgICBbZWxlbWVudElkOiBzdHJpbmddOiBTZWxlY3RpbmdFbGVtZW50c1R5cGU7XG4gIH0gPSB7fTtcblxuICBwcml2YXRlICRkZXN0cm95ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VsZWN0RWxlbWVudFNlcnZpY2U6IFNlbGVjdEVsZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlOiBUcmVlTm9kZVNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNlbGVjdENsaWNrRWxlbWVudC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKChlbGVtZW50KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5wcmVzZWxlY3RlZEVsZW1lbnQucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveSkpLnN1YnNjcmliZSgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5wcmVzZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50O1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25Nb2RlKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbJ2ljb24nLCAnY2hlY2tib3gnLCAnaXRlbU51bWJlcicsICd0ZXh0JywgLi4udGhpcy5hZGRUYWJsZUNvbHVtbnMubWFwKChpdGVtKSA9PiBpdGVtLm5hbWUpXTtcbiAgICAgIHRoaXMudHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlLnRyZWVOb2RlU2VsZWN0aW5nLnBpcGUodGFrZVVudGlsKHRoaXMuJGRlc3Ryb3kpKS5zdWJzY3JpYmUoKHRyZWVOb2RlU2VsZWN0aW5nKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tlZEVsZW1lbnRzID0gdHJlZU5vZGVTZWxlY3Rpbmc7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbJ2ljb24nLCAnaXRlbU51bWJlcicsICd0ZXh0JywgLi4udGhpcy5hZGRUYWJsZUNvbHVtbnMubWFwKChpdGVtKSA9PiBpdGVtLm5hbWUpXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWVyU3RvcCAmJiBjbGVhclRpbWVvdXQodGhpcy50aW1lclN0b3ApO1xuXG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KHRydWUpO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIHNlbGVjdChyb3c6IElFbGVtZW50RHRvKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25Nb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2xpY2tFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZXRDbGlja0VsZW1lbnQodGhpcy5zZWxlY3RlZEVsZW1lbnQ/LmlkID09PSByb3cuaWQgPyBudWxsIDogcm93KTtcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmFsbG93RGJsQ2xpY2spIHtcbiAgICAgIGNsaWNrRWxlbWVudCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0FsbG93T25lQ2xpY2spIHtcbiAgICAgIHRoaXMuaXNBbGxvd09uZUNsaWNrID0gZmFsc2U7XG4gICAgICB0aGlzLnRpbWVyU3RvcCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjbGlja0VsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5pc0FsbG93T25lQ2xpY2sgPSB0cnVlO1xuICAgICAgfSwgZGVmYXVsdHMuZG91YmxlQ2xpY2tUaW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICAgIH1cbiAgfVxuXG4gIGRibFNlbGVjdChyb3c6IElFbGVtZW50RHRvKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFsbG93RGJsQ2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1NlbGVjdGlvbk1vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRpbWVyU3RvcCAmJiBjbGVhclRpbWVvdXQodGhpcy50aW1lclN0b3ApO1xuXG4gICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZXREYmxDbGlja0VsZW1lbnQocm93KTtcbiAgICB0aGlzLmlzQWxsb3dPbmVDbGljayA9IHRydWU7XG4gIH1cblxuICBvcGVuQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvdzogSUVsZW1lbnREdG8pOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0Q29udGV4dE1lbnVFbGVtZW50KHsgcG9zaXRpb246IHsgeDogYCR7ZXZlbnQueH1weGAsIHk6IGAke2V2ZW50Lnl9cHhgIH0sIG5vZGU6IHJvdyB9KTtcbiAgfVxuXG4gIGNoYW5nZVNlbGVjdGluZyhlbGVtZW50OiBJRWxlbWVudER0bywgZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVOb2RlU2VsZWN0aW9uU2VydmljZS5jaGFuZ2VTZWxlY3RpbmcoZXZlbnQsIGVsZW1lbnQuaWQpO1xuICB9XG59XG4iLCI8dGFibGVcbiAgbWF0LXRhYmxlXG4gIFtkYXRhU291cmNlXT1cImZpbHRlcmVkRWxlbWVudExpc3RcIlxuPlxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImljb25cIj5cbiAgICA8dGhcbiAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICA+PC90aD5cbiAgICA8dGRcbiAgICAgIG1hdC1jZWxsXG4gICAgICAqbWF0Q2VsbERlZj1cImxldCByb3dcIlxuICAgICAgY2xhc3M9XCJ0YWJsZS1jZWxsLXNtYWxsLXdpZHRoXCJcbiAgICA+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgY2xhc3M9XCJpY29uLWVsZW1lbnRcIlxuICAgICAgICBzYXZlQ2hhbmdpbmdWaWV3PVwiaWNvblwiXG4gICAgICAgIFtpZF09XCJyb3cuaWRcIlxuICAgICAgPlxuICAgICAgICB7eyByb3cgfCBlbGVtZW50SWNvbk5hbWUgfX1cbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjaGVja2JveFwiPlxuICAgIDx0aFxuICAgICAgbWF0LWhlYWRlci1jZWxsXG4gICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgID48L3RoPlxuICAgIDx0ZFxuICAgICAgbWF0LWNlbGxcbiAgICAgICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIlxuICAgICAgY2xhc3M9XCJ0YWJsZS1jZWxsLXNtYWxsLXdpZHRoXCJcbiAgICA+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgIGNsYXNzPVwiY2hlY2tib3hcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJjaGVja2VkRWxlbWVudHNbZWxlbWVudC5pZF0uaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY2hlY2tlZEVsZW1lbnRzW2VsZW1lbnQuaWRdLmNoZWNrZWRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VTZWxlY3RpbmcoZWxlbWVudCwgJGV2ZW50KVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPlxuICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpdGVtTnVtYmVyXCI+XG4gICAgPHRoXG4gICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgPlxuICAgICAgT1pcbiAgICA8L3RoPlxuICAgIDx0ZFxuICAgICAgbWF0LWNlbGxcbiAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXG4gICAgICBbc3R5bGUud2lkdGguY2hdPVwicm93Py5pdGVtTnVtYmVyPy5zdHJpbmdSZXByZXNlbnRhdGlvbi5sZW5ndGhcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LWVsZW1lbnRcIlxuICAgICAgICBzYXZlQ2hhbmdpbmdWaWV3PVwidGV4dFwiXG4gICAgICAgIFtpZF09XCJyb3cuaWRcIlxuICAgICAgPlxuICAgICAgICB7eyByb3cgfCBlbGVtZW50SXRlbU51bWJlciB9fVxuICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0ZXh0XCI+XG4gICAgPHRoXG4gICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgPlxuICAgICAgVGV4dFxuICAgIDwvdGg+XG4gICAgPHRkXG4gICAgICBtYXQtY2VsbFxuICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcbiAgICAgIGNsYXNzPVwidGFibGUtdGV4dFwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRleHQtZWxlbWVudFwiXG4gICAgICAgIHNhdmVDaGFuZ2luZ1ZpZXc9XCJ0ZXh0XCJcbiAgICAgICAgW2lkXT1cInJvdy5pZFwiXG4gICAgICA+XG4gICAgICAgIHt7IHJvdyB8IGVsZW1lbnRUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvbmVDb2x1bW4gb2YgYWRkVGFibGVDb2x1bW5zXCI+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ7eyBvbmVDb2x1bW4ubmFtZSB9fVwiPlxuICAgICAgPHRoXG4gICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgPlxuICAgICAgICB7eyBvbmVDb2x1bW4udGl0bGUgfX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGRcbiAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFtzdHlsZS50ZXh0QWxpZ25dPVwib25lQ29sdW1uLmFsaWduXCJcbiAgICAgICAgICBzYXZlQ2hhbmdpbmdWaWV3PVwidGV4dFwiXG4gICAgICAgICAgW2lkXT1cInJvdy5pZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAhb25lQ29sdW1uLm51bWJlckZvcm1hdCA/IHJvd1tvbmVDb2x1bW4ubmFtZV0gOiAocm93W29uZUNvbHVtbi5uYW1lXSB8IG51bWJlcjogb25lQ29sdW1uLm51bWJlckZvcm1hdCkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8dHJcbiAgICBtYXQtaGVhZGVyLXJvd1xuICAgICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6IHRydWVcIlxuICAgIGNsYXNzPVwibWF0LWhlYWRlci1yb3dcIlxuICA+PC90cj5cbiAgPHRyXG4gICAgbWF0LXJvd1xuICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAoY2xpY2spPVwic2VsZWN0KHJvdylcIlxuICAgIChkYmxjbGljayk9XCJkYmxTZWxlY3Qocm93KVwiXG4gICAgKGNvbnRleHRtZW51KT1cIm9wZW5Db250ZXh0TWVudSgkZXZlbnQsIHJvdylcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgIGNob29zZTogIWlzU2VsZWN0aW9uTW9kZSAmJiByb3cuaWQgPT09IHByZXNlbGVjdGVkRWxlbWVudD8uaWQsXG4gICAgICBzZWxlY3Q6ICFpc1NlbGVjdGlvbk1vZGUgJiYgcm93LmlkID09PSBzZWxlY3RlZEVsZW1lbnQ/LmlkXG4gICAgfVwiXG4gICAgW3N0eWxlLmJhY2tncm91bmRdPVwiIWlzU2VsZWN0aW9uTW9kZSAmJiByb3cuaWQgPT09IHNlbGVjdGVkRWxlbWVudD8uaWQgPyBzZWxlY3RlZENvbG9yIHx8ICcnIDogJydcIlxuICAgIFtpZF09XCJyb3cuaWRcIlxuICA+PC90cj5cbjwvdGFibGU+XG4iXX0=
@@ -0,0 +1,102 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { defaults } from '../../constants';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/select-element.service";
6
+ import * as i2 from "../../services/tree-node-selection.service";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "@angular/forms";
10
+ import * as i6 from "@angular/material/checkbox";
11
+ import * as i7 from "../../directives/save-changing-view.directive";
12
+ import * as i8 from "../../pipes/element-icon-name.pipe";
13
+ import * as i9 from "../../pipes/element-text.pipe";
14
+ import * as i10 from "../../pipes/element-item-number.pipe";
15
+ export class TreeItemComponent {
16
+ constructor(selectElementService, treeNodeSelectionService, cdr) {
17
+ this.selectElementService = selectElementService;
18
+ this.treeNodeSelectionService = treeNodeSelectionService;
19
+ this.cdr = cdr;
20
+ this.element = {};
21
+ this.expansionState = {};
22
+ this.isSelectionMode = false;
23
+ this.allowDblClick = true;
24
+ this.selectedElement = null;
25
+ this.preselectedElement = null;
26
+ this.isAllowOneClick = true;
27
+ this.timerStop = null;
28
+ this.$destroy = new Subject();
29
+ this.checkedElements = {};
30
+ }
31
+ ngOnInit() {
32
+ this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => (this.selectedElement = element));
33
+ this.selectElementService.preselectedElement.pipe(takeUntil(this.$destroy)).subscribe((element) => (this.preselectedElement = element));
34
+ if (this.isSelectionMode) {
35
+ this.treeNodeSelectionService.treeNodeSelecting.pipe(takeUntil(this.$destroy)).subscribe((treeNodeSelecting) => {
36
+ this.checkedElements = treeNodeSelecting;
37
+ this.cdr.detectChanges();
38
+ });
39
+ }
40
+ }
41
+ ngOnDestroy() {
42
+ this.timerStop && clearTimeout(this.timerStop);
43
+ this.$destroy.next(true);
44
+ this.$destroy.complete();
45
+ }
46
+ expand() {
47
+ if (this.element) {
48
+ this.expansionState[this.element.id] = true;
49
+ }
50
+ }
51
+ select() {
52
+ const clickElement = () => {
53
+ this.selectElementService.setClickElement(this.selectedElement?.id === this.element.id ? null : this.element);
54
+ if (this.element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {
55
+ this.expand();
56
+ }
57
+ };
58
+ if (!this.allowDblClick) {
59
+ clickElement();
60
+ }
61
+ else if (this.isAllowOneClick) {
62
+ this.isAllowOneClick = false;
63
+ this.timerStop = setTimeout(() => {
64
+ clickElement();
65
+ this.isAllowOneClick = true;
66
+ }, defaults.doubleClickTimeoutInMilliseconds);
67
+ }
68
+ }
69
+ dblSelect() {
70
+ if (!this.allowDblClick) {
71
+ return;
72
+ }
73
+ this.timerStop && clearTimeout(this.timerStop);
74
+ this.selectElementService.setDblClickElement(this.element);
75
+ if (this.element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {
76
+ this.expand();
77
+ }
78
+ this.isAllowOneClick = true;
79
+ }
80
+ openContextMenu(event) {
81
+ event.preventDefault();
82
+ this.selectElementService.setContextMenuElement({ position: { x: `${event.x}px`, y: `${event.y}px` }, node: this.element });
83
+ }
84
+ changeSelecting(element, isSelected) {
85
+ this.treeNodeSelectionService.changeSelecting(isSelected, element.id);
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeItemComponent, deps: [{ token: i1.SelectElementService }, { token: i2.TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TreeItemComponent, selector: "ava-tree-item", inputs: { element: "element", expansionState: "expansionState", isSelectionMode: "isSelectionMode", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<div\n *ngIf=\"element\"\n (click)=\"select()\"\n (dblclick)=\"dblSelect()\"\n (contextmenu)=\"openContextMenu($event)\"\n class=\"ava-tree-item\"\n [id]=\"element.id\"\n>\n <mat-icon\n class=\"ava-tree-item__icon\"\n saveChangingView=\"icon\"\n [id]=\"element.id\"\n >{{ element | elementIconName }}</mat-icon\n >\n <div\n *ngIf=\"!isSelectionMode\"\n class=\"ava-tree-item__text\"\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\n [id]=\"element.id\"\n saveChangingView=\"text\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n <mat-checkbox\n *ngIf=\"isSelectionMode\"\n class=\"ava-tree-item__checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"ava-tree-item__text\"\n saveChangingView=\"text\"\n [id]=\"element.id\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n </mat-checkbox>\n</div>\n\n<ng-template #text>\n <ng-container\n *ngIf=\"\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\n else simpleText\n \"\n >\n {{ element | elementItemNumber }} - {{ element | elementText }}\n </ng-container>\n</ng-template>\n<ng-template #simpleText>\n {{ element | elementText }}\n</ng-template>\n", styles: ["::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}::ng-deep .ava-tree-item__checkbox .mat-mdc-checkbox-touch-target{width:16px!important;height:16px!important}.ava-tree-item{display:flex;align-items:center}.ava-tree-item__icon,.ava-tree-item__checkbox{flex-shrink:0}.ava-tree-item__text{flex-grow:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.ava-tree-item__text.choose{color:red!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.SaveChangingViewDirective, selector: "[saveChangingView]", inputs: ["attributeValue"] }, { kind: "pipe", type: i8.ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: i9.ElementTextPipe, name: "elementText" }, { kind: "pipe", type: i10.ElementItemNumberPipe, name: "elementItemNumber" }] }); }
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeItemComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'ava-tree-item', template: "<div\n *ngIf=\"element\"\n (click)=\"select()\"\n (dblclick)=\"dblSelect()\"\n (contextmenu)=\"openContextMenu($event)\"\n class=\"ava-tree-item\"\n [id]=\"element.id\"\n>\n <mat-icon\n class=\"ava-tree-item__icon\"\n saveChangingView=\"icon\"\n [id]=\"element.id\"\n >{{ element | elementIconName }}</mat-icon\n >\n <div\n *ngIf=\"!isSelectionMode\"\n class=\"ava-tree-item__text\"\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\n [id]=\"element.id\"\n saveChangingView=\"text\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n <mat-checkbox\n *ngIf=\"isSelectionMode\"\n class=\"ava-tree-item__checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"ava-tree-item__text\"\n saveChangingView=\"text\"\n [id]=\"element.id\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n </mat-checkbox>\n</div>\n\n<ng-template #text>\n <ng-container\n *ngIf=\"\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\n else simpleText\n \"\n >\n {{ element | elementItemNumber }} - {{ element | elementText }}\n </ng-container>\n</ng-template>\n<ng-template #simpleText>\n {{ element | elementText }}\n</ng-template>\n", styles: ["::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}::ng-deep .ava-tree-item__checkbox .mat-mdc-checkbox-touch-target{width:16px!important;height:16px!important}.ava-tree-item{display:flex;align-items:center}.ava-tree-item__icon,.ava-tree-item__checkbox{flex-shrink:0}.ava-tree-item__text{flex-grow:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.ava-tree-item__text.choose{color:red!important}\n"] }]
93
+ }], ctorParameters: () => [{ type: i1.SelectElementService }, { type: i2.TreeNodeSelectionService }, { type: i0.ChangeDetectorRef }], propDecorators: { element: [{
94
+ type: Input
95
+ }], expansionState: [{
96
+ type: Input
97
+ }], isSelectionMode: [{
98
+ type: Input
99
+ }], allowDblClick: [{
100
+ type: Input
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb21wb25lbnRzL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1pdGVtL3RyZWUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFlNUIsWUFDUyxvQkFBMEMsRUFDekMsd0JBQWtELEVBQ2xELEdBQXNCO1FBRnZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDekMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpCdkIsWUFBTyxHQUFnQixFQUFpQixDQUFDO1FBQ3pDLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUMvQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUM5QixvQkFBZSxHQUF1QixJQUFJLENBQUM7UUFDM0MsdUJBQWtCLEdBQXVCLElBQUksQ0FBQztRQUN0QyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixjQUFTLEdBQXlDLElBQUksQ0FBQztRQUN2RCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUUx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QUksSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsS0FBSyw4QkFBOEIsRUFBRSxDQUFDO1lBQzdFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFpQjtRQUMvQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5SCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQW9CLEVBQUUsVUFBbUI7UUFDdkQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OEdBckZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJMQ2Y5QixrakRBdURBOzsyRkR4Q2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7Z0tBS2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSUVsZW1lbnREdG8gfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBTZWxlY3RpbmdFbGVtZW50c1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWxlY3RpbmcubW9kZWwnO1xuaW1wb3J0IHsgU2VsZWN0RWxlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWxlY3QtZWxlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyZWVOb2RlU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyZWUtbm9kZS1zZWxlY3Rpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F2YS10cmVlLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1pdGVtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVHJlZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGVsZW1lbnQ6IElFbGVtZW50RHRvID0ge30gYXMgSUVsZW1lbnREdG87XG4gIEBJbnB1dCgpIGV4cGFuc2lvblN0YXRlOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIEBJbnB1dCgpIGlzU2VsZWN0aW9uTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBhbGxvd0RibENsaWNrID0gdHJ1ZTtcbiAgc2VsZWN0ZWRFbGVtZW50OiBJRWxlbWVudER0byB8IG51bGwgPSBudWxsO1xuICBwcmVzZWxlY3RlZEVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaXNBbGxvd09uZUNsaWNrID0gdHJ1ZTtcbiAgcHJpdmF0ZSB0aW1lclN0b3A6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgJGRlc3Ryb3kgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNoZWNrZWRFbGVtZW50czoge1xuICAgIFtlbGVtZW50SWQ6IHN0cmluZ106IFNlbGVjdGluZ0VsZW1lbnRzVHlwZTtcbiAgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWxlY3RFbGVtZW50U2VydmljZTogU2VsZWN0RWxlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmVlTm9kZVNlbGVjdGlvblNlcnZpY2U6IFRyZWVOb2RlU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2VsZWN0Q2xpY2tFbGVtZW50LnBpcGUodGFrZVVudGlsKHRoaXMuJGRlc3Ryb3kpKS5zdWJzY3JpYmUoKGVsZW1lbnQpID0+ICh0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnQpKTtcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnByZXNlbGVjdGVkRWxlbWVudC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKChlbGVtZW50KSA9PiAodGhpcy5wcmVzZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50KSk7XG5cbiAgICBpZiAodGhpcy5pc1NlbGVjdGlvbk1vZGUpIHtcbiAgICAgIHRoaXMudHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlLnRyZWVOb2RlU2VsZWN0aW5nLnBpcGUodGFrZVVudGlsKHRoaXMuJGRlc3Ryb3kpKS5zdWJzY3JpYmUoKHRyZWVOb2RlU2VsZWN0aW5nKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tlZEVsZW1lbnRzID0gdHJlZU5vZGVTZWxlY3Rpbmc7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGltZXJTdG9wICYmIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyU3RvcCk7XG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KHRydWUpO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZXhwYW5zaW9uU3RhdGVbdGhpcy5lbGVtZW50LmlkXSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNsaWNrRWxlbWVudCA9ICgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0Q2xpY2tFbGVtZW50KHRoaXMuc2VsZWN0ZWRFbGVtZW50Py5pZCA9PT0gdGhpcy5lbGVtZW50LmlkID8gbnVsbCA6IHRoaXMuZWxlbWVudCk7XG4gICAgICBpZiAodGhpcy5lbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvciA9PT0gJ1NlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8nKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghdGhpcy5hbGxvd0RibENsaWNrKSB7XG4gICAgICBjbGlja0VsZW1lbnQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNBbGxvd09uZUNsaWNrKSB7XG4gICAgICB0aGlzLmlzQWxsb3dPbmVDbGljayA9IGZhbHNlO1xuICAgICAgdGhpcy50aW1lclN0b3AgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY2xpY2tFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuaXNBbGxvd09uZUNsaWNrID0gdHJ1ZTtcbiAgICAgIH0sIGRlZmF1bHRzLmRvdWJsZUNsaWNrVGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgICB9XG4gIH1cblxuICBkYmxTZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFsbG93RGJsQ2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRpbWVyU3RvcCAmJiBjbGVhclRpbWVvdXQodGhpcy50aW1lclN0b3ApO1xuXG4gICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZXREYmxDbGlja0VsZW1lbnQodGhpcy5lbGVtZW50KTtcbiAgICBpZiAodGhpcy5lbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvciA9PT0gJ1NlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8nKSB7XG4gICAgICB0aGlzLmV4cGFuZCgpO1xuICAgIH1cbiAgICB0aGlzLmlzQWxsb3dPbmVDbGljayA9IHRydWU7XG4gIH1cblxuICBvcGVuQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0Q29udGV4dE1lbnVFbGVtZW50KHsgcG9zaXRpb246IHsgeDogYCR7ZXZlbnQueH1weGAsIHk6IGAke2V2ZW50Lnl9cHhgIH0sIG5vZGU6IHRoaXMuZWxlbWVudCB9KTtcbiAgfVxuXG4gIGNoYW5nZVNlbGVjdGluZyhlbGVtZW50OiBJRWxlbWVudER0bywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlLmNoYW5nZVNlbGVjdGluZyhpc1NlbGVjdGVkLCBlbGVtZW50LmlkKTtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImVsZW1lbnRcIlxuICAoY2xpY2spPVwic2VsZWN0KClcIlxuICAoZGJsY2xpY2spPVwiZGJsU2VsZWN0KClcIlxuICAoY29udGV4dG1lbnUpPVwib3BlbkNvbnRleHRNZW51KCRldmVudClcIlxuICBjbGFzcz1cImF2YS10cmVlLWl0ZW1cIlxuICBbaWRdPVwiZWxlbWVudC5pZFwiXG4+XG4gIDxtYXQtaWNvblxuICAgIGNsYXNzPVwiYXZhLXRyZWUtaXRlbV9faWNvblwiXG4gICAgc2F2ZUNoYW5naW5nVmlldz1cImljb25cIlxuICAgIFtpZF09XCJlbGVtZW50LmlkXCJcbiAgICA+e3sgZWxlbWVudCB8IGVsZW1lbnRJY29uTmFtZSB9fTwvbWF0LWljb25cbiAgPlxuICA8ZGl2XG4gICAgKm5nSWY9XCIhaXNTZWxlY3Rpb25Nb2RlXCJcbiAgICBjbGFzcz1cImF2YS10cmVlLWl0ZW1fX3RleHRcIlxuICAgIFtjbGFzcy5jaG9vc2VdPVwiIWlzU2VsZWN0aW9uTW9kZSAmJiBlbGVtZW50LmlkID09PSBwcmVzZWxlY3RlZEVsZW1lbnQ/LmlkXCJcbiAgICBbaWRdPVwiZWxlbWVudC5pZFwiXG4gICAgc2F2ZUNoYW5naW5nVmlldz1cInRleHRcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8bWF0LWNoZWNrYm94XG4gICAgKm5nSWY9XCJpc1NlbGVjdGlvbk1vZGVcIlxuICAgIGNsYXNzPVwiYXZhLXRyZWUtaXRlbV9fY2hlY2tib3hcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgW2luZGV0ZXJtaW5hdGVdPVwiY2hlY2tlZEVsZW1lbnRzW2VsZW1lbnQuaWRdLmluZGV0ZXJtaW5hdGVcIlxuICAgIFsobmdNb2RlbCldPVwiY2hlY2tlZEVsZW1lbnRzW2VsZW1lbnQuaWRdLmNoZWNrZWRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVNlbGVjdGluZyhlbGVtZW50LCAkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXZhLXRyZWUtaXRlbV9fdGV4dFwiXG4gICAgICBzYXZlQ2hhbmdpbmdWaWV3PVwidGV4dFwiXG4gICAgICBbaWRdPVwiZWxlbWVudC5pZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWNoZWNrYm94PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGV4dD5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBlbGVtZW50Py5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJyB8fCBlbGVtZW50Py5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdQb3NpdGlvbkR0byc7XG4gICAgICBlbHNlIHNpbXBsZVRleHRcbiAgICBcIlxuICA+XG4gICAge3sgZWxlbWVudCB8IGVsZW1lbnRJdGVtTnVtYmVyIH19IC0ge3sgZWxlbWVudCB8IGVsZW1lbnRUZXh0IH19XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVGV4dD5cbiAge3sgZWxlbWVudCB8IGVsZW1lbnRUZXh0IH19XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,53 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/select-element.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/material/core";
8
+ import * as i5 from "../tree-item/tree-item.component";
9
+ import * as i6 from "../../pipes/group-child-elements.pipe";
10
+ export class TreeNodeComponent {
11
+ constructor(selectElementService) {
12
+ this.selectElementService = selectElementService;
13
+ this.elementList = [];
14
+ this.indent = '';
15
+ this.expansionState = {};
16
+ this.isSelectionMode = false;
17
+ this.selectedColor = null;
18
+ this.allowDblClick = true;
19
+ this.selectedElement = null;
20
+ this.$destroy = new Subject();
21
+ }
22
+ ngOnInit() {
23
+ this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
24
+ this.selectedElement = element;
25
+ });
26
+ }
27
+ ngOnDestroy() {
28
+ this.$destroy.next(true);
29
+ this.$destroy.complete();
30
+ }
31
+ expand(element) {
32
+ this.expansionState[element.id] = !this.expansionState[element.id];
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeNodeComponent, deps: [{ token: i1.SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TreeNodeComponent, selector: "ava-tree-node", inputs: { elementList: "elementList", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of elementList\">\n <div\n class=\"tree-node-wrapper\"\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <div class=\"tree-node-wrapper__content\">\n <mat-icon\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\n matRipple\n (click)=\"expand(element)\"\n class=\"tree-node__icon\"\n >\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <ava-tree-item\n [element]=\"element\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n </div>\n\n <div\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\n [style.paddingLeft]=\"indent\"\n >\n <ava-tree-node\n [elementList]=\"element | groupChildElements\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n [indent]=\"indent\"\n ></ava-tree-node>\n </div>\n</ng-container>\n<ng-template #nullIcon>\n <mat-icon></mat-icon>\n</ng-template>\n", styles: [".tree-node-wrapper{display:flex;align-items:center}.tree-node-wrapper__content{flex:1 0 100%;display:flex}.tree-node__icon{flex-shrink:0}.select{background-color:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: TreeNodeComponent, selector: "ava-tree-node", inputs: ["elementList", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: i5.TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode", "allowDblClick"] }, { kind: "pipe", type: i6.GroupChildElementsPipe, name: "groupChildElements" }] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeNodeComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'ava-tree-node', template: "<ng-container *ngFor=\"let element of elementList\">\n <div\n class=\"tree-node-wrapper\"\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <div class=\"tree-node-wrapper__content\">\n <mat-icon\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\n matRipple\n (click)=\"expand(element)\"\n class=\"tree-node__icon\"\n >\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <ava-tree-item\n [element]=\"element\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n </div>\n\n <div\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\n [style.paddingLeft]=\"indent\"\n >\n <ava-tree-node\n [elementList]=\"element | groupChildElements\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n [indent]=\"indent\"\n ></ava-tree-node>\n </div>\n</ng-container>\n<ng-template #nullIcon>\n <mat-icon></mat-icon>\n</ng-template>\n", styles: [".tree-node-wrapper{display:flex;align-items:center}.tree-node-wrapper__content{flex:1 0 100%;display:flex}.tree-node__icon{flex-shrink:0}.select{background-color:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"] }]
40
+ }], ctorParameters: () => [{ type: i1.SelectElementService }], propDecorators: { elementList: [{
41
+ type: Input
42
+ }], indent: [{
43
+ type: Input
44
+ }], expansionState: [{
45
+ type: Input
46
+ }], isSelectionMode: [{
47
+ type: Input
48
+ }], selectedColor: [{
49
+ type: Input
50
+ }], allowDblClick: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb21wb25lbnRzL3RyZWUtbm9kZS90cmVlLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1ub2RlL3RyZWUtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBVTFDLE1BQU0sT0FBTyxpQkFBaUI7SUFVNUIsWUFBbUIsb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFUcEQsZ0JBQVcsR0FBMEIsRUFBRSxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixtQkFBYyxHQUE4QixFQUFFLENBQUM7UUFDL0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLG9CQUFlLEdBQXVCLElBQUksQ0FBQztRQUNuQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUVzQixDQUFDO0lBRWpFLFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoRyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW9CO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQzs4R0F6QlUsaUJBQWlCO2tHQUFqQixpQkFBaUIscVBDWjlCLGk2Q0F5Q0EsaTZCRDdCYSxpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTt5RkFLaEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJRWxlbWVudER0byB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IFNlbGVjdEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VsZWN0LWVsZW1lbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F2YS10cmVlLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1ub2RlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGVsZW1lbnRMaXN0PzogSUVsZW1lbnREdG9bXSB8IG51bGwgPSBbXTtcbiAgQElucHV0KCkgaW5kZW50ID0gJyc7XG4gIEBJbnB1dCgpIGV4cGFuc2lvblN0YXRlOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIEBJbnB1dCgpIGlzU2VsZWN0aW9uTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RlZENvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWxsb3dEYmxDbGljayA9IHRydWU7XG4gIHNlbGVjdGVkRWxlbWVudDogSUVsZW1lbnREdG8gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSAkZGVzdHJveSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlbGVjdEVsZW1lbnRTZXJ2aWNlOiBTZWxlY3RFbGVtZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNlbGVjdENsaWNrRWxlbWVudC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKChlbGVtZW50KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiRkZXN0cm95Lm5leHQodHJ1ZSk7XG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZXhwYW5kKGVsZW1lbnQ6IElFbGVtZW50RHRvKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbnNpb25TdGF0ZVtlbGVtZW50LmlkXSA9ICF0aGlzLmV4cGFuc2lvblN0YXRlW2VsZW1lbnQuaWRdO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRMaXN0XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRyZWUtbm9kZS13cmFwcGVyXCJcbiAgICBbY2xhc3Muc2VsZWN0XT1cIiFpc1NlbGVjdGlvbk1vZGUgJiYgZWxlbWVudC5pZCA9PT0gc2VsZWN0ZWRFbGVtZW50Py5pZFwiXG4gICAgW3N0eWxlLmJhY2tncm91bmRdPVwiIWlzU2VsZWN0aW9uTW9kZSAmJiBlbGVtZW50LmlkID09PSBzZWxlY3RlZEVsZW1lbnQ/LmlkID8gc2VsZWN0ZWRDb2xvciB8fCAnJyA6ICcnXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLW5vZGUtd3JhcHBlcl9fY29udGVudFwiPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgICpuZ0lmPVwiZWxlbWVudC5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJzsgZWxzZSBudWxsSWNvblwiXG4gICAgICAgIG1hdFJpcHBsZVxuICAgICAgICAoY2xpY2spPVwiZXhwYW5kKGVsZW1lbnQpXCJcbiAgICAgICAgY2xhc3M9XCJ0cmVlLW5vZGVfX2ljb25cIlxuICAgICAgPlxuICAgICAgICB7eyBleHBhbnNpb25TdGF0ZVtlbGVtZW50LmlkXSA/ICdleHBhbmRfbW9yZScgOiAnY2hldnJvbl9yaWdodCcgfX1cbiAgICAgIDwvbWF0LWljb24+XG4gICAgICA8YXZhLXRyZWUtaXRlbVxuICAgICAgICBbZWxlbWVudF09XCJlbGVtZW50XCJcbiAgICAgICAgW2V4cGFuc2lvblN0YXRlXT1cImV4cGFuc2lvblN0YXRlXCJcbiAgICAgICAgW2lzU2VsZWN0aW9uTW9kZV09XCJpc1NlbGVjdGlvbk1vZGVcIlxuICAgICAgICBbYWxsb3dEYmxDbGlja109XCJhbGxvd0RibENsaWNrXCJcbiAgICAgID48L2F2YS10cmVlLWl0ZW0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cImVsZW1lbnQuZWxlbWVudFR5cGVEaXNjcmltaW5hdG9yID09PSAnU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0bycgJiYgZXhwYW5zaW9uU3RhdGU/LltlbGVtZW50LmlkXVwiXG4gICAgW3N0eWxlLnBhZGRpbmdMZWZ0XT1cImluZGVudFwiXG4gID5cbiAgICA8YXZhLXRyZWUtbm9kZVxuICAgICAgW2VsZW1lbnRMaXN0XT1cImVsZW1lbnQgfCBncm91cENoaWxkRWxlbWVudHNcIlxuICAgICAgW2V4cGFuc2lvblN0YXRlXT1cImV4cGFuc2lvblN0YXRlXCJcbiAgICAgIFtpc1NlbGVjdGlvbk1vZGVdPVwiaXNTZWxlY3Rpb25Nb2RlXCJcbiAgICAgIFtzZWxlY3RlZENvbG9yXT1cInNlbGVjdGVkQ29sb3JcIlxuICAgICAgW2FsbG93RGJsQ2xpY2tdPVwiYWxsb3dEYmxDbGlja1wiXG4gICAgICBbaW5kZW50XT1cImluZGVudFwiXG4gICAgPjwvYXZhLXRyZWUtbm9kZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjbnVsbEljb24+XG4gIDxtYXQtaWNvbj48L21hdC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../tree-node/tree-node.component";
5
+ export class TreeStructureComponent {
6
+ constructor() {
7
+ this.serviceSpecification = null;
8
+ this.indent = '';
9
+ this.expansionState = {};
10
+ this.isSelectionMode = false;
11
+ this.selectedColor = null;
12
+ this.allowDblClick = true;
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeStructureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TreeStructureComponent, selector: "ava-tree-structure", inputs: { serviceSpecification: "serviceSpecification", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ava-tree-node\n *ngIf=\"serviceSpecification?.elements\"\n [elementList]=\"serviceSpecification?.elements\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n>\n</ava-tree-node>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TreeNodeComponent, selector: "ava-tree-node", inputs: ["elementList", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeStructureComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'ava-tree-structure', template: "<ava-tree-node\n *ngIf=\"serviceSpecification?.elements\"\n [elementList]=\"serviceSpecification?.elements\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n>\n</ava-tree-node>\n" }]
20
+ }], propDecorators: { serviceSpecification: [{
21
+ type: Input
22
+ }], indent: [{
23
+ type: Input
24
+ }], expansionState: [{
25
+ type: Input
26
+ }], isSelectionMode: [{
27
+ type: Input
28
+ }], selectedColor: [{
29
+ type: Input
30
+ }], allowDblClick: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1zdHJ1Y3R1cmUvdHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1zdHJ1Y3R1cmUvdHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1XLHlCQUFvQixHQUFtQyxJQUFJLENBQUM7UUFDNUQsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUMvQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7S0FDL0I7OEdBUFksc0JBQXNCO2tHQUF0QixzQkFBc0IsNFFDVG5DLHdUQVVBOzsyRkREYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzhCQUtyQixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdmEtdHJlZS1zdHJ1Y3R1cmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLXN0cnVjdHVyZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVTdHJ1Y3R1cmVDb21wb25lbnQge1xuICBASW5wdXQoKSBzZXJ2aWNlU3BlY2lmaWNhdGlvbjogU2VydmljZVNwZWNpZmljYXRpb25EdG8gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaW5kZW50ID0gJyc7XG4gIEBJbnB1dCgpIGV4cGFuc2lvblN0YXRlOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIEBJbnB1dCgpIGlzU2VsZWN0aW9uTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RlZENvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWxsb3dEYmxDbGljayA9IHRydWU7XG59XG4iLCI8YXZhLXRyZWUtbm9kZVxuICAqbmdJZj1cInNlcnZpY2VTcGVjaWZpY2F0aW9uPy5lbGVtZW50c1wiXG4gIFtlbGVtZW50TGlzdF09XCJzZXJ2aWNlU3BlY2lmaWNhdGlvbj8uZWxlbWVudHNcIlxuICBbaW5kZW50XT1cImluZGVudFwiXG4gIFtleHBhbnNpb25TdGF0ZV09XCJleHBhbnNpb25TdGF0ZVwiXG4gIFtpc1NlbGVjdGlvbk1vZGVdPVwiaXNTZWxlY3Rpb25Nb2RlXCJcbiAgW3NlbGVjdGVkQ29sb3JdPVwic2VsZWN0ZWRDb2xvclwiXG4gIFthbGxvd0RibENsaWNrXT1cImFsbG93RGJsQ2xpY2tcIlxuPlxuPC9hdmEtdHJlZS1ub2RlPlxuIl19
@@ -0,0 +1,23 @@
1
+ export const DEFAULT_FILTERS = [
2
+ (element, filter) => {
3
+ if (element.elementType === 'PositionDto' ||
4
+ element.elementType === 'ServiceSpecificationGroupDto' ||
5
+ element.elementType === 'NoteTextDto') {
6
+ return element.shortText?.trim().toLocaleLowerCase().includes(filter);
7
+ }
8
+ return false;
9
+ },
10
+ (element, filter) => {
11
+ if (element.elementType === 'ExecutionDescriptionDto') {
12
+ return element.label?.trim().toLocaleLowerCase().includes(filter);
13
+ }
14
+ return false;
15
+ },
16
+ (element, filter) => {
17
+ if (element.elementType === 'PositionDto' || element.elementType === 'ServiceSpecificationGroupDto') {
18
+ return element.itemNumber?.stringRepresentation?.includes(filter);
19
+ }
20
+ return false;
21
+ }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2RlZmF1bHRGaWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixDQUFDLE9BQW9CLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDdkMsSUFDRSxPQUFPLENBQUMsV0FBVyxLQUFLLGFBQWE7WUFDckMsT0FBTyxDQUFDLFdBQVcsS0FBSyw4QkFBOEI7WUFDdEQsT0FBTyxDQUFDLFdBQVcsS0FBSyxhQUFhLEVBQ3JDLENBQUM7WUFDRCxPQUFRLE9BQW9FLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RJLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxDQUFDLE9BQW9CLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDdkMsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLHlCQUF5QixFQUFFLENBQUM7WUFDdEQsT0FBUSxPQUFtQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsQ0FBQyxPQUFvQixFQUFFLE1BQWMsRUFBRSxFQUFFO1FBQ3ZDLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxhQUFhLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyw4QkFBOEIsRUFBRSxDQUFDO1lBQ3BHLE9BQVEsT0FBc0QsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8sIElFbGVtZW50RHRvLCBOb3RlVGV4dER0bywgUG9zaXRpb25EdG8sIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gfSBmcm9tICcuLi9tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZJTFRFUlMgPSBbXG4gIChlbGVtZW50OiBJRWxlbWVudER0bywgZmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoXG4gICAgICBlbGVtZW50LmVsZW1lbnRUeXBlID09PSAnUG9zaXRpb25EdG8nIHx8XG4gICAgICBlbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0bycgfHxcbiAgICAgIGVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdOb3RlVGV4dER0bydcbiAgICApIHtcbiAgICAgIHJldHVybiAoZWxlbWVudCBhcyBQb3NpdGlvbkR0byB8IFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gfCBOb3RlVGV4dER0bykuc2hvcnRUZXh0Py50cmltKCkudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcbiAgKGVsZW1lbnQ6IElFbGVtZW50RHRvLCBmaWx0ZXI6IHN0cmluZykgPT4ge1xuICAgIGlmIChlbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8nKSB7XG4gICAgICByZXR1cm4gKGVsZW1lbnQgYXMgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8pLmxhYmVsPy50cmltKCkudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcbiAgKGVsZW1lbnQ6IElFbGVtZW50RHRvLCBmaWx0ZXI6IHN0cmluZykgPT4ge1xuICAgIGlmIChlbGVtZW50LmVsZW1lbnRUeXBlID09PSAnUG9zaXRpb25EdG8nIHx8IGVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJykge1xuICAgICAgcmV0dXJuIChlbGVtZW50IGFzIFBvc2l0aW9uRHRvIHwgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0bykuaXRlbU51bWJlcj8uc3RyaW5nUmVwcmVzZW50YXRpb24/LmluY2x1ZGVzKGZpbHRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5dO1xuIl19
@@ -0,0 +1,11 @@
1
+ export const DEFAULT_TEXT_WORDS = {
2
+ textSearch: 'Suche',
3
+ textNothing: 'Nichts',
4
+ textNothingFiltered: 'Kein Filter',
5
+ textAll: 'Alle',
6
+ tooltipAllOpen: 'Alle aufklappen',
7
+ tooltipAllClose: 'Alle zuklappen',
8
+ tooltipAllAdd: 'Alle hinzufügen',
9
+ tooltipAllRemove: 'Alle entfernen'
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFRleHRXb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb25zdGFudHMvZGVmYXVsdFRleHRXb3Jkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUM1QyxVQUFVLEVBQUUsT0FBTztJQUNuQixXQUFXLEVBQUUsUUFBUTtJQUNyQixtQkFBbUIsRUFBRSxhQUFhO0lBQ2xDLE9BQU8sRUFBRSxNQUFNO0lBQ2YsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxlQUFlLEVBQUUsZ0JBQWdCO0lBQ2pDLGFBQWEsRUFBRSxpQkFBaUI7SUFDaEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElUZXh0V29yZHMge1xuICB0ZXh0U2VhcmNoPzogc3RyaW5nO1xuICB0ZXh0Tm90aGluZz86IHN0cmluZztcbiAgdGV4dE5vdGhpbmdGaWx0ZXJlZD86IHN0cmluZztcbiAgdGV4dEFsbD86IHN0cmluZztcbiAgdG9vbHRpcEFsbE9wZW4/OiBzdHJpbmc7XG4gIHRvb2x0aXBBbGxDbG9zZT86IHN0cmluZztcbiAgdG9vbHRpcEFsbEFkZD86IHN0cmluZztcbiAgdG9vbHRpcEFsbFJlbW92ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVF9XT1JEUzogSVRleHRXb3JkcyA9IHtcbiAgdGV4dFNlYXJjaDogJ1N1Y2hlJyxcbiAgdGV4dE5vdGhpbmc6ICdOaWNodHMnLFxuICB0ZXh0Tm90aGluZ0ZpbHRlcmVkOiAnS2VpbiBGaWx0ZXInLFxuICB0ZXh0QWxsOiAnQWxsZScsXG4gIHRvb2x0aXBBbGxPcGVuOiAnQWxsZSBhdWZrbGFwcGVuJyxcbiAgdG9vbHRpcEFsbENsb3NlOiAnQWxsZSB6dWtsYXBwZW4nLFxuICB0b29sdGlwQWxsQWRkOiAnQWxsZSBoaW56dWbDvGdlbicsXG4gIHRvb2x0aXBBbGxSZW1vdmU6ICdBbGxlIGVudGZlcm5lbidcbn07XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export const defaults = {
2
+ doubleClickTimeoutInMilliseconds: 300
3
+ };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2RlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixnQ0FBZ0MsRUFBRSxHQUFHO0NBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZGVmYXVsdHMgPSB7XG4gIGRvdWJsZUNsaWNrVGltZW91dEluTWlsbGlzZWNvbmRzOiAzMDBcbn07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { DEFAULT_FILTERS } from './defaultFilters';
2
+ import { DEFAULT_TEXT_WORDS } from './defaultTextWords';
3
+ import { defaults } from './defaults';
4
+ export { DEFAULT_FILTERS, DEFAULT_TEXT_WORDS, defaults };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0ZJTFRFUlMgfSBmcm9tICcuL2RlZmF1bHRGaWx0ZXJzJztcbmltcG9ydCB7IERFRkFVTFRfVEVYVF9XT1JEUyB9IGZyb20gJy4vZGVmYXVsdFRleHRXb3Jkcyc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4vZGVmYXVsdHMnO1xuXG5leHBvcnQgeyBERUZBVUxUX0ZJTFRFUlMsIERFRkFVTFRfVEVYVF9XT1JEUywgZGVmYXVsdHMgfTtcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/flat-elements.service";
4
+ export class SaveChangingViewDirective {
5
+ constructor(el, renderer, flatElementsService) {
6
+ this.el = el;
7
+ this.renderer = renderer;
8
+ this.flatElementsService = flatElementsService;
9
+ this.attributeValue = 'text';
10
+ }
11
+ ngAfterViewInit() {
12
+ const el = this.el?.nativeElement;
13
+ const id = el?.id;
14
+ if (id) {
15
+ const view = this.flatElementsService?.getChangedView(id);
16
+ switch (this.attributeValue) {
17
+ case 'icon':
18
+ if (view?.iconName) {
19
+ el.textContent = view.iconName;
20
+ }
21
+ if (view?.iconColor) {
22
+ this.renderer?.setStyle(el, 'color', view.iconColor);
23
+ }
24
+ break;
25
+ case 'text':
26
+ if (view?.textBold) {
27
+ this.renderer?.setStyle(el, 'font-weight', view.textBold);
28
+ }
29
+ if (view?.textColor) {
30
+ this.renderer?.setStyle(el, 'color', view.textColor);
31
+ }
32
+ break;
33
+ }
34
+ }
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SaveChangingViewDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FlatElementsService }], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: { attributeValue: "attributeValue" }, ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SaveChangingViewDirective, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: '[saveChangingView]'
43
+ }]
44
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FlatElementsService }], propDecorators: { attributeValue: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jaGFuZ2luZy12aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9kaXJlY3RpdmVzL3NhdmUtY2hhbmdpbmctdmlldy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkYsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixtQkFBd0M7UUFGeEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUx6QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQztJQU05QixDQUFDO0lBRUosZUFBZTtRQUNiLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsYUFBNEIsQ0FBQztRQUNqRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxNQUFNLElBQUksR0FBcUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU1RSxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxNQUFNO29CQUNULElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUNuQixFQUFFLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ2pDLENBQUM7b0JBQ0QsSUFBSSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDO29CQUNELE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUQsQ0FBQztvQkFDRCxJQUFJLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzt3QkFDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3ZELENBQUM7b0JBQ0QsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FsQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7eUlBRVUsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJVmlld0xpbmUgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBGbGF0RWxlbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxhdC1lbGVtZW50cy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NhdmVDaGFuZ2luZ1ZpZXddJ1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlQ2hhbmdpbmdWaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGF0dHJpYnV0ZVZhbHVlID0gJ3RleHQnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZmxhdEVsZW1lbnRzU2VydmljZTogRmxhdEVsZW1lbnRzU2VydmljZVxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBpZCA9IGVsPy5pZDtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGNvbnN0IHZpZXc6IElWaWV3TGluZSB8IG51bGwgPSB0aGlzLmZsYXRFbGVtZW50c1NlcnZpY2U/LmdldENoYW5nZWRWaWV3KGlkKTtcblxuICAgICAgc3dpdGNoICh0aGlzLmF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICAgIGlmICh2aWV3Py5pY29uTmFtZSkge1xuICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSB2aWV3Lmljb25OYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmlldz8uaWNvbkNvbG9yKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShlbCwgJ2NvbG9yJywgdmlldy5pY29uQ29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgaWYgKHZpZXc/LnRleHRCb2xkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShlbCwgJ2ZvbnQtd2VpZ2h0Jywgdmlldy50ZXh0Qm9sZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2aWV3Py50ZXh0Q29sb3IpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGVsLCAnY29sb3InLCB2aWV3LnRleHRDb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19