@dangl/angular-ava 0.1.1-fe--1-add-tree-p0053
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.
- package/README.md +1 -0
- package/esm2022/dangl-angular-ava.mjs +5 -0
- package/esm2022/lib/angular-ava.module.mjs +88 -0
- package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +356 -0
- package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +38 -0
- package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +99 -0
- package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +89 -0
- package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +52 -0
- package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +30 -0
- package/esm2022/lib/ava-tree/tree/constants/defaultFilters.mjs +6 -0
- package/esm2022/lib/ava-tree/tree/constants/defaultTextWords.mjs +11 -0
- package/esm2022/lib/ava-tree/tree/constants/index.mjs +4 -0
- package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +43 -0
- package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +199 -0
- package/esm2022/lib/ava-tree/tree/model/context-menu-data.model.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/function-view-line.model.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/index.mjs +4 -0
- package/esm2022/lib/ava-tree/tree/model/selecting.model.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/tableColumnType.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/tree-mode.model.mjs +7 -0
- package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +27 -0
- package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +23 -0
- package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +27 -0
- package/esm2022/lib/ava-tree/tree/services/expand-parent-group.service.mjs +32 -0
- package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +99 -0
- package/esm2022/lib/ava-tree/tree/services/keyboard-operation.service.mjs +114 -0
- package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +37 -0
- package/esm2022/lib/ava-tree/tree/services/tree-node-selection.service.mjs +133 -0
- package/esm2022/lib/version.mjs +10 -0
- package/esm2022/public-api.mjs +8 -0
- package/fesm2022/dangl-angular-ava.mjs +1174 -0
- package/fesm2022/dangl-angular-ava.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/angular-ava.module.d.ts +26 -0
- package/lib/ava-tree/tree/components/ava-tree/ava-tree.component.d.ts +77 -0
- package/lib/ava-tree/tree/components/list-structure/list-structure.component.d.ts +16 -0
- package/lib/ava-tree/tree/components/table-structure/table-structure.component.d.ts +34 -0
- package/lib/ava-tree/tree/components/tree-item/tree-item.component.d.ts +34 -0
- package/lib/ava-tree/tree/components/tree-node/tree-node.component.d.ts +22 -0
- package/lib/ava-tree/tree/components/tree-structure/tree-structure.component.d.ts +13 -0
- package/lib/ava-tree/tree/constants/defaultFilters.d.ts +1 -0
- package/lib/ava-tree/tree/constants/defaultTextWords.d.ts +11 -0
- package/lib/ava-tree/tree/constants/index.d.ts +3 -0
- package/lib/ava-tree/tree/directives/save-changing-view.directive.d.ts +12 -0
- package/lib/ava-tree/tree/model/ava-models.d.ts +1041 -0
- package/lib/ava-tree/tree/model/context-menu-data.model.d.ts +8 -0
- package/lib/ava-tree/tree/model/function-view-line.model.d.ts +11 -0
- package/lib/ava-tree/tree/model/index.d.ts +7 -0
- package/lib/ava-tree/tree/model/selecting.model.d.ts +14 -0
- package/lib/ava-tree/tree/model/tableColumnType.d.ts +6 -0
- package/lib/ava-tree/tree/model/tree-mode.model.d.ts +5 -0
- package/lib/ava-tree/tree/pipes/element-icon-name.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/pipes/element-item-number.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/pipes/element-text.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/services/expand-parent-group.service.d.ts +7 -0
- package/lib/ava-tree/tree/services/flat-elements.service.d.ts +28 -0
- package/lib/ava-tree/tree/services/keyboard-operation.service.d.ts +32 -0
- package/lib/ava-tree/tree/services/select-element.service.d.ts +30 -0
- package/lib/ava-tree/tree/services/tree-node-selection.service.d.ts +23 -0
- package/lib/version.d.ts +8 -0
- package/package.json +31 -0
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,99 @@
|
|
|
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 "projects/angular-ava/src/lib/ava-tree/tree/services/tree-node-selection.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "@angular/material/checkbox";
|
|
10
|
+
import * as i7 from "@angular/material/table";
|
|
11
|
+
import * as i8 from "../../directives/save-changing-view.directive";
|
|
12
|
+
import * as i9 from "../../pipes/element-icon-name.pipe";
|
|
13
|
+
import * as i10 from "../../pipes/element-text.pipe";
|
|
14
|
+
import * as i11 from "../../pipes/element-item-number.pipe";
|
|
15
|
+
export class TableStructureComponent {
|
|
16
|
+
constructor(selectElementService, treeNodeSelectionService, cdr) {
|
|
17
|
+
this.selectElementService = selectElementService;
|
|
18
|
+
this.treeNodeSelectionService = treeNodeSelectionService;
|
|
19
|
+
this.cdr = cdr;
|
|
20
|
+
this.filteredElementList = [];
|
|
21
|
+
this.isSelectionMode = false;
|
|
22
|
+
this.addTableColumns = [];
|
|
23
|
+
this.selectedColor = null;
|
|
24
|
+
this.displayedColumns = [];
|
|
25
|
+
this.isAllowOneClick = true;
|
|
26
|
+
this.selectedElement = null;
|
|
27
|
+
this.preselectedElement = null;
|
|
28
|
+
this.timerStop = null;
|
|
29
|
+
this.checkedElements = {};
|
|
30
|
+
this.$destroy = new Subject();
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
|
|
34
|
+
this.selectedElement = element;
|
|
35
|
+
});
|
|
36
|
+
this.selectElementService.preselectedElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
|
|
37
|
+
this.preselectedElement = element;
|
|
38
|
+
});
|
|
39
|
+
if (this.isSelectionMode) {
|
|
40
|
+
this.displayedColumns = ['icon', 'checkbox', 'itemNumber', 'text', ...this.addTableColumns.map((item) => item.name)];
|
|
41
|
+
this.treeNodeSelectionService.treeNodeSelecting.pipe(takeUntil(this.$destroy)).subscribe((treeNodeSelecting) => {
|
|
42
|
+
this.checkedElements = treeNodeSelecting;
|
|
43
|
+
this.cdr.detectChanges();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.displayedColumns = ['icon', 'itemNumber', 'text', ...this.addTableColumns.map((item) => item.name)];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
this.timerStop && clearTimeout(this.timerStop);
|
|
52
|
+
this.$destroy.next(true);
|
|
53
|
+
this.$destroy.complete();
|
|
54
|
+
}
|
|
55
|
+
select(row) {
|
|
56
|
+
if (this.isSelectionMode) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (this.isAllowOneClick) {
|
|
60
|
+
this.isAllowOneClick = false;
|
|
61
|
+
this.timerStop = setTimeout(() => {
|
|
62
|
+
this.selectElementService.setClickElement(this.selectedElement?.id === row.id ? null : row);
|
|
63
|
+
this.isAllowOneClick = true;
|
|
64
|
+
}, 300);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
dblSelect(row) {
|
|
68
|
+
if (this.isSelectionMode) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this.timerStop && clearTimeout(this.timerStop);
|
|
72
|
+
this.selectElementService.setDblClickElement(row);
|
|
73
|
+
this.isAllowOneClick = true;
|
|
74
|
+
}
|
|
75
|
+
openContextMenu(event, row) {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
this.selectElementService.setContextMenuElement({ position: { x: `${event.x}px`, y: `${event.y}px` }, node: row });
|
|
78
|
+
}
|
|
79
|
+
changeSelecting(element, event) {
|
|
80
|
+
this.treeNodeSelectionService.changeSelecting(event, element.id);
|
|
81
|
+
}
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TableStructureComponent, deps: [{ token: i1.SelectElementService }, { token: i2.TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: TableStructureComponent, selector: "ava-table-structure", inputs: { functionView: "functionView", filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", addTableColumns: "addTableColumns", selectedColor: "selectedColor" }, ngImport: i0, template: "<table\r\n mat-table\r\n [dataSource]=\"filteredElementList\"\r\n>\r\n <ng-container matColumnDef=\"icon\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n ></th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n class=\"table-cell-small-width\"\r\n >\r\n <mat-icon\r\n class=\"icon-element\"\r\n tdChangingIconView\r\n >\r\n {{ row | elementIconName }}\r\n </mat-icon>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"checkbox\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n ></th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n class=\"table-cell-small-width\"\r\n >\r\n <mat-checkbox\r\n class=\"checkbox\"\r\n color=\"primary\"\r\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\r\n [(ngModel)]=\"checkedElements[element.id].checked\"\r\n (ngModelChange)=\"changeSelecting(element, $event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"itemNumber\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n >\r\n OZ\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\r\n >\r\n <div\r\n class=\"text-element\"\r\n tdChangingTextView\r\n >\r\n {{ row | elementItemNumber }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"text\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n >\r\n Text\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n class=\"table-text\"\r\n >\r\n <div\r\n class=\"text-element\"\r\n tdChangingTextView\r\n >\r\n {{ row | elementText }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\r\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n >\r\n {{ oneColumn.title }}\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n >\r\n <div\r\n [style.textAlign]=\"oneColumn.align\"\r\n tdChangingTextView\r\n >\r\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <tr\r\n mat-header-row\r\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\r\n class=\"mat-header-row\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n (click)=\"select(row)\"\r\n (dblclick)=\"dblSelect(row)\"\r\n (contextmenu)=\"openContextMenu($event, row)\"\r\n [ngClass]=\"{\r\n choose: !isSelectionMode && row.id === preselectedElement?.id,\r\n select: !isSelectionMode && row.id === selectedElement?.id\r\n }\"\r\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\r\n [id]=\"row.id\"\r\n trSaveChangingView\r\n ></tr>\r\n</table>\r\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: ["disableRipple", "color", "tabIndex"], 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: "[trSaveChangingView]" }, { 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" }] }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TableStructureComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{ selector: 'ava-table-structure', template: "<table\r\n mat-table\r\n [dataSource]=\"filteredElementList\"\r\n>\r\n <ng-container matColumnDef=\"icon\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n ></th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n class=\"table-cell-small-width\"\r\n >\r\n <mat-icon\r\n class=\"icon-element\"\r\n tdChangingIconView\r\n >\r\n {{ row | elementIconName }}\r\n </mat-icon>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"checkbox\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n ></th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n class=\"table-cell-small-width\"\r\n >\r\n <mat-checkbox\r\n class=\"checkbox\"\r\n color=\"primary\"\r\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\r\n [(ngModel)]=\"checkedElements[element.id].checked\"\r\n (ngModelChange)=\"changeSelecting(element, $event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"itemNumber\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n >\r\n OZ\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\r\n >\r\n <div\r\n class=\"text-element\"\r\n tdChangingTextView\r\n >\r\n {{ row | elementItemNumber }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"text\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n >\r\n Text\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n class=\"table-text\"\r\n >\r\n <div\r\n class=\"text-element\"\r\n tdChangingTextView\r\n >\r\n {{ row | elementText }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\r\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n >\r\n {{ oneColumn.title }}\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row\"\r\n >\r\n <div\r\n [style.textAlign]=\"oneColumn.align\"\r\n tdChangingTextView\r\n >\r\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <tr\r\n mat-header-row\r\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\r\n class=\"mat-header-row\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n (click)=\"select(row)\"\r\n (dblclick)=\"dblSelect(row)\"\r\n (contextmenu)=\"openContextMenu($event, row)\"\r\n [ngClass]=\"{\r\n choose: !isSelectionMode && row.id === preselectedElement?.id,\r\n select: !isSelectionMode && row.id === selectedElement?.id\r\n }\"\r\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\r\n [id]=\"row.id\"\r\n trSaveChangingView\r\n ></tr>\r\n</table>\r\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"] }]
|
|
88
|
+
}], ctorParameters: function () { return [{ type: i1.SelectElementService }, { type: i2.TreeNodeSelectionService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { functionView: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], filteredElementList: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], isSelectionMode: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], addTableColumns: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], selectedColor: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RydWN0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb21wb25lbnRzL3RhYmxlLXN0cnVjdHVyZS90YWJsZS1zdHJ1Y3R1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdGFibGUtc3RydWN0dXJlL3RhYmxlLXN0cnVjdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFhMUMsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsWUFDUyxvQkFBMEMsRUFDekMsd0JBQWtELEVBQ2xELEdBQXNCO1FBRnZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDekMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxCdkIsd0JBQW1CLEdBQWtCLEVBQUUsQ0FBQztRQUN4QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBQzdDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUMvQixvQkFBZSxHQUF1QixJQUFJLENBQUM7UUFDM0MsdUJBQWtCLEdBQXVCLElBQUksQ0FBQztRQUN0QyxjQUFTLEdBQXlDLElBQUksQ0FBQztRQUMvRCxvQkFBZSxHQUVYLEVBQUUs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QUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWlCLEVBQUUsR0FBZ0I7UUFDakQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUNsRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQzs4R0FqRlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIseVBDZnBDLDZ5R0FpSUE7OzJGRGxIYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCO2tMQUt0QixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IElFbGVtZW50RHRvLCBUYWJsZUNvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VsZWN0LWVsZW1lbnQuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RpbmdFbGVtZW50c1R5cGUgfSBmcm9tICdwcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvc2VsZWN0aW5nLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAncHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3NlcnZpY2VzL3RyZWUtbm9kZS1zZWxlY3Rpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F2YS10YWJsZS1zdHJ1Y3R1cmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1zdHJ1Y3R1cmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLXN0cnVjdHVyZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVN0cnVjdHVyZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZnVuY3Rpb25WaWV3ITogYW55W107XHJcbiAgQElucHV0KCkgZmlsdGVyZWRFbGVtZW50TGlzdDogSUVsZW1lbnREdG9bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGlzU2VsZWN0aW9uTW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFkZFRhYmxlQ29sdW1uczogVGFibGVDb2x1bW5UeXBlW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgaXNBbGxvd09uZUNsaWNrID0gdHJ1ZTtcclxuICBzZWxlY3RlZEVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJlc2VsZWN0ZWRFbGVtZW50OiBJRWxlbWVudER0byB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgdGltZXJTdG9wOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xyXG4gIGNoZWNrZWRFbGVtZW50czoge1xyXG4gICAgW2VsZW1lbnRJZDogc3RyaW5nXTogU2VsZWN0aW5nRWxlbWVudHNUeXBlO1xyXG4gIH0gPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSAkZGVzdHJveSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlbGVjdEVsZW1lbnRTZXJ2aWNlOiBTZWxlY3RFbGVtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgdHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlOiBUcmVlTm9kZVNlbGVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZWxlY3RDbGlja0VsZW1lbnQucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveSkpLnN1YnNjcmliZSgoZWxlbWVudCkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2UucHJlc2VsZWN0ZWRFbGVtZW50LnBpcGUodGFrZVVudGlsKHRoaXMuJGRlc3Ryb3kpKS5zdWJzY3JpYmUoKGVsZW1lbnQpID0+IHtcclxuICAgICAgdGhpcy5wcmVzZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25Nb2RlKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IFsnaWNvbicsICdjaGVja2JveCcsICdpdGVtTnVtYmVyJywgJ3RleHQnLCAuLi50aGlzLmFkZFRhYmxlQ29sdW1ucy5tYXAoKGl0ZW0pID0+IGl0ZW0ubmFtZSldO1xyXG4gICAgICB0aGlzLnRyZWVOb2RlU2VsZWN0aW9uU2VydmljZS50cmVlTm9kZVNlbGVjdGluZy5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKCh0cmVlTm9kZVNlbGVjdGluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZEVsZW1lbnRzID0gdHJlZU5vZGVTZWxlY3Rpbmc7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IFsnaWNvbicsICdpdGVtTnVtYmVyJywgJ3RleHQnLCAuLi50aGlzLmFkZFRhYmxlQ29sdW1ucy5tYXAoKGl0ZW0pID0+IGl0ZW0ubmFtZSldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVyU3RvcCAmJiBjbGVhclRpbWVvdXQodGhpcy50aW1lclN0b3ApO1xyXG5cclxuICAgIHRoaXMuJGRlc3Ryb3kubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdChyb3c6IElFbGVtZW50RHRvKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdGlvbk1vZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzQWxsb3dPbmVDbGljaykge1xyXG4gICAgICB0aGlzLmlzQWxsb3dPbmVDbGljayA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRpbWVyU3RvcCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0Q2xpY2tFbGVtZW50KHRoaXMuc2VsZWN0ZWRFbGVtZW50Py5pZCA9PT0gcm93LmlkID8gbnVsbCA6IHJvdyk7XHJcbiAgICAgICAgdGhpcy5pc0FsbG93T25lQ2xpY2sgPSB0cnVlO1xyXG4gICAgICB9LCAzMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGJsU2VsZWN0KHJvdzogSUVsZW1lbnREdG8pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU2VsZWN0aW9uTW9kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50aW1lclN0b3AgJiYgY2xlYXJUaW1lb3V0KHRoaXMudGltZXJTdG9wKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNldERibENsaWNrRWxlbWVudChyb3cpO1xyXG4gICAgdGhpcy5pc0FsbG93T25lQ2xpY2sgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50LCByb3c6IElFbGVtZW50RHRvKTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZXRDb250ZXh0TWVudUVsZW1lbnQoeyBwb3NpdGlvbjogeyB4OiBgJHtldmVudC54fXB4YCwgeTogYCR7ZXZlbnQueX1weGAgfSwgbm9kZTogcm93IH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU2VsZWN0aW5nKGVsZW1lbnQ6IElFbGVtZW50RHRvLCBldmVudDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy50cmVlTm9kZVNlbGVjdGlvblNlcnZpY2UuY2hhbmdlU2VsZWN0aW5nKGV2ZW50LCBlbGVtZW50LmlkKTtcclxuICB9XHJcbn1cclxuIiwiPHRhYmxlXHJcbiAgbWF0LXRhYmxlXHJcbiAgW2RhdGFTb3VyY2VdPVwiZmlsdGVyZWRFbGVtZW50TGlzdFwiXHJcbj5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImljb25cIj5cclxuICAgIDx0aFxyXG4gICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgKm1hdEhlYWRlckNlbGxEZWZcclxuICAgID48L3RoPlxyXG4gICAgPHRkXHJcbiAgICAgIG1hdC1jZWxsXHJcbiAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXHJcbiAgICAgIGNsYXNzPVwidGFibGUtY2VsbC1zbWFsbC13aWR0aFwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIGNsYXNzPVwiaWNvbi1lbGVtZW50XCJcclxuICAgICAgICB0ZENoYW5naW5nSWNvblZpZXdcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHJvdyB8IGVsZW1lbnRJY29uTmFtZSB9fVxyXG4gICAgICA8L21hdC1pY29uPlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjaGVja2JveFwiPlxyXG4gICAgPHRoXHJcbiAgICAgIG1hdC1oZWFkZXItY2VsbFxyXG4gICAgICAqbWF0SGVhZGVyQ2VsbERlZlxyXG4gICAgPjwvdGg+XHJcbiAgICA8dGRcclxuICAgICAgbWF0LWNlbGxcclxuICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXHJcbiAgICAgIGNsYXNzPVwidGFibGUtY2VsbC1zbWFsbC13aWR0aFwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICBjbGFzcz1cImNoZWNrYm94XCJcclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgIFtpbmRldGVybWluYXRlXT1cImNoZWNrZWRFbGVtZW50c1tlbGVtZW50LmlkXS5pbmRldGVybWluYXRlXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cImNoZWNrZWRFbGVtZW50c1tlbGVtZW50LmlkXS5jaGVja2VkXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VTZWxlY3RpbmcoZWxlbWVudCwgJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIml0ZW1OdW1iZXJcIj5cclxuICAgIDx0aFxyXG4gICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgKm1hdEhlYWRlckNlbGxEZWZcclxuICAgID5cclxuICAgICAgT1pcclxuICAgIDwvdGg+XHJcbiAgICA8dGRcclxuICAgICAgbWF0LWNlbGxcclxuICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcclxuICAgICAgW3N0eWxlLndpZHRoLmNoXT1cInJvdz8uaXRlbU51bWJlcj8uc3RyaW5nUmVwcmVzZW50YXRpb24ubGVuZ3RoXCJcclxuICAgID5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1lbGVtZW50XCJcclxuICAgICAgICB0ZENoYW5naW5nVGV4dFZpZXdcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHJvdyB8IGVsZW1lbnRJdGVtTnVtYmVyIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0ZXh0XCI+XHJcbiAgICA8dGhcclxuICAgICAgbWF0LWhlYWRlci1jZWxsXHJcbiAgICAgICptYXRIZWFkZXJDZWxsRGVmXHJcbiAgICA+XHJcbiAgICAgIFRleHRcclxuICAgIDwvdGg+XHJcbiAgICA8dGRcclxuICAgICAgbWF0LWNlbGxcclxuICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcclxuICAgICAgY2xhc3M9XCJ0YWJsZS10ZXh0XCJcclxuICAgID5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1lbGVtZW50XCJcclxuICAgICAgICB0ZENoYW5naW5nVGV4dFZpZXdcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHJvdyB8IGVsZW1lbnRUZXh0IH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb25lQ29sdW1uIG9mIGFkZFRhYmxlQ29sdW1uc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ7eyBvbmVDb2x1bW4ubmFtZSB9fVwiPlxyXG4gICAgICA8dGhcclxuICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgb25lQ29sdW1uLnRpdGxlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgIG1hdC1jZWxsXHJcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIFtzdHlsZS50ZXh0QWxpZ25dPVwib25lQ29sdW1uLmFsaWduXCJcclxuICAgICAgICAgIHRkQ2hhbmdpbmdUZXh0Vmlld1xyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7ICFvbmVDb2x1bW4ubnVtYmVyRm9ybWF0ID8gcm93W29uZUNvbHVtbi5uYW1lXSA6IChyb3dbb25lQ29sdW1uLm5hbWVdIHwgbnVtYmVyOiBvbmVDb2x1bW4ubnVtYmVyRm9ybWF0KSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDx0clxyXG4gICAgbWF0LWhlYWRlci1yb3dcclxuICAgICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6IHRydWVcIlxyXG4gICAgY2xhc3M9XCJtYXQtaGVhZGVyLXJvd1wiXHJcbiAgPjwvdHI+XHJcbiAgPHRyXHJcbiAgICBtYXQtcm93XHJcbiAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiXHJcbiAgICAoY2xpY2spPVwic2VsZWN0KHJvdylcIlxyXG4gICAgKGRibGNsaWNrKT1cImRibFNlbGVjdChyb3cpXCJcclxuICAgIChjb250ZXh0bWVudSk9XCJvcGVuQ29udGV4dE1lbnUoJGV2ZW50LCByb3cpXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgY2hvb3NlOiAhaXNTZWxlY3Rpb25Nb2RlICYmIHJvdy5pZCA9PT0gcHJlc2VsZWN0ZWRFbGVtZW50Py5pZCxcclxuICAgICAgc2VsZWN0OiAhaXNTZWxlY3Rpb25Nb2RlICYmIHJvdy5pZCA9PT0gc2VsZWN0ZWRFbGVtZW50Py5pZFxyXG4gICAgfVwiXHJcbiAgICBbc3R5bGUuYmFja2dyb3VuZF09XCIhaXNTZWxlY3Rpb25Nb2RlICYmIHJvdy5pZCA9PT0gc2VsZWN0ZWRFbGVtZW50Py5pZCA/IHNlbGVjdGVkQ29sb3IgfHwgJycgOiAnJ1wiXHJcbiAgICBbaWRdPVwicm93LmlkXCJcclxuICAgIHRyU2F2ZUNoYW5naW5nVmlld1xyXG4gID48L3RyPlxyXG48L3RhYmxlPlxyXG4iXX0=
|
|
@@ -0,0 +1,89 @@
|
|
|
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 "projects/angular-ava/src/lib/ava-tree/tree/services/tree-node-selection.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "@angular/material/checkbox";
|
|
10
|
+
import * as i7 from "../../directives/save-changing-view.directive";
|
|
11
|
+
import * as i8 from "../../pipes/element-icon-name.pipe";
|
|
12
|
+
import * as i9 from "../../pipes/element-text.pipe";
|
|
13
|
+
import * as i10 from "../../pipes/element-item-number.pipe";
|
|
14
|
+
export class TreeItemComponent {
|
|
15
|
+
constructor(selectElementService, treeNodeSelectionService, cdr) {
|
|
16
|
+
this.selectElementService = selectElementService;
|
|
17
|
+
this.treeNodeSelectionService = treeNodeSelectionService;
|
|
18
|
+
this.cdr = cdr;
|
|
19
|
+
this.element = {};
|
|
20
|
+
this.expansionState = {};
|
|
21
|
+
this.isSelectionMode = false;
|
|
22
|
+
this.selectedElement = null;
|
|
23
|
+
this.preselectedElement = null;
|
|
24
|
+
this.isAllowOneClick = true;
|
|
25
|
+
this.timerStop = null;
|
|
26
|
+
this.$destroy = new Subject();
|
|
27
|
+
this.checkedElements = {};
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => (this.selectedElement = element));
|
|
31
|
+
this.selectElementService.preselectedElement.pipe(takeUntil(this.$destroy)).subscribe((element) => (this.preselectedElement = element));
|
|
32
|
+
if (this.isSelectionMode) {
|
|
33
|
+
this.treeNodeSelectionService.treeNodeSelecting.pipe(takeUntil(this.$destroy)).subscribe((treeNodeSelecting) => {
|
|
34
|
+
this.checkedElements = treeNodeSelecting;
|
|
35
|
+
this.cdr.detectChanges();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
this.timerStop && clearTimeout(this.timerStop);
|
|
41
|
+
this.$destroy.next(true);
|
|
42
|
+
this.$destroy.complete();
|
|
43
|
+
}
|
|
44
|
+
expand() {
|
|
45
|
+
if (this.element) {
|
|
46
|
+
this.expansionState[this.element.id] = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
select() {
|
|
50
|
+
if (this.isAllowOneClick) {
|
|
51
|
+
this.isAllowOneClick = false;
|
|
52
|
+
this.timerStop = setTimeout(() => {
|
|
53
|
+
this.selectElementService.setClickElement(this.selectedElement?.id === this.element.id ? null : this.element);
|
|
54
|
+
if (this.element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {
|
|
55
|
+
this.expand();
|
|
56
|
+
}
|
|
57
|
+
this.isAllowOneClick = true;
|
|
58
|
+
}, 300);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
dblSelect() {
|
|
62
|
+
this.timerStop && clearTimeout(this.timerStop);
|
|
63
|
+
this.selectElementService.setDblClickElement(this.element);
|
|
64
|
+
if (this.element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {
|
|
65
|
+
this.expand();
|
|
66
|
+
}
|
|
67
|
+
this.isAllowOneClick = true;
|
|
68
|
+
}
|
|
69
|
+
openContextMenu(event) {
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
this.selectElementService.setContextMenuElement({ position: { x: `${event.x}px`, y: `${event.y}px` }, node: this.element });
|
|
72
|
+
}
|
|
73
|
+
changeSelecting(element, event) {
|
|
74
|
+
this.treeNodeSelectionService.changeSelecting(event, element.id);
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TreeItemComponent, deps: [{ token: i1.SelectElementService }, { token: i2.TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: TreeItemComponent, selector: "ava-tree-item", inputs: { element: "element", expansionState: "expansionState", isSelectionMode: "isSelectionMode" }, ngImport: i0, template: "<div\r\n *ngIf=\"element\"\r\n (click)=\"select()\"\r\n (dblclick)=\"dblSelect()\"\r\n (contextmenu)=\"openContextMenu($event)\"\r\n class=\"ava-tree-item\"\r\n [id]=\"element.id\"\r\n trSaveChangingView\r\n>\r\n <mat-icon\r\n class=\"ava-tree-item__icon\"\r\n tdChangingIconView\r\n >{{ element | elementIconName }}</mat-icon\r\n >\r\n <div\r\n *ngIf=\"!isSelectionMode\"\r\n class=\"ava-tree-item__text\"\r\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\r\n tdChangingTextView\r\n >\r\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\r\n </div>\r\n <mat-checkbox\r\n *ngIf=\"isSelectionMode\"\r\n class=\"ava-tree-item__checkbox\"\r\n color=\"primary\"\r\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\r\n [(ngModel)]=\"checkedElements[element.id].checked\"\r\n (ngModelChange)=\"changeSelecting(element, $event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <div\r\n class=\"ava-tree-item__text\"\r\n tdChangingTextView\r\n >\r\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\r\n </div>\r\n </mat-checkbox>\r\n</div>\r\n\r\n<ng-template #text>\r\n <ng-container\r\n *ngIf=\"\r\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\r\n else simpleText\r\n \"\r\n >\r\n {{ element | elementItemNumber }} - {{ element | elementText }}\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #simpleText>\r\n {{ element | elementText }}\r\n</ng-template>\r\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: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.SaveChangingViewDirective, selector: "[trSaveChangingView]" }, { kind: "pipe", type: i8.ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: i9.ElementTextPipe, name: "elementText" }, { kind: "pipe", type: i10.ElementItemNumberPipe, name: "elementItemNumber" }] }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TreeItemComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'ava-tree-item', template: "<div\r\n *ngIf=\"element\"\r\n (click)=\"select()\"\r\n (dblclick)=\"dblSelect()\"\r\n (contextmenu)=\"openContextMenu($event)\"\r\n class=\"ava-tree-item\"\r\n [id]=\"element.id\"\r\n trSaveChangingView\r\n>\r\n <mat-icon\r\n class=\"ava-tree-item__icon\"\r\n tdChangingIconView\r\n >{{ element | elementIconName }}</mat-icon\r\n >\r\n <div\r\n *ngIf=\"!isSelectionMode\"\r\n class=\"ava-tree-item__text\"\r\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\r\n tdChangingTextView\r\n >\r\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\r\n </div>\r\n <mat-checkbox\r\n *ngIf=\"isSelectionMode\"\r\n class=\"ava-tree-item__checkbox\"\r\n color=\"primary\"\r\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\r\n [(ngModel)]=\"checkedElements[element.id].checked\"\r\n (ngModelChange)=\"changeSelecting(element, $event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <div\r\n class=\"ava-tree-item__text\"\r\n tdChangingTextView\r\n >\r\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\r\n </div>\r\n </mat-checkbox>\r\n</div>\r\n\r\n<ng-template #text>\r\n <ng-container\r\n *ngIf=\"\r\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\r\n else simpleText\r\n \"\r\n >\r\n {{ element | elementItemNumber }} - {{ element | elementText }}\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #simpleText>\r\n {{ element | elementText }}\r\n</ng-template>\r\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"] }]
|
|
82
|
+
}], ctorParameters: function () { return [{ type: i1.SelectElementService }, { type: i2.TreeNodeSelectionService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { element: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], expansionState: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], isSelectionMode: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}] } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb21wb25lbnRzL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1pdGVtL3RyZWUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFhMUMsTUFBTSxPQUFPLGlCQUFpQjtJQWM1QixZQUNTLG9CQUEwQyxFQUN6Qyx3QkFBa0QsRUFDbEQsR0FBc0I7UUFGdkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUN6Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBaEJ2QixZQUFPLEdBQWdCLEVBQWlCLENBQUM7UUFDekMsbUJBQWMsR0FBOEIsRUFBRSxDQUFDO1FBQy9DLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLG9CQUFlLEdBQXVCLElBQUksQ0FBQztRQUMzQyx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGNBQVMsR0FBeUMsSUFBSSxDQUFDO1FBQ3ZELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRTFDLG9CQUFlLEdBRVgsRUFBRSxDQUFDO0lBTUosQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMs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RUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFvQixFQUFFLEtBQWM7UUFDbEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OEdBMUVVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJKQ2Y5QixnbERBcURBOzsyRkR0Q2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7a0xBS2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSUVsZW1lbnREdG8gfSBmcm9tICcuLi8uLi9tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VsZWN0LWVsZW1lbnQuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RpbmdFbGVtZW50c1R5cGUgfSBmcm9tICdwcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvc2VsZWN0aW5nLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAncHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3NlcnZpY2VzL3RyZWUtbm9kZS1zZWxlY3Rpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F2YS10cmVlLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtaXRlbS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBlbGVtZW50OiBJRWxlbWVudER0byA9IHt9IGFzIElFbGVtZW50RHRvO1xyXG4gIEBJbnB1dCgpIGV4cGFuc2lvblN0YXRlOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcbiAgQElucHV0KCkgaXNTZWxlY3Rpb25Nb2RlID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRFbGVtZW50OiBJRWxlbWVudER0byB8IG51bGwgPSBudWxsO1xyXG4gIHByZXNlbGVjdGVkRWxlbWVudDogSUVsZW1lbnREdG8gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGlzQWxsb3dPbmVDbGljayA9IHRydWU7XHJcbiAgcHJpdmF0ZSB0aW1lclN0b3A6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSAkZGVzdHJveSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNoZWNrZWRFbGVtZW50czoge1xyXG4gICAgW2VsZW1lbnRJZDogc3RyaW5nXTogU2VsZWN0aW5nRWxlbWVudHNUeXBlO1xyXG4gIH0gPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VsZWN0RWxlbWVudFNlcnZpY2U6IFNlbGVjdEVsZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmVlTm9kZVNlbGVjdGlvblNlcnZpY2U6IFRyZWVOb2RlU2VsZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNlbGVjdENsaWNrRWxlbWVudC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKChlbGVtZW50KSA9PiAodGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50KSk7XHJcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnByZXNlbGVjdGVkRWxlbWVudC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSkuc3Vic2NyaWJlKChlbGVtZW50KSA9PiAodGhpcy5wcmVzZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50KSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25Nb2RlKSB7XHJcbiAgICAgIHRoaXMudHJlZU5vZGVTZWxlY3Rpb25TZXJ2aWNlLnRyZWVOb2RlU2VsZWN0aW5nLnBpcGUodGFrZVVudGlsKHRoaXMuJGRlc3Ryb3kpKS5zdWJzY3JpYmUoKHRyZWVOb2RlU2VsZWN0aW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkRWxlbWVudHMgPSB0cmVlTm9kZVNlbGVjdGluZztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVyU3RvcCAmJiBjbGVhclRpbWVvdXQodGhpcy50aW1lclN0b3ApO1xyXG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudCkge1xyXG4gICAgICB0aGlzLmV4cGFuc2lvblN0YXRlW3RoaXMuZWxlbWVudC5pZF0gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNBbGxvd09uZUNsaWNrKSB7XHJcbiAgICAgIHRoaXMuaXNBbGxvd09uZUNsaWNrID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudGltZXJTdG9wID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZXRDbGlja0VsZW1lbnQodGhpcy5zZWxlY3RlZEVsZW1lbnQ/LmlkID09PSB0aGlzLmVsZW1lbnQuaWQgPyBudWxsIDogdGhpcy5lbGVtZW50KTtcclxuICAgICAgICBpZiAodGhpcy5lbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvciA9PT0gJ1NlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8nKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzQWxsb3dPbmVDbGljayA9IHRydWU7XHJcbiAgICAgIH0sIDMwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkYmxTZWxlY3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVyU3RvcCAmJiBjbGVhclRpbWVvdXQodGhpcy50aW1lclN0b3ApO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0RGJsQ2xpY2tFbGVtZW50KHRoaXMuZWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvciA9PT0gJ1NlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8nKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzQWxsb3dPbmVDbGljayA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNldENvbnRleHRNZW51RWxlbWVudCh7IHBvc2l0aW9uOiB7IHg6IGAke2V2ZW50Lnh9cHhgLCB5OiBgJHtldmVudC55fXB4YCB9LCBub2RlOiB0aGlzLmVsZW1lbnQgfSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWxlY3RpbmcoZWxlbWVudDogSUVsZW1lbnREdG8sIGV2ZW50OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyZWVOb2RlU2VsZWN0aW9uU2VydmljZS5jaGFuZ2VTZWxlY3RpbmcoZXZlbnQsIGVsZW1lbnQuaWQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJlbGVtZW50XCJcclxuICAoY2xpY2spPVwic2VsZWN0KClcIlxyXG4gIChkYmxjbGljayk9XCJkYmxTZWxlY3QoKVwiXHJcbiAgKGNvbnRleHRtZW51KT1cIm9wZW5Db250ZXh0TWVudSgkZXZlbnQpXCJcclxuICBjbGFzcz1cImF2YS10cmVlLWl0ZW1cIlxyXG4gIFtpZF09XCJlbGVtZW50LmlkXCJcclxuICB0clNhdmVDaGFuZ2luZ1ZpZXdcclxuPlxyXG4gIDxtYXQtaWNvblxyXG4gICAgY2xhc3M9XCJhdmEtdHJlZS1pdGVtX19pY29uXCJcclxuICAgIHRkQ2hhbmdpbmdJY29uVmlld1xyXG4gICAgPnt7IGVsZW1lbnQgfCBlbGVtZW50SWNvbk5hbWUgfX08L21hdC1pY29uXHJcbiAgPlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiIWlzU2VsZWN0aW9uTW9kZVwiXHJcbiAgICBjbGFzcz1cImF2YS10cmVlLWl0ZW1fX3RleHRcIlxyXG4gICAgW2NsYXNzLmNob29zZV09XCIhaXNTZWxlY3Rpb25Nb2RlICYmIGVsZW1lbnQuaWQgPT09IHByZXNlbGVjdGVkRWxlbWVudD8uaWRcIlxyXG4gICAgdGRDaGFuZ2luZ1RleHRWaWV3XHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1jaGVja2JveFxyXG4gICAgKm5nSWY9XCJpc1NlbGVjdGlvbk1vZGVcIlxyXG4gICAgY2xhc3M9XCJhdmEtdHJlZS1pdGVtX19jaGVja2JveFwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgW2luZGV0ZXJtaW5hdGVdPVwiY2hlY2tlZEVsZW1lbnRzW2VsZW1lbnQuaWRdLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJjaGVja2VkRWxlbWVudHNbZWxlbWVudC5pZF0uY2hlY2tlZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VTZWxlY3RpbmcoZWxlbWVudCwgJGV2ZW50KVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXZhLXRyZWUtaXRlbV9fdGV4dFwiXHJcbiAgICAgIHRkQ2hhbmdpbmdUZXh0Vmlld1xyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRleHRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWNoZWNrYm94PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGV4dD5cclxuICA8bmctY29udGFpbmVyXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBlbGVtZW50Py5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJyB8fCBlbGVtZW50Py5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdQb3NpdGlvbkR0byc7XHJcbiAgICAgIGVsc2Ugc2ltcGxlVGV4dFxyXG4gICAgXCJcclxuICA+XHJcbiAgICB7eyBlbGVtZW50IHwgZWxlbWVudEl0ZW1OdW1iZXIgfX0gLSB7eyBlbGVtZW50IHwgZWxlbWVudFRleHQgfX1cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNzaW1wbGVUZXh0PlxyXG4gIHt7IGVsZW1lbnQgfCBlbGVtZW50VGV4dCB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
export class TreeNodeComponent {
|
|
10
|
+
constructor(selectElementService) {
|
|
11
|
+
this.selectElementService = selectElementService;
|
|
12
|
+
this.elementList = [];
|
|
13
|
+
this.indent = '';
|
|
14
|
+
this.expansionState = {};
|
|
15
|
+
this.isSelectionMode = false;
|
|
16
|
+
this.selectedColor = null;
|
|
17
|
+
this.selectedElement = null;
|
|
18
|
+
this.$destroy = new Subject();
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.selectElementService.selectClickElement.pipe(takeUntil(this.$destroy)).subscribe((element) => {
|
|
22
|
+
this.selectedElement = element;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
ngOnDestroy() {
|
|
26
|
+
this.$destroy.next(true);
|
|
27
|
+
this.$destroy.complete();
|
|
28
|
+
}
|
|
29
|
+
getElements(element) {
|
|
30
|
+
return element.elements;
|
|
31
|
+
}
|
|
32
|
+
expand(element) {
|
|
33
|
+
this.expansionState[element.id] = !this.expansionState[element.id];
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TreeNodeComponent, deps: [{ token: i1.SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: TreeNodeComponent, selector: "ava-tree-node", inputs: { elementList: "elementList", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of elementList\">\r\n <div\r\n class=\"tree-node-wrapper\"\r\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\r\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\r\n >\r\n <div class=\"tree-node-wrapper__content\">\r\n <mat-icon\r\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\r\n matRipple\r\n (click)=\"expand(element)\"\r\n class=\"tree-node__icon\"\r\n >\r\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\r\n </mat-icon>\r\n <ava-tree-item\r\n [element]=\"element\"\r\n [expansionState]=\"expansionState\"\r\n [isSelectionMode]=\"isSelectionMode\"\r\n ></ava-tree-item>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\r\n [style.paddingLeft]=\"indent\"\r\n >\r\n <ava-tree-node\r\n [elementList]=\"getElements(element)\"\r\n [expansionState]=\"expansionState\"\r\n [isSelectionMode]=\"isSelectionMode\"\r\n [selectedColor]=\"selectedColor\"\r\n [indent]=\"indent\"\r\n ></ava-tree-node>\r\n </div>\r\n</ng-container>\r\n<ng-template #nullIcon>\r\n <mat-icon></mat-icon>\r\n</ng-template>\r\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"] }, { kind: "component", type: i5.TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode"] }] }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TreeNodeComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'ava-tree-node', template: "<ng-container *ngFor=\"let element of elementList\">\r\n <div\r\n class=\"tree-node-wrapper\"\r\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\r\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\r\n >\r\n <div class=\"tree-node-wrapper__content\">\r\n <mat-icon\r\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\r\n matRipple\r\n (click)=\"expand(element)\"\r\n class=\"tree-node__icon\"\r\n >\r\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\r\n </mat-icon>\r\n <ava-tree-item\r\n [element]=\"element\"\r\n [expansionState]=\"expansionState\"\r\n [isSelectionMode]=\"isSelectionMode\"\r\n ></ava-tree-item>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\r\n [style.paddingLeft]=\"indent\"\r\n >\r\n <ava-tree-node\r\n [elementList]=\"getElements(element)\"\r\n [expansionState]=\"expansionState\"\r\n [isSelectionMode]=\"isSelectionMode\"\r\n [selectedColor]=\"selectedColor\"\r\n [indent]=\"indent\"\r\n ></ava-tree-node>\r\n </div>\r\n</ng-container>\r\n<ng-template #nullIcon>\r\n <mat-icon></mat-icon>\r\n</ng-template>\r\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"] }]
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.SelectElementService }]; }, propDecorators: { elementList: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], indent: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], expansionState: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], isSelectionMode: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], selectedColor: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb21wb25lbnRzL3RyZWUtbm9kZS90cmVlLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1ub2RlL3RyZWUtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVUxQyxNQUFNLE9BQU8saUJBQWlCO0lBUzVCLFlBQW1CLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBUnBELGdCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUN4QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osbUJBQWMsR0FBOEIsRUFBRSxDQUFDO1FBQy9DLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUM3QyxvQkFBZSxHQUF1QixJQUFJLENBQUM7UUFDbkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFFc0IsQ0FBQztJQUVqRSxRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDaEcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFxQztRQUMvQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFvQjtRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7OEdBNUJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQ1o5QixtNUNBdUNBLGk2QkQzQmEsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7MkdBS2hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJRWxlbWVudER0bywgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byB9IGZyb20gJy4uLy4uL21vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0RWxlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWxlY3QtZWxlbWVudC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXZhLXRyZWUtbm9kZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtbm9kZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1ub2RlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBlbGVtZW50TGlzdD86IElFbGVtZW50RHRvW10gfCBudWxsID0gW107XHJcbiAgQElucHV0KCkgaW5kZW50ID0gJyc7XHJcbiAgQElucHV0KCkgZXhwYW5zaW9uU3RhdGU6IHsgW2lkOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuICBASW5wdXQoKSBpc1NlbGVjdGlvbk1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBzZWxlY3RlZEVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSAkZGVzdHJveSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWxlY3RFbGVtZW50U2VydmljZTogU2VsZWN0RWxlbWVudFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RFbGVtZW50U2VydmljZS5zZWxlY3RDbGlja0VsZW1lbnQucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveSkpLnN1YnNjcmliZSgoZWxlbWVudCkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxlbWVudHMoZWxlbWVudDogU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byk6IElFbGVtZW50RHRvW10gfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBlbGVtZW50LmVsZW1lbnRzO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kKGVsZW1lbnQ6IElFbGVtZW50RHRvKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuc2lvblN0YXRlW2VsZW1lbnQuaWRdID0gIXRoaXMuZXhwYW5zaW9uU3RhdGVbZWxlbWVudC5pZF07XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudExpc3RcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInRyZWUtbm9kZS13cmFwcGVyXCJcclxuICAgIFtjbGFzcy5zZWxlY3RdPVwiIWlzU2VsZWN0aW9uTW9kZSAmJiBlbGVtZW50LmlkID09PSBzZWxlY3RlZEVsZW1lbnQ/LmlkXCJcclxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIiFpc1NlbGVjdGlvbk1vZGUgJiYgZWxlbWVudC5pZCA9PT0gc2VsZWN0ZWRFbGVtZW50Py5pZCA/IHNlbGVjdGVkQ29sb3IgfHwgJycgOiAnJ1wiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cInRyZWUtbm9kZS13cmFwcGVyX19jb250ZW50XCI+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgICpuZ0lmPVwiZWxlbWVudC5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJzsgZWxzZSBudWxsSWNvblwiXHJcbiAgICAgICAgbWF0UmlwcGxlXHJcbiAgICAgICAgKGNsaWNrKT1cImV4cGFuZChlbGVtZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0cmVlLW5vZGVfX2ljb25cIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZXhwYW5zaW9uU3RhdGVbZWxlbWVudC5pZF0gPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnIH19XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgIDxhdmEtdHJlZS1pdGVtXHJcbiAgICAgICAgW2VsZW1lbnRdPVwiZWxlbWVudFwiXHJcbiAgICAgICAgW2V4cGFuc2lvblN0YXRlXT1cImV4cGFuc2lvblN0YXRlXCJcclxuICAgICAgICBbaXNTZWxlY3Rpb25Nb2RlXT1cImlzU2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgID48L2F2YS10cmVlLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJlbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvciA9PT0gJ1NlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8nICYmIGV4cGFuc2lvblN0YXRlPy5bZWxlbWVudC5pZF1cIlxyXG4gICAgW3N0eWxlLnBhZGRpbmdMZWZ0XT1cImluZGVudFwiXHJcbiAgPlxyXG4gICAgPGF2YS10cmVlLW5vZGVcclxuICAgICAgW2VsZW1lbnRMaXN0XT1cImdldEVsZW1lbnRzKGVsZW1lbnQpXCJcclxuICAgICAgW2V4cGFuc2lvblN0YXRlXT1cImV4cGFuc2lvblN0YXRlXCJcclxuICAgICAgW2lzU2VsZWN0aW9uTW9kZV09XCJpc1NlbGVjdGlvbk1vZGVcIlxyXG4gICAgICBbc2VsZWN0ZWRDb2xvcl09XCJzZWxlY3RlZENvbG9yXCJcclxuICAgICAgW2luZGVudF09XCJpbmRlbnRcIlxyXG4gICAgPjwvYXZhLXRyZWUtbm9kZT5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjbnVsbEljb24+XHJcbiAgPG1hdC1pY29uPjwvbWF0LWljb24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TreeStructureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: TreeStructureComponent, selector: "ava-tree-structure", inputs: { serviceSpecification: "serviceSpecification", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor" }, ngImport: i0, template: "<ava-tree-node\r\n *ngIf=\"serviceSpecification?.elements\"\r\n [elementList]=\"serviceSpecification?.elements\"\r\n [indent]=\"indent\"\r\n [expansionState]=\"expansionState\"\r\n [isSelectionMode]=\"isSelectionMode\"\r\n [selectedColor]=\"selectedColor\"\r\n>\r\n</ava-tree-node>\r\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"] }] }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TreeStructureComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'ava-tree-structure', template: "<ava-tree-node\r\n *ngIf=\"serviceSpecification?.elements\"\r\n [elementList]=\"serviceSpecification?.elements\"\r\n [indent]=\"indent\"\r\n [expansionState]=\"expansionState\"\r\n [isSelectionMode]=\"isSelectionMode\"\r\n [selectedColor]=\"selectedColor\"\r\n>\r\n</ava-tree-node>\r\n" }]
|
|
19
|
+
}], propDecorators: { serviceSpecification: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], indent: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], expansionState: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], isSelectionMode: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], selectedColor: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1zdHJ1Y3R1cmUvdHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvdHJlZS1zdHJ1Y3R1cmUvdHJlZS1zdHJ1Y3R1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1XLHlCQUFvQixHQUFtQyxJQUFJLENBQUM7UUFDNUQsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUMvQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFrQixJQUFJLENBQUM7S0FDOUM7OEdBTlksc0JBQXNCO2tHQUF0QixzQkFBc0IsNE9DVG5DLHFTQVNBOzsyRkRBYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzhCQUtyQixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2VydmljZVNwZWNpZmljYXRpb25EdG8gfSBmcm9tICcuLi8uLi9tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F2YS10cmVlLXN0cnVjdHVyZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc3RydWN0dXJlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXN0cnVjdHVyZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlU3RydWN0dXJlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzZXJ2aWNlU3BlY2lmaWNhdGlvbjogU2VydmljZVNwZWNpZmljYXRpb25EdG8gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBpbmRlbnQgPSAnJztcclxuICBASW5wdXQoKSBleHBhbnNpb25TdGF0ZTogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIEBJbnB1dCgpIGlzU2VsZWN0aW9uTW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ29sb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG59XHJcbiIsIjxhdmEtdHJlZS1ub2RlXHJcbiAgKm5nSWY9XCJzZXJ2aWNlU3BlY2lmaWNhdGlvbj8uZWxlbWVudHNcIlxyXG4gIFtlbGVtZW50TGlzdF09XCJzZXJ2aWNlU3BlY2lmaWNhdGlvbj8uZWxlbWVudHNcIlxyXG4gIFtpbmRlbnRdPVwiaW5kZW50XCJcclxuICBbZXhwYW5zaW9uU3RhdGVdPVwiZXhwYW5zaW9uU3RhdGVcIlxyXG4gIFtpc1NlbGVjdGlvbk1vZGVdPVwiaXNTZWxlY3Rpb25Nb2RlXCJcclxuICBbc2VsZWN0ZWRDb2xvcl09XCJzZWxlY3RlZENvbG9yXCJcclxuPlxyXG48L2F2YS10cmVlLW5vZGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const DEFAULT_FILTERS = [
|
|
2
|
+
(element, filter) => element['shortText']?.trim().toLocaleLowerCase().includes(filter),
|
|
3
|
+
(element, filter) => element['label']?.trim().toLocaleLowerCase().includes(filter),
|
|
4
|
+
(element, filter) => element['itemNumber']?.['stringRepresentation']?.includes(filter)
|
|
5
|
+
];
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2RlZmF1bHRGaWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixDQUFDLE9BQVksRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDbkcsQ0FBQyxPQUFZLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQy9GLENBQUMsT0FBWSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO0NBQ3BHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVGQVVMVF9GSUxURVJTID0gW1xyXG4gIChlbGVtZW50OiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiBlbGVtZW50WydzaG9ydFRleHQnXT8udHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKSxcclxuICAoZWxlbWVudDogYW55LCBmaWx0ZXI6IHN0cmluZykgPT4gZWxlbWVudFsnbGFiZWwnXT8udHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKSxcclxuICAoZWxlbWVudDogYW55LCBmaWx0ZXI6IHN0cmluZykgPT4gZWxlbWVudFsnaXRlbU51bWJlciddPy5bJ3N0cmluZ1JlcHJlc2VudGF0aW9uJ10/LmluY2x1ZGVzKGZpbHRlcilcclxuXTtcclxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const DEFAULT_TEXT_WORDS = {
|
|
2
|
+
textSearch: 'Suche',
|
|
3
|
+
textNothing: 'Nothing',
|
|
4
|
+
textNothingFiltered: 'Nothing Filtered',
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFRleHRXb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb25zdGFudHMvZGVmYXVsdFRleHRXb3Jkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUM1QyxVQUFVLEVBQUUsT0FBTztJQUNuQixXQUFXLEVBQUUsU0FBUztJQUN0QixtQkFBbUIsRUFBRSxrQkFBa0I7SUFDdkMsT0FBTyxFQUFFLE1BQU07SUFDZixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsYUFBYSxFQUFFLGlCQUFpQjtJQUNoQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRleHRXb3JkcyB7XHJcbiAgdGV4dFNlYXJjaD86IHN0cmluZztcclxuICB0ZXh0Tm90aGluZz86IHN0cmluZztcclxuICB0ZXh0Tm90aGluZ0ZpbHRlcmVkPzogc3RyaW5nO1xyXG4gIHRleHRBbGw/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcEFsbE9wZW4/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcEFsbENsb3NlPzogc3RyaW5nO1xyXG4gIHRvb2x0aXBBbGxBZGQ/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcEFsbFJlbW92ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVF9XT1JEUzogSVRleHRXb3JkcyA9IHtcclxuICB0ZXh0U2VhcmNoOiAnU3VjaGUnLFxyXG4gIHRleHROb3RoaW5nOiAnTm90aGluZycsXHJcbiAgdGV4dE5vdGhpbmdGaWx0ZXJlZDogJ05vdGhpbmcgRmlsdGVyZWQnLFxyXG4gIHRleHRBbGw6ICdBbGxlJyxcclxuICB0b29sdGlwQWxsT3BlbjogJ0FsbGUgYXVma2xhcHBlbicsXHJcbiAgdG9vbHRpcEFsbENsb3NlOiAnQWxsZSB6dWtsYXBwZW4nLFxyXG4gIHRvb2x0aXBBbGxBZGQ6ICdBbGxlIGhpbnp1ZsO8Z2VuJyxcclxuICB0b29sdGlwQWxsUmVtb3ZlOiAnQWxsZSBlbnRmZXJuZW4nXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_FILTERS } from './defaultFilters';
|
|
2
|
+
import { DEFAULT_TEXT_WORDS } from './defaultTextWords';
|
|
3
|
+
export { DEFAULT_FILTERS, DEFAULT_TEXT_WORDS };
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0ZJTFRFUlMgfSBmcm9tICcuL2RlZmF1bHRGaWx0ZXJzJztcclxuaW1wb3J0IHsgREVGQVVMVF9URVhUX1dPUkRTIH0gZnJvbSAnLi9kZWZhdWx0VGV4dFdvcmRzJztcclxuXHJcbmV4cG9ydCB7IERFRkFVTFRfRklMVEVSUywgREVGQVVMVF9URVhUX1dPUkRTIH07XHJcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Directive } 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
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
setTimeout(() => {
|
|
12
|
+
const id = this.el?.nativeElement.id;
|
|
13
|
+
if (id) {
|
|
14
|
+
const view = this.flatElementsService?.getChangedView(id);
|
|
15
|
+
const icon = this.el.nativeElement.querySelector('[tdChangingIconView]');
|
|
16
|
+
if (view?.iconName && icon) {
|
|
17
|
+
icon.textContent = view.iconName;
|
|
18
|
+
}
|
|
19
|
+
if (view?.iconColor && icon) {
|
|
20
|
+
this.renderer?.setStyle(icon, 'color', view.iconColor);
|
|
21
|
+
}
|
|
22
|
+
const textList = this.el.nativeElement.querySelectorAll('[tdChangingTextView]');
|
|
23
|
+
textList?.forEach((text) => {
|
|
24
|
+
if (view?.textBold) {
|
|
25
|
+
this.renderer?.setStyle(text, 'font-weight', view.textBold);
|
|
26
|
+
}
|
|
27
|
+
if (view?.textColor) {
|
|
28
|
+
this.renderer?.setStyle(text, 'color', view.textColor);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}, 0);
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: SaveChangingViewDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FlatElementsService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: SaveChangingViewDirective, selector: "[trSaveChangingView]", ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: SaveChangingViewDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: '[trSaveChangingView]'
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FlatElementsService }]; } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jaGFuZ2luZy12aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9kaXJlY3RpdmVzL3NhdmUtY2hhbmdpbmctdmlldy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7OztBQVFqRSxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQ1UsRUFBYyxFQUNkLFFBQW1CLEVBQ25CLG1CQUF3QztRQUZ4QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQy9DLENBQUM7SUFFSixRQUFRO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLEVBQUUsRUFBRTtnQkFDTixNQUFNLElBQUksR0FBcUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFFNUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFnQixDQUFDO2dCQUN4RixJQUFJLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxFQUFFO29CQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQ2xDO2dCQUNELElBQUksSUFBSSxFQUFFLFNBQVMsSUFBSSxJQUFJLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN4RDtnQkFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBa0IsQ0FBQztnQkFDakcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtvQkFDdEMsSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFO3dCQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDN0Q7b0JBQ0QsSUFBSSxJQUFJLEVBQUUsU0FBUyxFQUFFO3dCQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDeEQ7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7OEdBL0JVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElWaWV3TGluZSB9IGZyb20gJy4uL21vZGVsJztcclxuaW1wb3J0IHsgRmxhdEVsZW1lbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZsYXQtZWxlbWVudHMuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0clNhdmVDaGFuZ2luZ1ZpZXddJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2F2ZUNoYW5naW5nVmlld0RpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBmbGF0RWxlbWVudHNTZXJ2aWNlOiBGbGF0RWxlbWVudHNTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBpZCA9IHRoaXMuZWw/Lm5hdGl2ZUVsZW1lbnQuaWQ7XHJcbiAgICAgIGlmIChpZCkge1xyXG4gICAgICAgIGNvbnN0IHZpZXc6IElWaWV3TGluZSB8IG51bGwgPSB0aGlzLmZsYXRFbGVtZW50c1NlcnZpY2U/LmdldENoYW5nZWRWaWV3KGlkKTtcclxuXHJcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbdGRDaGFuZ2luZ0ljb25WaWV3XScpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmICh2aWV3Py5pY29uTmFtZSAmJiBpY29uKSB7XHJcbiAgICAgICAgICBpY29uLnRleHRDb250ZW50ID0gdmlldy5pY29uTmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHZpZXc/Lmljb25Db2xvciAmJiBpY29uKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShpY29uLCAnY29sb3InLCB2aWV3Lmljb25Db2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRleHRMaXN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1t0ZENoYW5naW5nVGV4dFZpZXddJykgYXMgSFRNTEVsZW1lbnRbXTtcclxuICAgICAgICB0ZXh0TGlzdD8uZm9yRWFjaCgodGV4dDogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGlmICh2aWV3Py50ZXh0Qm9sZCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0ZXh0LCAnZm9udC13ZWlnaHQnLCB2aWV3LnRleHRCb2xkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2aWV3Py50ZXh0Q29sb3IpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGV4dCwgJ2NvbG9yJywgdmlldy50ZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcbn1cclxuIl19
|