@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,27 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ElementTextPipe {
4
+ transform(element) {
5
+ switch (element.elementTypeDiscriminator) {
6
+ case 'NoteTextDto':
7
+ return element.shortText || 'Hinweis';
8
+ case 'ExecutionDescriptionDto':
9
+ return `${element.identifier ? element.identifier + ' - ' : ''}${element.label || 'Description'}`;
10
+ case 'ServiceSpecificationGroupDto':
11
+ return element.shortText || 'Group';
12
+ case 'PositionDto':
13
+ return element.shortText || 'Position';
14
+ default:
15
+ return '';
16
+ }
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
19
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElementTextPipe, name: "elementText" }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementTextPipe, decorators: [{
22
+ type: Pipe,
23
+ args: [{
24
+ name: 'elementText'
25
+ }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC10ZXh0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvcGlwZXMvZWxlbWVudC10ZXh0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBQyxPQUFvQjtRQUM1QixRQUFRLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3pDLEtBQUssYUFBYTtnQkFDaEIsT0FBUSxPQUF1QixDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7WUFDekQsS0FBSyx5QkFBeUI7Z0JBQzVCLE9BQU8sR0FBSSxPQUFtQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUUsT0FBbUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQ3JILE9BQW1DLENBQUMsS0FBSyxJQUFJLGFBQ2hELEVBQUUsQ0FBQztZQUNMLEtBQUssOEJBQThCO2dCQUNqQyxPQUFRLE9BQXdDLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQztZQUN4RSxLQUFLLGFBQWE7Z0JBQ2hCLE9BQVEsT0FBdUIsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDO1lBQzFEO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7OEdBaEJVLGVBQWU7NEdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEV4ZWN1dGlvbkRlc2NyaXB0aW9uRHRvLCBJRWxlbWVudER0bywgTm90ZVRleHREdG8sIFBvc2l0aW9uRHRvLCBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdlbGVtZW50VGV4dCdcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudFRleHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShlbGVtZW50OiBJRWxlbWVudER0byk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChlbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcikge1xuICAgICAgY2FzZSAnTm90ZVRleHREdG8nOlxuICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgTm90ZVRleHREdG8pLnNob3J0VGV4dCB8fCAnSGlud2Vpcyc7XG4gICAgICBjYXNlICdFeGVjdXRpb25EZXNjcmlwdGlvbkR0byc6XG4gICAgICAgIHJldHVybiBgJHsoZWxlbWVudCBhcyBFeGVjdXRpb25EZXNjcmlwdGlvbkR0bykuaWRlbnRpZmllciA/IChlbGVtZW50IGFzIEV4ZWN1dGlvbkRlc2NyaXB0aW9uRHRvKS5pZGVudGlmaWVyICsgJyAtICcgOiAnJ30ke1xuICAgICAgICAgIChlbGVtZW50IGFzIEV4ZWN1dGlvbkRlc2NyaXB0aW9uRHRvKS5sYWJlbCB8fCAnRGVzY3JpcHRpb24nXG4gICAgICAgIH1gO1xuICAgICAgY2FzZSAnU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byc6XG4gICAgICAgIHJldHVybiAoZWxlbWVudCBhcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvKS5zaG9ydFRleHQgfHwgJ0dyb3VwJztcbiAgICAgIGNhc2UgJ1Bvc2l0aW9uRHRvJzpcbiAgICAgICAgcmV0dXJuIChlbGVtZW50IGFzIFBvc2l0aW9uRHRvKS5zaG9ydFRleHQgfHwgJ1Bvc2l0aW9uJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GroupChildElementsPipe {
4
+ transform(element) {
5
+ if (element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {
6
+ return element?.elements || null;
7
+ }
8
+ return null;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: GroupChildElementsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: GroupChildElementsPipe, name: "groupChildElements" }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: GroupChildElementsPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{
16
+ name: 'groupChildElements',
17
+ pure: true
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtY2hpbGQtZWxlbWVudHMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9waXBlcy9ncm91cC1jaGlsZC1lbGVtZW50cy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFwRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFNBQVMsQ0FBQyxPQUFvQjtRQUM1QixJQUFJLE9BQU8sQ0FBQyx3QkFBd0IsS0FBSyw4QkFBOEIsRUFBRSxDQUFDO1lBQ3hFLE9BQVEsT0FBd0MsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDO1FBQ3JFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBUFUsc0JBQXNCOzRHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtvQkFDMUIsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElFbGVtZW50RHRvLCBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdncm91cENoaWxkRWxlbWVudHMnLFxuICBwdXJlOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwQ2hpbGRFbGVtZW50c1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGVsZW1lbnQ6IElFbGVtZW50RHRvKTogSUVsZW1lbnREdG9bXSB8IG51bGwge1xuICAgIGlmIChlbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvciA9PT0gJ1NlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8nKSB7XG4gICAgICByZXR1cm4gKGVsZW1lbnQgYXMgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byk/LmVsZW1lbnRzIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ export class ExpandParentGroupService {
2
+ constructor() { }
3
+ expandParentGroups(element, flatElements, expansionState) {
4
+ if (!flatElements?.length) {
5
+ return;
6
+ }
7
+ const listGroup = flatElements.filter((item) => item.elements?.length);
8
+ if (!listGroup.length) {
9
+ return;
10
+ }
11
+ const findAndExpandParent = (currentElement) => {
12
+ for (const itemGroup of listGroup) {
13
+ if (expansionState[itemGroup.id]) {
14
+ continue;
15
+ }
16
+ if (itemGroup.elements?.find((item) => currentElement.id === item.id)) {
17
+ expansionState[itemGroup.id] = true;
18
+ return itemGroup;
19
+ }
20
+ }
21
+ return null;
22
+ };
23
+ const expandRecursive = (innerElement) => {
24
+ const parentGroup = findAndExpandParent(innerElement);
25
+ if (parentGroup) {
26
+ expandRecursive(parentGroup);
27
+ }
28
+ };
29
+ expandRecursive(element);
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLXBhcmVudC1ncm91cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3NlcnZpY2VzL2V4cGFuZC1wYXJlbnQtZ3JvdXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLGdCQUFlLENBQUM7SUFFaEIsa0JBQWtCLENBQUMsT0FBb0IsRUFBRSxZQUFrQyxFQUFFLGNBQXlDO1FBQ3BILElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBbUMsWUFBWSxDQUFDLE1BQU0sQ0FDbkUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQXFDLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FDbEUsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsY0FBMkIsRUFBdUMsRUFBRTtZQUMvRixLQUFLLE1BQU0sU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsU0FBUztnQkFDWCxDQUFDO2dCQUVELElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ3RFLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUNwQyxPQUFPLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsWUFBeUIsRUFBUSxFQUFFO1lBQzFELE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbGVtZW50RHRvLCBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vbW9kZWwvYXZhLW1vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBFeHBhbmRQYXJlbnRHcm91cFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZXhwYW5kUGFyZW50R3JvdXBzKGVsZW1lbnQ6IElFbGVtZW50RHRvLCBmbGF0RWxlbWVudHM6IElFbGVtZW50RHRvW10gfCBudWxsLCBleHBhbnNpb25TdGF0ZTogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfSk6IHZvaWQge1xuICAgIGlmICghZmxhdEVsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0R3JvdXA6IFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG9bXSA9IGZsYXRFbGVtZW50cy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gKGl0ZW0gYXMgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0bykuZWxlbWVudHM/Lmxlbmd0aFxuICAgICk7XG5cbiAgICBpZiAoIWxpc3RHcm91cC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5kQW5kRXhwYW5kUGFyZW50ID0gKGN1cnJlbnRFbGVtZW50OiBJRWxlbWVudER0byk6IFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gfCBudWxsID0+IHtcbiAgICAgIGZvciAoY29uc3QgaXRlbUdyb3VwIG9mIGxpc3RHcm91cCkge1xuICAgICAgICBpZiAoZXhwYW5zaW9uU3RhdGVbaXRlbUdyb3VwLmlkXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1Hcm91cC5lbGVtZW50cz8uZmluZCgoaXRlbSkgPT4gY3VycmVudEVsZW1lbnQuaWQgPT09IGl0ZW0uaWQpKSB7XG4gICAgICAgICAgZXhwYW5zaW9uU3RhdGVbaXRlbUdyb3VwLmlkXSA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1Hcm91cDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGNvbnN0IGV4cGFuZFJlY3Vyc2l2ZSA9IChpbm5lckVsZW1lbnQ6IElFbGVtZW50RHRvKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBwYXJlbnRHcm91cCA9IGZpbmRBbmRFeHBhbmRQYXJlbnQoaW5uZXJFbGVtZW50KTtcbiAgICAgIGlmIChwYXJlbnRHcm91cCkge1xuICAgICAgICBleHBhbmRSZWN1cnNpdmUocGFyZW50R3JvdXApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBleHBhbmRSZWN1cnNpdmUoZWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,96 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReplaySubject, of } from 'rxjs';
3
+ import { DEFAULT_FILTERS } from '../constants';
4
+ import * as i0 from "@angular/core";
5
+ export class FlatElementsService {
6
+ constructor() {
7
+ this._flatElementsDto = [];
8
+ this.flatElementsDtoSource = new ReplaySubject(1);
9
+ this.flatElementsDto = this.flatElementsDtoSource.asObservable();
10
+ this.functionView = null;
11
+ this.listFilterFunc = DEFAULT_FILTERS;
12
+ }
13
+ setElementsDto(elementsDto) {
14
+ this._flatElementsDto = FlatElementsService.getFlatElements(elementsDto);
15
+ this.objectElementsDto = FlatElementsService.getObjectElements(this._flatElementsDto);
16
+ this.flatElementsDtoSource.next(this._flatElementsDto);
17
+ }
18
+ static getFlatElements(container) {
19
+ const flatElements = [];
20
+ if (container.elements) {
21
+ container.elements.forEach((e) => {
22
+ flatElements.push(e);
23
+ if (e.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {
24
+ const group = e;
25
+ flatElements.push(...this.getFlatElements(group));
26
+ }
27
+ });
28
+ }
29
+ return flatElements;
30
+ }
31
+ static getObjectElements(elements) {
32
+ const objectElements = {};
33
+ if (elements?.length) {
34
+ elements.forEach((e) => {
35
+ if (e?.id) {
36
+ objectElements[e.id] = e;
37
+ }
38
+ });
39
+ }
40
+ return objectElements;
41
+ }
42
+ getOneElementById(id) {
43
+ return of(id ? this.objectElementsDto?.[id] || null : null);
44
+ }
45
+ checkFilterValue(element, filterValue) {
46
+ const cleanFilter = filterValue.trim().toLocaleLowerCase();
47
+ for (const func of this.listFilterFunc) {
48
+ if (func(element, cleanFilter)) {
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ jumpNextNode(delta, currentElement, conditionFunc) {
55
+ if (!this._flatElementsDto.length || (conditionFunc && !this._flatElementsDto.find((item) => conditionFunc(item)))) {
56
+ return null;
57
+ }
58
+ const startElement = currentElement || this._flatElementsDto[0];
59
+ let nextIndex = this._flatElementsDto.findIndex((item) => startElement.id === item.id);
60
+ if (currentElement) {
61
+ nextIndex = this.getNextIndex(this._flatElementsDto.length, nextIndex, delta);
62
+ }
63
+ while (conditionFunc && !conditionFunc(this._flatElementsDto[nextIndex])) {
64
+ nextIndex = this.getNextIndex(this._flatElementsDto.length, nextIndex, delta);
65
+ }
66
+ return this._flatElementsDto[nextIndex];
67
+ }
68
+ getNextIndex(length, index, delta) {
69
+ let nextIndex = index + delta;
70
+ nextIndex = nextIndex < 0 ? length - 1 : nextIndex;
71
+ nextIndex = nextIndex > length - 1 ? 0 : nextIndex;
72
+ return nextIndex;
73
+ }
74
+ getChangedView(id) {
75
+ if (this.objectElementsDto) {
76
+ const element = this.objectElementsDto[id];
77
+ if (element && this.functionView?.length) {
78
+ for (const objectView of this.functionView) {
79
+ if (objectView.func(element)) {
80
+ return objectView.view;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ return null;
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FlatElementsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
88
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FlatElementsService, providedIn: 'root' }); }
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FlatElementsService, decorators: [{
91
+ type: Injectable,
92
+ args: [{
93
+ providedIn: 'root'
94
+ }]
95
+ }], ctorParameters: () => [] });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdC1lbGVtZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3NlcnZpY2VzL2ZsYXQtZWxlbWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBTS9DLE1BQU0sT0FBTyxtQkFBbUI7SUFXOUI7UUFWUSxxQkFBZ0IsR0FBa0IsRUFBRSxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLElBQUksYUFBYSxDQUFnQixDQUFDLENBQUMsQ0FBQztRQUNwRSxvQkFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUk1RCxpQkFBWSxHQUErQixJQUFJLENBQUM7UUFFaEQsbUJBQWMsR0FBRyxlQUFlLENBQUM7SUFFbEIsQ0FBQztJQUVoQixjQUFjLENBQUMsV0FBb0M7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUE4QztRQUMxRSxNQUFNLFlBQVksR0FBa0IsRUFBRSxDQUFDO1FBRXZDLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9CLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxDQUFDLHdCQUF3QixLQUFLLDhCQUE4QixFQUFFLENBQUM7b0JBQ2xFLE1BQU0sS0FBSyxHQUFHLENBQWlDLENBQUM7b0JBQ2hELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQXVCO1FBQ3JELE1BQU0sY0FBYyxHQUFrQyxFQUFFLENBQUM7UUFDekQsSUFBSSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDVixjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFpQjtRQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsV0FBbUI7UUFDeEQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0QsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLGNBQWtDLEVBQUUsYUFBMkM7UUFDekcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsY0FBYyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxPQUFPLGFBQWEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pFLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUMvRCxJQUFJLFNBQVMsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzlCLFNBQVMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbkQsU0FBUyxHQUFHLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNuRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQVU7UUFDdkIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDekMsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzNDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUM3QixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ3pCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWhHVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBERUZBVUxUX0ZJTFRFUlMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSUVsZW1lbnREdG8sIElGdW5jdGlvblZpZXdMaW5lLCBJVmlld0xpbmUsIFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvLCBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGbGF0RWxlbWVudHNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZmxhdEVsZW1lbnRzRHRvOiBJRWxlbWVudER0b1tdID0gW107XG4gIHByaXZhdGUgZmxhdEVsZW1lbnRzRHRvU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8SUVsZW1lbnREdG9bXT4oMSk7XG4gIGZsYXRFbGVtZW50c0R0byA9IHRoaXMuZmxhdEVsZW1lbnRzRHRvU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIG9iamVjdEVsZW1lbnRzRHRvITogeyBbaWQ6IHN0cmluZ106IElFbGVtZW50RHRvIH07XG5cbiAgZnVuY3Rpb25WaWV3OiBJRnVuY3Rpb25WaWV3TGluZVtdIHwgbnVsbCA9IG51bGw7XG5cbiAgbGlzdEZpbHRlckZ1bmMgPSBERUZBVUxUX0ZJTFRFUlM7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNldEVsZW1lbnRzRHRvKGVsZW1lbnRzRHRvOiBTZXJ2aWNlU3BlY2lmaWNhdGlvbkR0byk6IHZvaWQge1xuICAgIHRoaXMuX2ZsYXRFbGVtZW50c0R0byA9IEZsYXRFbGVtZW50c1NlcnZpY2UuZ2V0RmxhdEVsZW1lbnRzKGVsZW1lbnRzRHRvKTtcbiAgICB0aGlzLm9iamVjdEVsZW1lbnRzRHRvID0gRmxhdEVsZW1lbnRzU2VydmljZS5nZXRPYmplY3RFbGVtZW50cyh0aGlzLl9mbGF0RWxlbWVudHNEdG8pO1xuICAgIHRoaXMuZmxhdEVsZW1lbnRzRHRvU291cmNlLm5leHQodGhpcy5fZmxhdEVsZW1lbnRzRHRvKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RmxhdEVsZW1lbnRzKGNvbnRhaW5lcjogeyBlbGVtZW50cz86IElFbGVtZW50RHRvW10gfCBudWxsIH0pOiBJRWxlbWVudER0b1tdIHtcbiAgICBjb25zdCBmbGF0RWxlbWVudHM6IElFbGVtZW50RHRvW10gPSBbXTtcblxuICAgIGlmIChjb250YWluZXIuZWxlbWVudHMpIHtcbiAgICAgIGNvbnRhaW5lci5lbGVtZW50cy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGZsYXRFbGVtZW50cy5wdXNoKGUpO1xuICAgICAgICBpZiAoZS5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJykge1xuICAgICAgICAgIGNvbnN0IGdyb3VwID0gZSBhcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvO1xuICAgICAgICAgIGZsYXRFbGVtZW50cy5wdXNoKC4uLnRoaXMuZ2V0RmxhdEVsZW1lbnRzKGdyb3VwKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBmbGF0RWxlbWVudHM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE9iamVjdEVsZW1lbnRzKGVsZW1lbnRzOiBJRWxlbWVudER0b1tdKTogeyBbaWQ6IHN0cmluZ106IElFbGVtZW50RHRvIH0ge1xuICAgIGNvbnN0IG9iamVjdEVsZW1lbnRzOiB7IFtpZDogc3RyaW5nXTogSUVsZW1lbnREdG8gfSA9IHt9O1xuICAgIGlmIChlbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgICBlbGVtZW50cy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlPy5pZCkge1xuICAgICAgICAgIG9iamVjdEVsZW1lbnRzW2UuaWRdID0gZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvYmplY3RFbGVtZW50cztcbiAgfVxuXG4gIGdldE9uZUVsZW1lbnRCeUlkKGlkOiBzdHJpbmcgfCBudWxsKTogT2JzZXJ2YWJsZTxJRWxlbWVudER0byB8IG51bGw+IHtcbiAgICByZXR1cm4gb2YoaWQgPyB0aGlzLm9iamVjdEVsZW1lbnRzRHRvPy5baWRdIHx8IG51bGwgOiBudWxsKTtcbiAgfVxuXG4gIGNoZWNrRmlsdGVyVmFsdWUoZWxlbWVudDogSUVsZW1lbnREdG8sIGZpbHRlclZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGVhbkZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGZvciAoY29uc3QgZnVuYyBvZiB0aGlzLmxpc3RGaWx0ZXJGdW5jKSB7XG4gICAgICBpZiAoZnVuYyhlbGVtZW50LCBjbGVhbkZpbHRlcikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGp1bXBOZXh0Tm9kZShkZWx0YTogbnVtYmVyLCBjdXJyZW50RWxlbWVudDogSUVsZW1lbnREdG8gfCBudWxsLCBjb25kaXRpb25GdW5jPzogKGU6IElFbGVtZW50RHRvKSA9PiBib29sZWFuKTogSUVsZW1lbnREdG8gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuX2ZsYXRFbGVtZW50c0R0by5sZW5ndGggfHwgKGNvbmRpdGlvbkZ1bmMgJiYgIXRoaXMuX2ZsYXRFbGVtZW50c0R0by5maW5kKChpdGVtKSA9PiBjb25kaXRpb25GdW5jKGl0ZW0pKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBzdGFydEVsZW1lbnQgPSBjdXJyZW50RWxlbWVudCB8fCB0aGlzLl9mbGF0RWxlbWVudHNEdG9bMF07XG4gICAgbGV0IG5leHRJbmRleCA9IHRoaXMuX2ZsYXRFbGVtZW50c0R0by5maW5kSW5kZXgoKGl0ZW0pID0+IHN0YXJ0RWxlbWVudC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgaWYgKGN1cnJlbnRFbGVtZW50KSB7XG4gICAgICBuZXh0SW5kZXggPSB0aGlzLmdldE5leHRJbmRleCh0aGlzLl9mbGF0RWxlbWVudHNEdG8ubGVuZ3RoLCBuZXh0SW5kZXgsIGRlbHRhKTtcbiAgICB9XG4gICAgd2hpbGUgKGNvbmRpdGlvbkZ1bmMgJiYgIWNvbmRpdGlvbkZ1bmModGhpcy5fZmxhdEVsZW1lbnRzRHRvW25leHRJbmRleF0pKSB7XG4gICAgICBuZXh0SW5kZXggPSB0aGlzLmdldE5leHRJbmRleCh0aGlzLl9mbGF0RWxlbWVudHNEdG8ubGVuZ3RoLCBuZXh0SW5kZXgsIGRlbHRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ZsYXRFbGVtZW50c0R0b1tuZXh0SW5kZXhdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXh0SW5kZXgobGVuZ3RoOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGRlbHRhOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBuZXh0SW5kZXggPSBpbmRleCArIGRlbHRhO1xuICAgIG5leHRJbmRleCA9IG5leHRJbmRleCA8IDAgPyBsZW5ndGggLSAxIDogbmV4dEluZGV4O1xuICAgIG5leHRJbmRleCA9IG5leHRJbmRleCA+IGxlbmd0aCAtIDEgPyAwIDogbmV4dEluZGV4O1xuICAgIHJldHVybiBuZXh0SW5kZXg7XG4gIH1cblxuICBnZXRDaGFuZ2VkVmlldyhpZDogc3RyaW5nKTogSVZpZXdMaW5lIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMub2JqZWN0RWxlbWVudHNEdG8pIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iamVjdEVsZW1lbnRzRHRvW2lkXTtcbiAgICAgIGlmIChlbGVtZW50ICYmIHRoaXMuZnVuY3Rpb25WaWV3Py5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCBvYmplY3RWaWV3IG9mIHRoaXMuZnVuY3Rpb25WaWV3KSB7XG4gICAgICAgICAgaWYgKG9iamVjdFZpZXcuZnVuYyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdFZpZXcudmlldztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,116 @@
1
+ import { inject } from '@angular/core';
2
+ import { FlatElementsService } from './flat-elements.service';
3
+ import { SelectElementService } from './select-element.service';
4
+ export var KeyboardOperationType;
5
+ (function (KeyboardOperationType) {
6
+ KeyboardOperationType["MoveSelectedPositionUp"] = "moveSelectedPositionUp";
7
+ KeyboardOperationType["MoveSelectedPositionDown"] = "moveSelectedPositionDown";
8
+ KeyboardOperationType["MoveChosenPositionDown"] = "moveChosenPositionDown";
9
+ KeyboardOperationType["MoveChosenPositionUp"] = "moveChosenPositionUp";
10
+ KeyboardOperationType["ClearChosenPosition"] = "clearChosenPosition";
11
+ KeyboardOperationType["SelectChosenPosition"] = "selectChosenPosition";
12
+ })(KeyboardOperationType || (KeyboardOperationType = {}));
13
+ export class KeyboardOperationService {
14
+ constructor() {
15
+ this.defaultKeyboardOperationConfig = {
16
+ operations: {
17
+ moveSelectedPositionUp: { disabled: false, keyEvent: 'F11' },
18
+ moveSelectedPositionDown: { disabled: false, keyEvent: 'F12' },
19
+ moveChosenPositionDown: { disabled: false, keyEvent: 'ArrowDown' },
20
+ moveChosenPositionUp: { disabled: false, keyEvent: 'ArrowUp' },
21
+ clearChosenPosition: { disabled: false, keyEvent: 'Escape' },
22
+ selectChosenPosition: { disabled: false, keyEvent: 'Enter' }
23
+ }
24
+ };
25
+ this.flatElementsService = inject(FlatElementsService);
26
+ this.selectElementService = inject(SelectElementService);
27
+ this.currentConfig = { ...this.defaultKeyboardOperationConfig };
28
+ }
29
+ getConfig() {
30
+ return this.currentConfig;
31
+ }
32
+ mergeConfigOperation(config) {
33
+ this.currentConfig = this.deepMerge(this.currentConfig, config);
34
+ }
35
+ deepMerge(obj1, obj2) {
36
+ const mergedConfig = { ...obj1 };
37
+ for (const key in obj2) {
38
+ if (Object.prototype.hasOwnProperty.call(obj2, key)) {
39
+ if (Object.prototype.hasOwnProperty.call(mergedConfig, key) &&
40
+ typeof mergedConfig[key] === 'object' &&
41
+ mergedConfig[key] !== null &&
42
+ typeof obj2[key] === 'object' &&
43
+ obj2[key] !== null) {
44
+ mergedConfig[key] = this.deepMerge(mergedConfig[key], obj2[key]);
45
+ }
46
+ else {
47
+ mergedConfig[key] = obj2[key];
48
+ }
49
+ }
50
+ }
51
+ return mergedConfig;
52
+ }
53
+ handleKeyboardEvent(keyEvent, element) {
54
+ let nextElement;
55
+ if (this.currentConfig.operations.moveSelectedPositionUp?.keyEvent === keyEvent.key &&
56
+ !this.currentConfig.operations.moveSelectedPositionUp?.disabled) {
57
+ keyEvent.preventDefault();
58
+ nextElement = this.flatElementsService.jumpNextNode(-1, element);
59
+ this.selectElementService.setClickElement(nextElement);
60
+ return {
61
+ operation: KeyboardOperationType.MoveSelectedPositionUp,
62
+ nextElement: nextElement
63
+ };
64
+ }
65
+ if (this.currentConfig.operations.moveSelectedPositionDown?.keyEvent === keyEvent.key &&
66
+ !this.currentConfig.operations.moveSelectedPositionDown?.disabled) {
67
+ keyEvent.preventDefault();
68
+ nextElement = this.flatElementsService.jumpNextNode(1, element);
69
+ this.selectElementService.setClickElement(nextElement);
70
+ return {
71
+ operation: KeyboardOperationType.MoveSelectedPositionDown,
72
+ nextElement: nextElement
73
+ };
74
+ }
75
+ if (this.currentConfig.operations.moveChosenPositionDown?.keyEvent === keyEvent.key &&
76
+ !this.currentConfig.operations.moveChosenPositionDown?.disabled) {
77
+ keyEvent.preventDefault();
78
+ nextElement = this.flatElementsService.jumpNextNode(1, element);
79
+ this.selectElementService.setPreselectedElement(nextElement?.id === element?.id ? null : nextElement);
80
+ return {
81
+ operation: KeyboardOperationType.MoveChosenPositionDown,
82
+ nextElement: nextElement
83
+ };
84
+ }
85
+ if (this.currentConfig.operations.moveChosenPositionUp?.keyEvent === keyEvent.key &&
86
+ !this.currentConfig.operations.moveChosenPositionUp?.disabled) {
87
+ keyEvent.preventDefault();
88
+ nextElement = this.flatElementsService.jumpNextNode(-1, element);
89
+ this.selectElementService.setPreselectedElement(nextElement?.id === element?.id ? null : nextElement);
90
+ return {
91
+ operation: KeyboardOperationType.MoveChosenPositionUp,
92
+ nextElement: nextElement
93
+ };
94
+ }
95
+ if (this.currentConfig.operations.selectChosenPosition?.keyEvent === keyEvent.key &&
96
+ !this.currentConfig.operations.selectChosenPosition?.disabled) {
97
+ keyEvent.preventDefault();
98
+ this.selectElementService.setClickElement(element);
99
+ return {
100
+ operation: KeyboardOperationType.SelectChosenPosition,
101
+ nextElement: null
102
+ };
103
+ }
104
+ if (this.currentConfig.operations.clearChosenPosition?.keyEvent === keyEvent.key &&
105
+ !this.currentConfig.operations.clearChosenPosition?.disabled) {
106
+ keyEvent.preventDefault();
107
+ this.selectElementService.setPreselectedElement(null);
108
+ return {
109
+ operation: KeyboardOperationType.ClearChosenPosition,
110
+ nextElement: null
111
+ };
112
+ }
113
+ return null;
114
+ }
115
+ }
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtb3BlcmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvc2VydmljZXMva2V5Ym9hcmQtb3BlcmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVFoRSxNQUFNLENBQU4sSUFBWSxxQkFPWDtBQVBELFdBQVkscUJBQXFCO0lBQy9CLDBFQUFpRCxDQUFBO0lBQ2pELDhFQUFxRCxDQUFBO0lBQ3JELDBFQUFpRCxDQUFBO0lBQ2pELHNFQUE2QyxDQUFBO0lBQzdDLG9FQUEyQyxDQUFBO0lBQzNDLHNFQUE2QyxDQUFBO0FBQy9DLENBQUMsRUFQVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBT2hDO0FBV0QsTUFBTSxPQUFPLHdCQUF3QjtJQWlCbkM7UUFoQlEsbUNBQThCLEdBQTZCO1lBQ2pFLFVBQVUsRUFBRTtnQkFDVixzQkFBc0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFDNUQsd0JBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBQzlELHNCQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2dCQUNsRSxvQkFBb0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtnQkFDOUQsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEs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dWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmxhdEVsZW1lbnRzU2VydmljZSB9IGZyb20gJy4vZmxhdC1lbGVtZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFNlbGVjdEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3QtZWxlbWVudC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSUVsZW1lbnREdG8gfSBmcm9tICcuLi9tb2RlbC9hdmEtbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBJS2V5Ym9hcmRPcGVyYXRpb25Db25maWcge1xuICBvcGVyYXRpb25zOiBJS2V5Ym9hcmRPcGVyYXRpb25zO1xufVxuXG5leHBvcnQgZW51bSBLZXlib2FyZE9wZXJhdGlvblR5cGUge1xuICBNb3ZlU2VsZWN0ZWRQb3NpdGlvblVwID0gJ21vdmVTZWxlY3RlZFBvc2l0aW9uVXAnLFxuICBNb3ZlU2VsZWN0ZWRQb3NpdGlvbkRvd24gPSAnbW92ZVNlbGVjdGVkUG9zaXRpb25Eb3duJyxcbiAgTW92ZUNob3NlblBvc2l0aW9uRG93biA9ICdtb3ZlQ2hvc2VuUG9zaXRpb25Eb3duJyxcbiAgTW92ZUNob3NlblBvc2l0aW9uVXAgPSAnbW92ZUNob3NlblBvc2l0aW9uVXAnLFxuICBDbGVhckNob3NlblBvc2l0aW9uID0gJ2NsZWFyQ2hvc2VuUG9zaXRpb24nLFxuICBTZWxlY3RDaG9zZW5Qb3NpdGlvbiA9ICdzZWxlY3RDaG9zZW5Qb3NpdGlvbidcbn1cblxuZXhwb3J0IHR5cGUgSUtleWJvYXJkT3BlcmF0aW9ucyA9IHtcbiAgW2tleSBpbiBLZXlib2FyZE9wZXJhdGlvblR5cGVdPzogSUtleWJvYXJkT3BlcmF0aW9uO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJS2V5Ym9hcmRPcGVyYXRpb24ge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGtleUV2ZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgS2V5Ym9hcmRPcGVyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkZWZhdWx0S2V5Ym9hcmRPcGVyYXRpb25Db25maWc6IElLZXlib2FyZE9wZXJhdGlvbkNvbmZpZyA9IHtcbiAgICBvcGVyYXRpb25zOiB7XG4gICAgICBtb3ZlU2VsZWN0ZWRQb3NpdGlvblVwOiB7IGRpc2FibGVkOiBmYWxzZSwga2V5RXZlbnQ6ICdGMTEnIH0sXG4gICAgICBtb3ZlU2VsZWN0ZWRQb3NpdGlvbkRvd246IHsgZGlzYWJsZWQ6IGZhbHNlLCBrZXlFdmVudDogJ0YxMicgfSxcbiAgICAgIG1vdmVDaG9zZW5Qb3NpdGlvbkRvd246IHsgZGlzYWJsZWQ6IGZhbHNlLCBrZXlFdmVudDogJ0Fycm93RG93bicgfSxcbiAgICAgIG1vdmVDaG9zZW5Qb3NpdGlvblVwOiB7IGRpc2FibGVkOiBmYWxzZSwga2V5RXZlbnQ6ICdBcnJvd1VwJyB9LFxuICAgICAgY2xlYXJDaG9zZW5Qb3NpdGlvbjogeyBkaXNhYmxlZDogZmFsc2UsIGtleUV2ZW50OiAnRXNjYXBlJyB9LFxuICAgICAgc2VsZWN0Q2hvc2VuUG9zaXRpb246IHsgZGlzYWJsZWQ6IGZhbHNlLCBrZXlFdmVudDogJ0VudGVyJyB9XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgZmxhdEVsZW1lbnRzU2VydmljZSA9IGluamVjdChGbGF0RWxlbWVudHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZWxlY3RFbGVtZW50U2VydmljZSA9IGluamVjdChTZWxlY3RFbGVtZW50U2VydmljZSk7XG5cbiAgcHJpdmF0ZSBjdXJyZW50Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRLZXlib2FyZE9wZXJhdGlvbkNvbmZpZyB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudENvbmZpZztcbiAgfVxuXG4gIG1lcmdlQ29uZmlnT3BlcmF0aW9uKGNvbmZpZzogSUtleWJvYXJkT3BlcmF0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy5jdXJyZW50Q29uZmlnID0gdGhpcy5kZWVwTWVyZ2UodGhpcy5jdXJyZW50Q29uZmlnLCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWVwTWVyZ2U8VD4ob2JqMTogVCwgb2JqMjogVCk6IFQge1xuICAgIGNvbnN0IG1lcmdlZENvbmZpZzogVCA9IHsgLi4ub2JqMSB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqMikge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoyLCBrZXkpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobWVyZ2VkQ29uZmlnLCBrZXkpICYmXG4gICAgICAgICAgdHlwZW9mIG1lcmdlZENvbmZpZ1trZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgIG1lcmdlZENvbmZpZ1trZXldICE9PSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIG9iajJba2V5XSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICBvYmoyW2tleV0gIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgbWVyZ2VkQ29uZmlnW2tleV0gPSB0aGlzLmRlZXBNZXJnZShtZXJnZWRDb25maWdba2V5XSwgb2JqMltrZXldKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZXJnZWRDb25maWdba2V5XSA9IG9iajJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRDb25maWc7XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZEV2ZW50KFxuICAgIGtleUV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbFxuICApOiB7XG4gICAgb3BlcmF0aW9uOiBLZXlib2FyZE9wZXJhdGlvblR5cGU7XG4gICAgbmV4dEVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbDtcbiAgfSB8IG51bGwge1xuICAgIGxldCBuZXh0RWxlbWVudDtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZy5vcGVyYXRpb25zLm1vdmVTZWxlY3RlZFBvc2l0aW9uVXA/LmtleUV2ZW50ID09PSBrZXlFdmVudC5rZXkgJiZcbiAgICAgICF0aGlzLmN1cnJlbnRDb25maWcub3BlcmF0aW9ucy5tb3ZlU2VsZWN0ZWRQb3NpdGlvblVwPy5kaXNhYmxlZFxuICAgICkge1xuICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG5leHRFbGVtZW50ID0gdGhpcy5mbGF0RWxlbWVudHNTZXJ2aWNlLmp1bXBOZXh0Tm9kZSgtMSwgZWxlbWVudCk7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnRTZXJ2aWNlLnNldENsaWNrRWxlbWVudChuZXh0RWxlbWVudCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IEtleWJvYXJkT3BlcmF0aW9uVHlwZS5Nb3ZlU2VsZWN0ZWRQb3NpdGlvblVwLFxuICAgICAgICBuZXh0RWxlbWVudDogbmV4dEVsZW1lbnRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jdXJyZW50Q29uZmlnLm9wZXJhdGlvbnMubW92ZVNlbGVjdGVkUG9zaXRpb25Eb3duPy5rZXlFdmVudCA9PT0ga2V5RXZlbnQua2V5ICYmXG4gICAgICAhdGhpcy5jdXJyZW50Q29uZmlnLm9wZXJhdGlvbnMubW92ZVNlbGVjdGVkUG9zaXRpb25Eb3duPy5kaXNhYmxlZFxuICAgICkge1xuICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG5leHRFbGVtZW50ID0gdGhpcy5mbGF0RWxlbWVudHNTZXJ2aWNlLmp1bXBOZXh0Tm9kZSgxLCBlbGVtZW50KTtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0Q2xpY2tFbGVtZW50KG5leHRFbGVtZW50KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogS2V5Ym9hcmRPcGVyYXRpb25UeXBlLk1vdmVTZWxlY3RlZFBvc2l0aW9uRG93bixcbiAgICAgICAgbmV4dEVsZW1lbnQ6IG5leHRFbGVtZW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZy5vcGVyYXRpb25zLm1vdmVDaG9zZW5Qb3NpdGlvbkRvd24/LmtleUV2ZW50ID09PSBrZXlFdmVudC5rZXkgJiZcbiAgICAgICF0aGlzLmN1cnJlbnRDb25maWcub3BlcmF0aW9ucy5tb3ZlQ2hvc2VuUG9zaXRpb25Eb3duPy5kaXNhYmxlZFxuICAgICkge1xuICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG5leHRFbGVtZW50ID0gdGhpcy5mbGF0RWxlbWVudHNTZXJ2aWNlLmp1bXBOZXh0Tm9kZSgxLCBlbGVtZW50KTtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0UHJlc2VsZWN0ZWRFbGVtZW50KG5leHRFbGVtZW50Py5pZCA9PT0gZWxlbWVudD8uaWQgPyBudWxsIDogbmV4dEVsZW1lbnQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBLZXlib2FyZE9wZXJhdGlvblR5cGUuTW92ZUNob3NlblBvc2l0aW9uRG93bixcbiAgICAgICAgbmV4dEVsZW1lbnQ6IG5leHRFbGVtZW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZy5vcGVyYXRpb25zLm1vdmVDaG9zZW5Qb3NpdGlvblVwPy5rZXlFdmVudCA9PT0ga2V5RXZlbnQua2V5ICYmXG4gICAgICAhdGhpcy5jdXJyZW50Q29uZmlnLm9wZXJhdGlvbnMubW92ZUNob3NlblBvc2l0aW9uVXA/LmRpc2FibGVkXG4gICAgKSB7XG4gICAgICBrZXlFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgbmV4dEVsZW1lbnQgPSB0aGlzLmZsYXRFbGVtZW50c1NlcnZpY2UuanVtcE5leHROb2RlKC0xLCBlbGVtZW50KTtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0UHJlc2VsZWN0ZWRFbGVtZW50KG5leHRFbGVtZW50Py5pZCA9PT0gZWxlbWVudD8uaWQgPyBudWxsIDogbmV4dEVsZW1lbnQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBLZXlib2FyZE9wZXJhdGlvblR5cGUuTW92ZUNob3NlblBvc2l0aW9uVXAsXG4gICAgICAgIG5leHRFbGVtZW50OiBuZXh0RWxlbWVudFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmN1cnJlbnRDb25maWcub3BlcmF0aW9ucy5zZWxlY3RDaG9zZW5Qb3NpdGlvbj8ua2V5RXZlbnQgPT09IGtleUV2ZW50LmtleSAmJlxuICAgICAgIXRoaXMuY3VycmVudENvbmZpZy5vcGVyYXRpb25zLnNlbGVjdENob3NlblBvc2l0aW9uPy5kaXNhYmxlZFxuICAgICkge1xuICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0Q2xpY2tFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBLZXlib2FyZE9wZXJhdGlvblR5cGUuU2VsZWN0Q2hvc2VuUG9zaXRpb24sXG4gICAgICAgIG5leHRFbGVtZW50OiBudWxsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZy5vcGVyYXRpb25zLmNsZWFyQ2hvc2VuUG9zaXRpb24/LmtleUV2ZW50ID09PSBrZXlFdmVudC5rZXkgJiZcbiAgICAgICF0aGlzLmN1cnJlbnRDb25maWcub3BlcmF0aW9ucy5jbGVhckNob3NlblBvc2l0aW9uPy5kaXNhYmxlZFxuICAgICkge1xuICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudFNlcnZpY2Uuc2V0UHJlc2VsZWN0ZWRFbGVtZW50KG51bGwpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBLZXlib2FyZE9wZXJhdGlvblR5cGUuQ2xlYXJDaG9zZW5Qb3NpdGlvbixcbiAgICAgICAgbmV4dEVsZW1lbnQ6IG51bGxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class SelectElementService {
5
+ constructor() {
6
+ this.preselectedElementSource = new ReplaySubject(1);
7
+ this.preselectedElementWasNull = false;
8
+ this.preselectedElement = this.preselectedElementSource.asObservable();
9
+ this.selectClickElementSource = new ReplaySubject(1);
10
+ this.selectClickElement = this.selectClickElementSource.asObservable();
11
+ this.selectDblClickElementSource = new ReplaySubject(1);
12
+ this.selectDblClickElement = this.selectDblClickElementSource.asObservable();
13
+ this.selectContextMenuElementSource = new ReplaySubject(1);
14
+ this.selectContextMenuElement = this.selectContextMenuElementSource.asObservable();
15
+ }
16
+ setPreselectedElement(element) {
17
+ this.preselectedElementSource.next(element);
18
+ this.preselectedElementWasNull = element == null;
19
+ }
20
+ setClickElement(element) {
21
+ this.selectClickElementSource.next(element);
22
+ if (!this.preselectedElementWasNull) {
23
+ this.preselectedElementSource.next(null);
24
+ }
25
+ }
26
+ setDblClickElement(element) {
27
+ this.selectDblClickElementSource.next(element);
28
+ }
29
+ setContextMenuElement(data) {
30
+ this.selectContextMenuElementSource.next(data);
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectElementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectElementService, providedIn: 'root' }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectElementService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root'
39
+ }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVsZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9zZXJ2aWNlcy9zZWxlY3QtZWxlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPckMsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUlVLDZCQUF3QixHQUFHLElBQUksYUFBYSxDQUFxQixDQUFDLENBQUMsQ0FBQztRQUNwRSw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTFELDZCQUF3QixHQUFHLElBQUksYUFBYSxDQUFxQixDQUFDLENBQUMsQ0FBQztRQUM1RSx1QkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFMUQsZ0NBQTJCLEdBQUcsSUFBSSxhQUFhLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhFLG1DQUE4QixHQUFHLElBQUksYUFBYSxDQUE0RCxDQUFDLENBQUMsQ0FBQztRQUN6SCw2QkFBd0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsWUFBWSxFQUFFLENBQUM7S0FxQi9FO0lBbkJDLHFCQUFxQixDQUFDLE9BQTJCO1FBQy9DLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUEyQjtRQUN6QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBb0I7UUFDckMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBK0Q7UUFDbkYsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQWhDVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RFbGVtZW50U2VydmljZSB7XG4gIHByaXZhdGUgcHJlc2VsZWN0ZWRFbGVtZW50U291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8SUVsZW1lbnREdG8gfCBudWxsPigxKTtcbiAgcHJpdmF0ZSBwcmVzZWxlY3RlZEVsZW1lbnRXYXNOdWxsID0gZmFsc2U7XG4gIHByZXNlbGVjdGVkRWxlbWVudCA9IHRoaXMucHJlc2VsZWN0ZWRFbGVtZW50U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgc2VsZWN0Q2xpY2tFbGVtZW50U291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8SUVsZW1lbnREdG8gfCBudWxsPigxKTtcbiAgc2VsZWN0Q2xpY2tFbGVtZW50ID0gdGhpcy5zZWxlY3RDbGlja0VsZW1lbnRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBzZWxlY3REYmxDbGlja0VsZW1lbnRTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxJRWxlbWVudER0bz4oMSk7XG4gIHNlbGVjdERibENsaWNrRWxlbWVudCA9IHRoaXMuc2VsZWN0RGJsQ2xpY2tFbGVtZW50U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgc2VsZWN0Q29udGV4dE1lbnVFbGVtZW50U291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8eyBwb3NpdGlvbjogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9OyBub2RlOiBJRWxlbWVudER0byB9PigxKTtcbiAgc2VsZWN0Q29udGV4dE1lbnVFbGVtZW50ID0gdGhpcy5zZWxlY3RDb250ZXh0TWVudUVsZW1lbnRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgc2V0UHJlc2VsZWN0ZWRFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMucHJlc2VsZWN0ZWRFbGVtZW50U291cmNlLm5leHQoZWxlbWVudCk7XG4gICAgdGhpcy5wcmVzZWxlY3RlZEVsZW1lbnRXYXNOdWxsID0gZWxlbWVudCA9PSBudWxsO1xuICB9XG5cbiAgc2V0Q2xpY2tFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50RHRvIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0Q2xpY2tFbGVtZW50U291cmNlLm5leHQoZWxlbWVudCk7XG4gICAgaWYgKCF0aGlzLnByZXNlbGVjdGVkRWxlbWVudFdhc051bGwpIHtcbiAgICAgIHRoaXMucHJlc2VsZWN0ZWRFbGVtZW50U291cmNlLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RGJsQ2xpY2tFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50RHRvKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3REYmxDbGlja0VsZW1lbnRTb3VyY2UubmV4dChlbGVtZW50KTtcbiAgfVxuXG4gIHNldENvbnRleHRNZW51RWxlbWVudChkYXRhOiB7IHBvc2l0aW9uOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH07IG5vZGU6IElFbGVtZW50RHRvIH0pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdENvbnRleHRNZW51RWxlbWVudFNvdXJjZS5uZXh0KGRhdGEpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,133 @@
1
+ import { BehaviorSubject, ReplaySubject } from 'rxjs';
2
+ export class TreeNodeSelectionService {
3
+ constructor() {
4
+ this.treeNodeSelectingSource = new BehaviorSubject({});
5
+ this.treeNodeSelecting = this.treeNodeSelectingSource.asObservable();
6
+ this._selectingElementsTreeData = null;
7
+ this.selectingChangedSource = new ReplaySubject(1);
8
+ this.selectingChanged = this.selectingChangedSource.asObservable();
9
+ this.flatSelectedListId = [];
10
+ }
11
+ setSelectingChanged(selectingChanged) {
12
+ this.selectingChangedSource.next(selectingChanged);
13
+ }
14
+ loadSelectingElements(elements, parent = null) {
15
+ const list = [];
16
+ if (elements && elements.length) {
17
+ elements.forEach((element) => {
18
+ const obj = {
19
+ parent,
20
+ elementId: element.id,
21
+ checked: false
22
+ };
23
+ if (element.elementType === 'ServiceSpecificationGroupDto') {
24
+ obj.indeterminate = false;
25
+ obj.children = this.loadSelectingElements(element.elements, obj);
26
+ }
27
+ list.push(obj);
28
+ this.treeNodeSelectingSource.value[element.id] = obj;
29
+ });
30
+ this._selectingElementsTreeData = list;
31
+ }
32
+ return list;
33
+ }
34
+ getTreeData() {
35
+ return this._selectingElementsTreeData;
36
+ }
37
+ changeAllChild(children, value) {
38
+ children.forEach((item) => {
39
+ item.checked = value;
40
+ if (item.children) {
41
+ item.indeterminate = false;
42
+ this.changeAllChild(item.children, value);
43
+ }
44
+ });
45
+ }
46
+ changeAllParent(parent, value) {
47
+ parent.checked = value;
48
+ if (parent.parent) {
49
+ this.changeAllParent(parent.parent, value);
50
+ }
51
+ }
52
+ changeSelecting(value, id, isUserChanged = true) {
53
+ const selectingNode = this.treeNodeSelectingSource.value[id];
54
+ if (!selectingNode) {
55
+ return;
56
+ }
57
+ selectingNode.checked = value;
58
+ if (selectingNode.children) {
59
+ selectingNode.indeterminate = false;
60
+ if (isUserChanged) {
61
+ this.changeAllChild(selectingNode.children, value);
62
+ }
63
+ }
64
+ if (selectingNode.parent) {
65
+ this.changeAllParent(selectingNode.parent, value);
66
+ }
67
+ this.getIndeterminate(selectingNode?.parent || null);
68
+ if (isUserChanged) {
69
+ this.treeNodeSelectingSource.next(this.treeNodeSelectingSource.value);
70
+ }
71
+ }
72
+ getIndeterminate(parentNode) {
73
+ if (!parentNode) {
74
+ return;
75
+ }
76
+ if (!parentNode.children || !parentNode.children.length) {
77
+ return;
78
+ }
79
+ let resultIndeterminateSome = false;
80
+ let resultIndeterminateAll = false;
81
+ parentNode.children.forEach((item) => {
82
+ if (item.checked || item.indeterminate) {
83
+ resultIndeterminateSome = true;
84
+ }
85
+ if (!item.checked) {
86
+ resultIndeterminateAll = true;
87
+ }
88
+ });
89
+ if (!resultIndeterminateSome) {
90
+ parentNode.indeterminate = false;
91
+ parentNode.checked = false;
92
+ }
93
+ else if (resultIndeterminateAll) {
94
+ parentNode.indeterminate = true;
95
+ parentNode.checked = false;
96
+ }
97
+ else {
98
+ parentNode.indeterminate = false;
99
+ parentNode.checked = true;
100
+ }
101
+ this.getIndeterminate(parentNode.parent);
102
+ }
103
+ changeAll(value) {
104
+ Object.values(this.treeNodeSelectingSource.value).forEach((e) => {
105
+ this.changeSelecting(value, e.elementId, false);
106
+ });
107
+ this.treeNodeSelectingSource.next(this.treeNodeSelectingSource.value);
108
+ }
109
+ getFlatSelectedListId(selectedElements) {
110
+ selectedElements.forEach((el) => {
111
+ if (el.children) {
112
+ this.getFlatSelectedListId(el.children);
113
+ }
114
+ else {
115
+ this.flatSelectedListId.push(el.elementId);
116
+ }
117
+ });
118
+ }
119
+ getTreeRoot(treeRoot) {
120
+ const list = [];
121
+ treeRoot.forEach((item) => {
122
+ if (item.checked || item.indeterminate) {
123
+ const obj = { elementId: item.elementId };
124
+ if (item.children) {
125
+ obj.children = this.getTreeRoot(item.children);
126
+ }
127
+ list.push(obj);
128
+ }
129
+ });
130
+ return list;
131
+ }
132
+ }
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLXNlbGVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3NlcnZpY2VzL3RyZWUtbm9kZS1zZWxlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt0RCxNQUFNLE9BQU8sd0JBQXdCO0lBVW5DO1FBVFEsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBQWlELEVBQUUsQ0FBQyxDQUFDO1FBQzFHLHNCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4RCwrQkFBMEIsR0FBbUMsSUFBSSxDQUFDO1FBRWxFLDJCQUFzQixHQUFHLElBQUksYUFBYSxDQUEwQixDQUFDLENBQUMsQ0FBQztRQUMvRSxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFOUQsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFaEIsbUJBQW1CLENBQUMsZ0JBQXlDO1FBQzNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQscUJBQXFCLENBQ25CLFFBQTBDLEVBQzFDLFNBQW1ELElBQUk7UUFFdkQsTUFBTSxJQUFJLEdBQTRCLEVBQUUsQ0FBQztRQUN6QyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxHQUFHLEdBQUc7b0JBQ1YsTUFBTTtvQkFDTixTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUU7b0JBQ3JCLE9BQU8sRUFB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QUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxnQkFBbUM7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUM7UUFDM0MsTUFBTSxJQUFJLEdBQTRCLEVBQUUsQ0FBQztRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBMkIsRUFBRSxFQUFFO1lBQy9DLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sR0FBRyxHQUEwQixFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQixHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUVsZW1lbnREdG8sIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gfSBmcm9tICcuLi9tb2RlbC9hdmEtbW9kZWxzJztcbmltcG9ydCB7IFNlbGVjdGVkRWxlbWVudCwgU2VsZWN0aW5nRWxlbWVudHNUeXBlIH0gZnJvbSAnLi4vbW9kZWwvc2VsZWN0aW5nLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlU2VsZWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgdHJlZU5vZGVTZWxlY3RpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2VsZW1lbnRJZDogc3RyaW5nXTogU2VsZWN0aW5nRWxlbWVudHNUeXBlIH0+KHt9KTtcbiAgdHJlZU5vZGVTZWxlY3RpbmcgPSB0aGlzLnRyZWVOb2RlU2VsZWN0aW5nU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICBwcml2YXRlIF9zZWxlY3RpbmdFbGVtZW50c1RyZWVEYXRhOiBTZWxlY3RpbmdFbGVtZW50c1R5cGVbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2VsZWN0aW5nQ2hhbmdlZFNvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFNlbGVjdGluZ0VsZW1lbnRzVHlwZVtdPigxKTtcbiAgc2VsZWN0aW5nQ2hhbmdlZCA9IHRoaXMuc2VsZWN0aW5nQ2hhbmdlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBmbGF0U2VsZWN0ZWRMaXN0SWQ6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNldFNlbGVjdGluZ0NoYW5nZWQoc2VsZWN0aW5nQ2hhbmdlZDogU2VsZWN0aW5nRWxlbWVudHNUeXBlW10pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGluZ0NoYW5nZWRTb3VyY2UubmV4dChzZWxlY3RpbmdDaGFuZ2VkKTtcbiAgfVxuXG4gIGxvYWRTZWxlY3RpbmdFbGVtZW50cyhcbiAgICBlbGVtZW50czogSUVsZW1lbnREdG9bXSB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgcGFyZW50OiBTZWxlY3RpbmdFbGVtZW50c1R5cGUgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbFxuICApOiBTZWxlY3RpbmdFbGVtZW50c1R5cGVbXSB7XG4gICAgY29uc3QgbGlzdDogU2VsZWN0aW5nRWxlbWVudHNUeXBlW10gPSBbXTtcbiAgICBpZiAoZWxlbWVudHMgJiYgZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBJRWxlbWVudER0bykgPT4ge1xuICAgICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgICAgcGFyZW50LFxuICAgICAgICAgIGVsZW1lbnRJZDogZWxlbWVudC5pZCxcbiAgICAgICAgICBjaGVja2VkOiBmYWxzZVxuICAgICAgICB9IGFzIFNlbGVjdGluZ0VsZW1lbnRzVHlwZTtcbiAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJykge1xuICAgICAgICAgIG9iai5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgb2JqLmNoaWxkcmVuID0gdGhpcy5sb2FkU2VsZWN0aW5nRWxlbWVudHMoKDxTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvPmVsZW1lbnQpLmVsZW1lbnRzLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIGxpc3QucHVzaChvYmopO1xuICAgICAgICB0aGlzLnRyZWVOb2RlU2VsZWN0aW5nU291cmNlLnZhbHVlW2VsZW1lbnQuaWRdID0gb2JqO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9zZWxlY3RpbmdFbGVtZW50c1RyZWVEYXRhID0gbGlzdDtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cblxuICBnZXRUcmVlRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW5nRWxlbWVudHNUcmVlRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQWxsQ2hpbGQoY2hpbGRyZW46IFNlbGVjdGluZ0VsZW1lbnRzVHlwZVtdLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNoaWxkcmVuLmZvckVhY2goKGl0ZW06IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSkgPT4ge1xuICAgICAgaXRlbS5jaGVja2VkID0gdmFsdWU7XG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICBpdGVtLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VBbGxDaGlsZChpdGVtLmNoaWxkcmVuLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZUFsbFBhcmVudChwYXJlbnQ6IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSwgdmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBwYXJlbnQuY2hlY2tlZCA9IHZhbHVlO1xuICAgIGlmIChwYXJlbnQucGFyZW50KSB7XG4gICAgICB0aGlzLmNoYW5nZUFsbFBhcmVudChwYXJlbnQucGFyZW50LCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlU2VsZWN0aW5nKHZhbHVlOiBib29sZWFuLCBpZDogc3RyaW5nLCBpc1VzZXJDaGFuZ2VkID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGluZ05vZGUgPSB0aGlzLnRyZWVOb2RlU2VsZWN0aW5nU291cmNlLnZhbHVlW2lkXTtcbiAgICBpZiAoIXNlbGVjdGluZ05vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZWxlY3RpbmdOb2RlLmNoZWNrZWQgPSB2YWx1ZTtcbiAgICBpZiAoc2VsZWN0aW5nTm9kZS5jaGlsZHJlbikge1xuICAgICAgc2VsZWN0aW5nTm9kZS5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICBpZiAoaXNVc2VyQ2hhbmdlZCkge1xuICAgICAgICB0aGlzLmNoYW5nZUFsbENoaWxkKHNlbGVjdGluZ05vZGUuY2hpbGRyZW4sIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNlbGVjdGluZ05vZGUucGFyZW50KSB7XG4gICAgICB0aGlzLmNoYW5nZUFsbFBhcmVudChzZWxlY3RpbmdOb2RlLnBhcmVudCwgdmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmdldEluZGV0ZXJtaW5hdGUoc2VsZWN0aW5nTm9kZT8ucGFyZW50IHx8IG51bGwpO1xuICAgIGlmIChpc1VzZXJDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnRyZWVOb2RlU2VsZWN0aW5nU291cmNlLm5leHQodGhpcy50cmVlTm9kZVNlbGVjdGluZ1NvdXJjZS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRldGVybWluYXRlKHBhcmVudE5vZGU6IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoIXBhcmVudE5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXBhcmVudE5vZGUuY2hpbGRyZW4gfHwgIXBhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdEluZGV0ZXJtaW5hdGVTb21lID0gZmFsc2U7XG4gICAgbGV0IHJlc3VsdEluZGV0ZXJtaW5hdGVBbGwgPSBmYWxzZTtcbiAgICBwYXJlbnROb2RlLmNoaWxkcmVuLmZvckVhY2goKGl0ZW06IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uY2hlY2tlZCB8fCBpdGVtLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgcmVzdWx0SW5kZXRlcm1pbmF0ZVNvbWUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFpdGVtLmNoZWNrZWQpIHtcbiAgICAgICAgcmVzdWx0SW5kZXRlcm1pbmF0ZUFsbCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHRJbmRldGVybWluYXRlU29tZSkge1xuICAgICAgcGFyZW50Tm9kZS5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICBwYXJlbnROb2RlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdEluZGV0ZXJtaW5hdGVBbGwpIHtcbiAgICAgIHBhcmVudE5vZGUuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICBwYXJlbnROb2RlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50Tm9kZS5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICBwYXJlbnROb2RlLmNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmdldEluZGV0ZXJtaW5hdGUocGFyZW50Tm9kZS5wYXJlbnQpO1xuICB9XG5cbiAgY2hhbmdlQWxsKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnRyZWVOb2RlU2VsZWN0aW5nU291cmNlLnZhbHVlKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZVNlbGVjdGluZyh2YWx1ZSwgZS5lbGVtZW50SWQsIGZhbHNlKTtcbiAgICB9KTtcbiAgICB0aGlzLnRyZWVOb2RlU2VsZWN0aW5nU291cmNlLm5leHQodGhpcy50cmVlTm9kZVNlbGVjdGluZ1NvdXJjZS52YWx1ZSk7XG4gIH1cblxuICBnZXRGbGF0U2VsZWN0ZWRMaXN0SWQoc2VsZWN0ZWRFbGVtZW50czogU2VsZWN0ZWRFbGVtZW50W10pOiB2b2lkIHtcbiAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICBpZiAoZWwuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5nZXRGbGF0U2VsZWN0ZWRMaXN0SWQoZWwuY2hpbGRyZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mbGF0U2VsZWN0ZWRMaXN0SWQucHVzaChlbC5lbGVtZW50SWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0VHJlZVJvb3QodHJlZVJvb3Q6IFNlbGVjdGluZ0VsZW1lbnRzVHlwZVtdKTogU2VsZWN0aW5nRWxlbWVudHNUeXBlW10ge1xuICAgIGNvbnN0IGxpc3Q6IFNlbGVjdGluZ0VsZW1lbnRzVHlwZVtdID0gW107XG4gICAgdHJlZVJvb3QuZm9yRWFjaCgoaXRlbTogU2VsZWN0aW5nRWxlbWVudHNUeXBlKSA9PiB7XG4gICAgICBpZiAoaXRlbS5jaGVja2VkIHx8IGl0ZW0uaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBjb25zdCBvYmo6IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSA9IHsgZWxlbWVudElkOiBpdGVtLmVsZW1lbnRJZCB9O1xuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgIG9iai5jaGlsZHJlbiA9IHRoaXMuZ2V0VHJlZVJvb3QoaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgbGlzdC5wdXNoKG9iaik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ // This file is automatically generated as part of the build process
2
+ export const version = {
3
+ version: "0.1.1-beta0093",
4
+ commitInfo: "Branch.develop.Sha.37ddc57b20301a1e73e50cae70f4b7295d68489c",
5
+ commitDate: "2024-02-17",
6
+ commitHash: "37ddc57b20301a1e73e50cae70f4b7295d68489c",
7
+ informationalVersion: "0.1.1-beta.93+Branch.develop.Sha.37ddc57b20301a1e73e50cae70f4b7295d68489c",
8
+ buildDateUtc: new Date(Date.UTC(2024, 1, 17, 21, 47, 30))
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFFcEUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsVUFBVSxFQUFFLDZEQUE2RDtJQUN6RSxVQUFVLEVBQUUsWUFBWTtJQUN4QixVQUFVLEVBQUUsMENBQTBDO0lBQ3RELG9CQUFvQixFQUFFLDJFQUEyRTtJQUNqRyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0NBQzVELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYXMgcGFydCBvZiB0aGUgYnVpbGQgcHJvY2Vzc1xuXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9IHtcbiAgICB2ZXJzaW9uOiBcIjAuMS4xLWJldGEwMDkzXCIsXG4gICAgY29tbWl0SW5mbzogXCJCcmFuY2guZGV2ZWxvcC5TaGEuMzdkZGM1N2IyMDMwMWExZTczZTUwY2FlNzBmNGI3Mjk1ZDY4NDg5Y1wiLFxuICAgIGNvbW1pdERhdGU6IFwiMjAyNC0wMi0xN1wiLFxuICAgIGNvbW1pdEhhc2g6IFwiMzdkZGM1N2IyMDMwMWExZTczZTUwY2FlNzBmNGI3Mjk1ZDY4NDg5Y1wiLFxuICAgIGluZm9ybWF0aW9uYWxWZXJzaW9uOiBcIjAuMS4xLWJldGEuOTMrQnJhbmNoLmRldmVsb3AuU2hhLjM3ZGRjNTdiMjAzMDFhMWU3M2U1MGNhZTcwZjRiNzI5NWQ2ODQ4OWNcIixcbiAgICBidWlsZERhdGVVdGM6IG5ldyBEYXRlKERhdGUuVVRDKDIwMjQsIDEsIDE3LCAyMSwgNDcsIDMwKSlcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of angular-ava
3
+ */
4
+ export * from './lib/ava-tree/tree/model';
5
+ export * from './lib/angular-ava.module';
6
+ export * from './lib/version';
7
+ export * from './lib/ava-tree/tree/components/ava-tree/ava-tree.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsNERBQTRELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItYXZhXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLWF2YS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmVyc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdmEtdHJlZS90cmVlL2NvbXBvbmVudHMvYXZhLXRyZWUvYXZhLXRyZWUuY29tcG9uZW50JztcbiJdfQ==