ngssm-tree 15.3.8 → 15.3.9

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 (27) hide show
  1. package/esm2020/lib/ngssm-expression-tree/actions/index.mjs +2 -1
  2. package/esm2020/lib/ngssm-expression-tree/actions/ngssm-expression-tree-action-type.mjs +2 -1
  3. package/esm2020/lib/ngssm-expression-tree/actions/ngssm-update-expression-tree-node.action.mjs +9 -0
  4. package/esm2020/lib/ngssm-expression-tree/components/ngssm-expression-tree/ngssm-expression-tree.component.mjs +3 -3
  5. package/esm2020/lib/ngssm-expression-tree/components/ngssm-expression-tree-node/ngssm-expression-tree-node.component.mjs +3 -3
  6. package/esm2020/lib/ngssm-expression-tree/components/ngssm-expression-tree-node-details/ngssm-expression-tree-node-details.component.mjs +3 -3
  7. package/esm2020/lib/ngssm-expression-tree/reducers/tree-node-edition.reducer.mjs +18 -5
  8. package/esm2020/lib/ngssm-expression-tree/reducers/tree-node-expand.reducer.mjs +3 -3
  9. package/esm2020/lib/ngssm-expression-tree/reducers/trees.reducer.mjs +3 -3
  10. package/esm2020/lib/ngssm-tree/components/ngssm-breadcrumb/ngssm-breadcrumb.component.mjs +3 -3
  11. package/esm2020/lib/ngssm-tree/components/ngssm-tree/ngssm-tree.component.mjs +3 -3
  12. package/esm2020/lib/ngssm-tree/components/ngssm-tree-search-dialog/ngssm-tree-search-dialog.component.mjs +3 -3
  13. package/esm2020/lib/ngssm-tree/effects/tree-node-loading.effect.mjs +3 -3
  14. package/esm2020/lib/ngssm-tree/effects/tree-nodes-searching.effect.mjs +3 -3
  15. package/esm2020/lib/ngssm-tree/reducers/tree-node-expand.reducer.mjs +3 -3
  16. package/esm2020/lib/ngssm-tree/reducers/tree-node-selection.reducer.mjs +3 -3
  17. package/esm2020/lib/ngssm-tree/reducers/tree-nodes-search.reducer.mjs +3 -3
  18. package/esm2020/lib/ngssm-tree/reducers/tree-nodes.reducer.mjs +3 -3
  19. package/esm2020/lib/ngssm-tree/reducers/trees.reducer.mjs +3 -3
  20. package/fesm2015/ngssm-tree.mjs +71 -50
  21. package/fesm2015/ngssm-tree.mjs.map +1 -1
  22. package/fesm2020/ngssm-tree.mjs +71 -50
  23. package/fesm2020/ngssm-tree.mjs.map +1 -1
  24. package/lib/ngssm-expression-tree/actions/index.d.ts +1 -0
  25. package/lib/ngssm-expression-tree/actions/ngssm-expression-tree-action-type.d.ts +2 -1
  26. package/lib/ngssm-expression-tree/actions/ngssm-update-expression-tree-node.action.d.ts +5 -0
  27. package/package.json +1 -1
@@ -7,4 +7,5 @@ export * from './ngssm-expand-expression-tree-node.action';
7
7
  export * from './ngssm-collapse-expression-tree-node.action';
8
8
  export * from './ngssm-add-expression-tree-node.action';
9
9
  export * from './ngssm-delete-expression-tree-node.action';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10cmVlL3NyYy9saWIvbmdzc20tZXhwcmVzc2lvbi10cmVlL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25nc3NtLWV4cHJlc3Npb24tdHJlZS1hY3Rpb24tdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWNsZWFyLWV4cHJlc3Npb24tdHJlZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1pbml0LWV4cHJlc3Npb24tdHJlZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1leHByZXNzaW9uLXRyZWUuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tZXhwYW5kLWV4cHJlc3Npb24tdHJlZS1ub2RlLmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWNvbGxhcHNlLWV4cHJlc3Npb24tdHJlZS1ub2RlLmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWFkZC1leHByZXNzaW9uLXRyZWUtbm9kZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1kZWxldGUtZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uJztcbiJdfQ==
10
+ export * from './ngssm-update-expression-tree-node.action';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10cmVlL3NyYy9saWIvbmdzc20tZXhwcmVzc2lvbi10cmVlL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmdzc20tZXhwcmVzc2lvbi10cmVlLWFjdGlvbi10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tY2xlYXItZXhwcmVzc2lvbi10cmVlLmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWluaXQtZXhwcmVzc2lvbi10cmVlLmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWV4cHJlc3Npb24tdHJlZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1leHByZXNzaW9uLXRyZWUtbm9kZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1leHBhbmQtZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tY29sbGFwc2UtZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tYWRkLWV4cHJlc3Npb24tdHJlZS1ub2RlLmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWRlbGV0ZS1leHByZXNzaW9uLXRyZWUtbm9kZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS11cGRhdGUtZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uJztcbiJdfQ==
@@ -9,5 +9,6 @@ export var NgssmExpressionTreeActionType;
9
9
  // Node edition
10
10
  NgssmExpressionTreeActionType["ngssmAddExpressionTreeNode"] = "[NgssmExpressionTreeActionType] ngssmAddExpressionTreeNode";
11
11
  NgssmExpressionTreeActionType["ngssmDeleteExpressionTreeNode"] = "[NgssmExpressionTreeActionType] ngssmDeleteExpressionTreeNode";
12
+ NgssmExpressionTreeActionType["ngssmUpdateExpressionTreeNode"] = "[NgssmExpressionTreeActionType] ngssmUpdateExpressionTreeNode";
12
13
  })(NgssmExpressionTreeActionType || (NgssmExpressionTreeActionType = {}));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZXhwcmVzc2lvbi10cmVlLWFjdGlvbi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLWV4cHJlc3Npb24tdHJlZS9hY3Rpb25zL25nc3NtLWV4cHJlc3Npb24tdHJlZS1hY3Rpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSw2QkFZWDtBQVpELFdBQVksNkJBQTZCO0lBQ3ZDLDJCQUEyQjtJQUMzQixvSEFBbUYsQ0FBQTtJQUNuRixzSEFBcUYsQ0FBQTtJQUVyRix5QkFBeUI7SUFDekIsb0lBQW1HLENBQUE7SUFDbkcsZ0lBQStGLENBQUE7SUFFL0YsZUFBZTtJQUNmLDBIQUF5RixDQUFBO0lBQ3pGLGdJQUErRixDQUFBO0FBQ2pHLENBQUMsRUFaVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBWXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUge1xuICAvLyBMaXN0IG9mIHRyZWVzIG1hbmFnZW1lbnRcbiAgbmdzc21Jbml0RXhwcmVzc2lvblRyZWUgPSAnW05nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlXSBuZ3NzbUluaXRFeHByZXNzaW9uVHJlZScsXG4gIG5nc3NtQ2xlYXJFeHByZXNzaW9uVHJlZSA9ICdbTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGVdIG5nc3NtQ2xlYXJFeHByZXNzaW9uVHJlZScsXG5cbiAgLy8gTWFuYWdlIGV4cGFuZC9jb2xsYXBzZVxuICBuZ3NzbUNvbGxhcHNlRXhwcmVzc2lvblRyZWVOb2RlID0gJ1tOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZV0gbmdzc21Db2xsYXBzZUV4cHJlc3Npb25UcmVlTm9kZScsXG4gIG5nc3NtRXhwYW5kRXhwcmVzc2lvblRyZWVOb2RlID0gJ1tOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZV0gbmdzc21FeHBhbmRFeHByZXNzaW9uVHJlZU5vZGUnLFxuXG4gIC8vIE5vZGUgZWRpdGlvblxuICBuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZSA9ICdbTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGVdIG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlJyxcbiAgbmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGUgPSAnW05nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlXSBuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZSdcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZXhwcmVzc2lvbi10cmVlLWFjdGlvbi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLWV4cHJlc3Npb24tdHJlZS9hY3Rpb25zL25nc3NtLWV4cHJlc3Npb24tdHJlZS1hY3Rpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSw2QkFhWDtBQWJELFdBQVksNkJBQTZCO0lBQ3ZDLDJCQUEyQjtJQUMzQixvSEFBbUYsQ0FBQTtJQUNuRixzSEFBcUYsQ0FBQTtJQUVyRix5QkFBeUI7SUFDekIsb0lBQW1HLENBQUE7SUFDbkcsZ0lBQStGLENBQUE7SUFFL0YsZUFBZTtJQUNmLDBIQUF5RixDQUFBO0lBQ3pGLGdJQUErRixDQUFBO0lBQy9GLGdJQUErRixDQUFBO0FBQ2pHLENBQUMsRUFiVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBYXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUge1xuICAvLyBMaXN0IG9mIHRyZWVzIG1hbmFnZW1lbnRcbiAgbmdzc21Jbml0RXhwcmVzc2lvblRyZWUgPSAnW05nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlXSBuZ3NzbUluaXRFeHByZXNzaW9uVHJlZScsXG4gIG5nc3NtQ2xlYXJFeHByZXNzaW9uVHJlZSA9ICdbTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGVdIG5nc3NtQ2xlYXJFeHByZXNzaW9uVHJlZScsXG5cbiAgLy8gTWFuYWdlIGV4cGFuZC9jb2xsYXBzZVxuICBuZ3NzbUNvbGxhcHNlRXhwcmVzc2lvblRyZWVOb2RlID0gJ1tOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZV0gbmdzc21Db2xsYXBzZUV4cHJlc3Npb25UcmVlTm9kZScsXG4gIG5nc3NtRXhwYW5kRXhwcmVzc2lvblRyZWVOb2RlID0gJ1tOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZV0gbmdzc21FeHBhbmRFeHByZXNzaW9uVHJlZU5vZGUnLFxuXG4gIC8vIE5vZGUgZWRpdGlvblxuICBuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZSA9ICdbTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGVdIG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlJyxcbiAgbmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGUgPSAnW05nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlXSBuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZScsXG4gIG5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlID0gJ1tOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZV0gbmdzc21VcGRhdGVFeHByZXNzaW9uVHJlZU5vZGUnXG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { NgssmExpressionTreeNodeAction } from './ngssm-expression-tree-node.action';
2
+ import { NgssmExpressionTreeActionType } from './ngssm-expression-tree-action-type';
3
+ export class NgssmUpdateExpressionTreeNodeAction extends NgssmExpressionTreeNodeAction {
4
+ constructor(treeId, nodeId, data) {
5
+ super(NgssmExpressionTreeActionType.ngssmUpdateExpressionTreeNode, treeId, nodeId);
6
+ this.data = data;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tdXBkYXRlLWV4cHJlc3Npb24tdHJlZS1ub2RlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS1leHByZXNzaW9uLXRyZWUvYWN0aW9ucy9uZ3NzbS11cGRhdGUtZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXBGLE1BQU0sT0FBTyxtQ0FBaUQsU0FBUSw2QkFBNkI7SUFDakcsWUFBWSxNQUFjLEVBQUUsTUFBYyxFQUFrQixJQUFXO1FBQ3JFLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFEekIsU0FBSSxHQUFKLElBQUksQ0FBTztJQUV2RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiB9IGZyb20gJy4vbmdzc20tZXhwcmVzc2lvbi10cmVlLW5vZGUuYWN0aW9uJztcbmltcG9ydCB7IE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlIH0gZnJvbSAnLi9uZ3NzbS1leHByZXNzaW9uLXRyZWUtYWN0aW9uLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgTmdzc21VcGRhdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb248VERhdGEgPSBhbnk+IGV4dGVuZHMgTmdzc21FeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcih0cmVlSWQ6IHN0cmluZywgbm9kZUlkOiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSBkYXRhOiBURGF0YSkge1xuICAgIHN1cGVyKE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlLCB0cmVlSWQsIG5vZGVJZCk7XG4gIH1cbn1cbiJdfQ==
@@ -87,9 +87,9 @@ export class NgssmExpressionTreeComponent extends NgSsmComponent {
87
87
  this.changeDetectorRef.markForCheck();
88
88
  }
89
89
  }
90
- NgssmExpressionTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmExpressionTreeComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
- NgssmExpressionTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NgssmExpressionTreeComponent, isStandalone: true, selector: "ngssm-expression-tree", inputs: { treeConfig: "treeConfig" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex ngssm-expression-tree\">\n <mat-card-content class=\"flex-column-stretch fxFlex ngssm-expression-tree-content\"\n *ngIf=\"(treeConfig$ | async) as treeConfig\">\n <cdk-virtual-scroll-viewport [itemSize]=\"treeConfig.rowSize ?? 30\" class=\"fxFlex\"\n *ngIf=\"treeConfig.disableVirtualization !== true\">\n <div *cdkVirtualFor=\"let item of displayedNodes$ | async; trackBy: getItemId\"\n class=\"ngssm-expression-tree-node\" id=\"{{'node_' + item.data.id}}\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate;context: {treeConfig, item}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"ngssm-expression-tree-nodes-container\" *ngIf=\"treeConfig.disableVirtualization === true\">\n <div *ngFor=\"let item of displayedNodes$ | async; trackBy: getItemId\" class=\"ngssm-expression-tree-node\"\n id=\"{{'node_' + item.data.id}}\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate;context: {treeConfig, item}\"></ng-container>\n </div>\n </div>\n </mat-card-content>\n</mat-card>\n\n<ng-template #nodeTemplate let-treeConfig=\"treeConfig\" let-item=\"item\">\n <div class=\"flex-row-center fxFlex\" [style.height.px]=\"treeConfig.rowSize ?? 30\">\n <mat-divider [vertical]=\"true\" class=\"ngssm-expression-tree-node-divider\"\n [style.height.px]=\"treeConfig.rowSize ?? 30\" *ngFor=\"let part of item.path\"\n [style.margin-right.px]=\"getDefaultPadding()\">\n </mat-divider>\n <mat-icon class=\"{{treeConfig.expandIconClass}}\"\n *ngIf=\"(item.data.isExpandable || item.data.hasRowDetail) && item.isExpanded === false\"\n (click)=\"$event.stopPropagation();expand(item);\" id=\"expandIcon\">\n </mat-icon>\n <mat-icon class=\"{{treeConfig.collapseIconClass}}\"\n *ngIf=\"(item.data.isExpandable || item.data.hasRowDetail) && item.isExpanded === true\"\n (click)=\"$event.stopPropagation();collapse(item);\" id=\"collapseIcon\">\n </mat-icon>\n <ngssm-expression-tree-node [nodeId]=\"item.data.id\" [treeConfig]=\"treeConfig\">\n </ngssm-expression-tree-node>\n </div>\n <div *ngIf=\"item.data.hasRowDetail === true && item.isExpanded === true\" class=\"flex-row-center fxFlex\">\n <mat-divider [vertical]=\"true\" class=\"ngssm-expression-tree-node-divider\"\n [style.height.px]=\"detailContainer.getBoundingClientRect().height\" *ngFor=\" let part of item.path\"\n [style.margin-right.px]=\"getDefaultPadding()\">\n </mat-divider>\n\n <div #detailContainer class=\"ngssm-expression-tree-node-detail-component\">\n <ngssm-expression-tree-node-details [nodeId]=\"item.data.id\" [treeConfig]=\"treeConfig\" (heightChanged)=\"forceRefresh()\">\n </ngssm-expression-tree-node-details>\n </div>\n </div>\n</ng-template>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NgssmExpressionTreeNodeComponent, selector: "ngssm-expression-tree-node", inputs: ["nodeId", "treeConfig"] }, { kind: "component", type: NgssmExpressionTreeNodeDetailsComponent, selector: "ngssm-expression-tree-node-details", inputs: ["nodeId", "treeConfig"], outputs: ["heightChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmExpressionTreeComponent, decorators: [{
90
+ NgssmExpressionTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmExpressionTreeComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
+ NgssmExpressionTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgssmExpressionTreeComponent, isStandalone: true, selector: "ngssm-expression-tree", inputs: { treeConfig: "treeConfig" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex ngssm-expression-tree\">\n <mat-card-content class=\"flex-column-stretch fxFlex ngssm-expression-tree-content\"\n *ngIf=\"(treeConfig$ | async) as treeConfig\">\n <cdk-virtual-scroll-viewport [itemSize]=\"treeConfig.rowSize ?? 30\" class=\"fxFlex\"\n *ngIf=\"treeConfig.disableVirtualization !== true\">\n <div *cdkVirtualFor=\"let item of displayedNodes$ | async; trackBy: getItemId\"\n class=\"ngssm-expression-tree-node\" id=\"{{'node_' + item.data.id}}\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate;context: {treeConfig, item}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"ngssm-expression-tree-nodes-container\" *ngIf=\"treeConfig.disableVirtualization === true\">\n <div *ngFor=\"let item of displayedNodes$ | async; trackBy: getItemId\" class=\"ngssm-expression-tree-node\"\n id=\"{{'node_' + item.data.id}}\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate;context: {treeConfig, item}\"></ng-container>\n </div>\n </div>\n </mat-card-content>\n</mat-card>\n\n<ng-template #nodeTemplate let-treeConfig=\"treeConfig\" let-item=\"item\">\n <div class=\"flex-row-center fxFlex\" [style.height.px]=\"treeConfig.rowSize ?? 30\">\n <mat-divider [vertical]=\"true\" class=\"ngssm-expression-tree-node-divider\"\n [style.height.px]=\"treeConfig.rowSize ?? 30\" *ngFor=\"let part of item.path\"\n [style.margin-right.px]=\"getDefaultPadding()\">\n </mat-divider>\n <mat-icon class=\"{{treeConfig.expandIconClass}}\"\n *ngIf=\"(item.data.isExpandable || item.data.hasRowDetail) && item.isExpanded === false\"\n (click)=\"$event.stopPropagation();expand(item);\" id=\"expandIcon\">\n </mat-icon>\n <mat-icon class=\"{{treeConfig.collapseIconClass}}\"\n *ngIf=\"(item.data.isExpandable || item.data.hasRowDetail) && item.isExpanded === true\"\n (click)=\"$event.stopPropagation();collapse(item);\" id=\"collapseIcon\">\n </mat-icon>\n <ngssm-expression-tree-node [nodeId]=\"item.data.id\" [treeConfig]=\"treeConfig\">\n </ngssm-expression-tree-node>\n </div>\n <div *ngIf=\"item.data.hasRowDetail === true && item.isExpanded === true\" class=\"flex-row-center fxFlex\">\n <mat-divider [vertical]=\"true\" class=\"ngssm-expression-tree-node-divider\"\n [style.height.px]=\"detailContainer.getBoundingClientRect().height\" *ngFor=\" let part of item.path\"\n [style.margin-right.px]=\"getDefaultPadding()\">\n </mat-divider>\n\n <div #detailContainer class=\"ngssm-expression-tree-node-detail-component\">\n <ngssm-expression-tree-node-details [nodeId]=\"item.data.id\" [treeConfig]=\"treeConfig\" (heightChanged)=\"forceRefresh()\">\n </ngssm-expression-tree-node-details>\n </div>\n </div>\n</ng-template>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NgssmExpressionTreeNodeComponent, selector: "ngssm-expression-tree-node", inputs: ["nodeId", "treeConfig"] }, { kind: "component", type: NgssmExpressionTreeNodeDetailsComponent, selector: "ngssm-expression-tree-node-details", inputs: ["nodeId", "treeConfig"], outputs: ["heightChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmExpressionTreeComponent, decorators: [{
93
93
  type: Component,
94
94
  args: [{ selector: 'ngssm-expression-tree', standalone: true, imports: [
95
95
  CommonModule,
@@ -75,9 +75,9 @@ export class NgssmExpressionTreeNodeComponent extends NgSsmComponent {
75
75
  });
76
76
  }
77
77
  }
78
- NgssmExpressionTreeNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmExpressionTreeNodeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
79
- NgssmExpressionTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NgssmExpressionTreeNodeComponent, isStandalone: true, selector: "ngssm-expression-tree-node", inputs: { nodeId: "nodeId", treeConfig: "treeConfig" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-expression-tree-node-label\">\n {{nodeLabel$ | async}}\n</div>\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmExpressionTreeNodeComponent, decorators: [{
78
+ NgssmExpressionTreeNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmExpressionTreeNodeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
79
+ NgssmExpressionTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgssmExpressionTreeNodeComponent, isStandalone: true, selector: "ngssm-expression-tree-node", inputs: { nodeId: "nodeId", treeConfig: "treeConfig" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-expression-tree-node-label\">\n {{nodeLabel$ | async}}\n</div>\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmExpressionTreeNodeComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'ngssm-expression-tree-node', standalone: true, imports: [CommonModule, NgssmComponentDisplayDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-expression-tree-node-label\">\n {{nodeLabel$ | async}}\n</div>\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\n"] }]
83
83
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { nodeId: [{
@@ -52,9 +52,9 @@ export class NgssmExpressionTreeNodeDetailsComponent extends NgSsmComponent {
52
52
  return this._componentToDisplay$.asObservable();
53
53
  }
54
54
  }
55
- NgssmExpressionTreeNodeDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
56
- NgssmExpressionTreeNodeDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NgssmExpressionTreeNodeDetailsComponent, isStandalone: true, selector: "ngssm-expression-tree-node-details", inputs: { nodeId: "nodeId", treeConfig: "treeConfig" }, outputs: { heightChanged: "heightChanged" }, usesInheritance: true, ngImport: i0, template: "<div [ngssmComponentDisplay]=\"componentToDisplay$ | async\" [ngssmComponentAction]=\"componentAction$ | async\"></div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, decorators: [{
55
+ NgssmExpressionTreeNodeDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
56
+ NgssmExpressionTreeNodeDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgssmExpressionTreeNodeDetailsComponent, isStandalone: true, selector: "ngssm-expression-tree-node-details", inputs: { nodeId: "nodeId", treeConfig: "treeConfig" }, outputs: { heightChanged: "heightChanged" }, usesInheritance: true, ngImport: i0, template: "<div [ngssmComponentDisplay]=\"componentToDisplay$ | async\" [ngssmComponentAction]=\"componentAction$ | async\"></div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'ngssm-expression-tree-node-details', standalone: true, imports: [CommonModule, NgssmComponentDisplayDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngssmComponentDisplay]=\"componentToDisplay$ | async\" [ngssmComponentAction]=\"componentAction$ | async\"></div>" }]
60
60
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ElementRef }]; }, propDecorators: { heightChanged: [{
@@ -7,7 +7,8 @@ export class TreeNodeEditionReducer {
7
7
  constructor() {
8
8
  this.processedActions = [
9
9
  NgssmExpressionTreeActionType.ngssmAddExpressionTreeNode,
10
- NgssmExpressionTreeActionType.ngssmDeleteExpressionTreeNode
10
+ NgssmExpressionTreeActionType.ngssmDeleteExpressionTreeNode,
11
+ NgssmExpressionTreeActionType.ngssmUpdateExpressionTreeNode
11
12
  ];
12
13
  }
13
14
  updateState(state, action) {
@@ -79,13 +80,25 @@ export class TreeNodeEditionReducer {
79
80
  }
80
81
  });
81
82
  }
83
+ case NgssmExpressionTreeActionType.ngssmUpdateExpressionTreeNode: {
84
+ const ngssmUpdateExpressionTreeNodeAction = action;
85
+ return updateNgssmExpressionTreeState(state, {
86
+ trees: {
87
+ [ngssmUpdateExpressionTreeNodeAction.treeId]: {
88
+ data: {
89
+ [ngssmUpdateExpressionTreeNodeAction.nodeId]: { $set: ngssmUpdateExpressionTreeNodeAction.data }
90
+ }
91
+ }
92
+ }
93
+ });
94
+ }
82
95
  }
83
96
  return state;
84
97
  }
85
98
  }
86
- TreeNodeEditionReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeEditionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
87
- TreeNodeEditionReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeEditionReducer });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeEditionReducer, decorators: [{
99
+ TreeNodeEditionReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeEditionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
100
+ TreeNodeEditionReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeEditionReducer });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeEditionReducer, decorators: [{
89
102
  type: Injectable
90
103
  }] });
91
104
  export const treeNodeEditionReducerProvider = {
@@ -93,4 +106,4 @@ export const treeNodeEditionReducerProvider = {
93
106
  useClass: TreeNodeEditionReducer,
94
107
  multi: true
95
108
  };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWVkaXRpb24ucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS1leHByZXNzaW9uLXRyZWUvcmVkdWNlcnMvdHJlZS1ub2RlLWVkaXRpb24ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBMEIsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFBeUUsNkJBQTZCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEksT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUkxRixNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRWtCLHFCQUFnQixHQUFhO1lBQzNDLDZCQUE2QixDQUFDLDBCQUEwQjtZQUN4RCw2QkFBNkIsQ0FBQyw2QkFBNkI7U0FDNUQsQ0FBQztLQW1GSDtJQWpGUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ25CLEtBQUssNkJBQTZCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxnQ0FBZ0MsR0FBRyxNQUEwQyxDQUFDO2dCQUNwRixPQUFPLDhCQUE4QixDQUFDLEtBQUssRUFBRTtvQkFDM0MsS0FBSyxFQUFFO3dCQUNMLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3pDLElBQUksRUFBRTtnQ0FDSixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFOzZCQUNqRzs0QkFDRCxLQUFLLEVBQUU7Z0NBQ0wsTUFBTSxFQUFFLENBQUMsTUFBaUMsRUFBRSxFQUFFO29DQUM1QyxNQUFNLE1BQU0sR0FBOEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO29DQUN0RCxJQUFJLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO3dDQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDOzRDQUNWLElBQUksRUFBRSxFQUFFOzRDQUNSLElBQUksRUFBRSxnQ0FBZ0MsQ0FBQyxJQUFJOzRDQUMzQyxVQUFVLEVBQUUsSUFBSTt5Q0FDakIsQ0FBQyxDQUFDO3dDQUNILE9BQU8sTUFBTSxDQUFDO3FDQUNmO29DQUVELElBQUksVUFBK0MsQ0FBQztvQ0FDcEQsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0NBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dDQUN0QyxJQUFJLFVBQVUsRUFBRTs0Q0FDZCxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnREFDM0UsY0FBYyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7NkNBQ3hCO2lEQUFNO2dEQUNMLE1BQU07NkNBQ1A7NENBRUQsU0FBUzt5Q0FDVjt3Q0FFRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7NENBQ3hFLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7NENBQ3ZCLGNBQWMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRDQUN2QixTQUFTO3lDQUNWO3FDQUNGO29DQUVELElBQUksQ0FBQyxVQUFVLElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFFO3dDQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7cUNBQ3RDO29DQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRTt3Q0FDL0IsSUFBSSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3dDQUM5QyxJQUFJLEVBQUUsZ0NBQWdDLENBQUMsSUFBSTt3Q0FDM0MsVUFBVSxFQUFFLElBQUk7cUNBQ2pCLENBQUMsQ0FBQztvQ0FFSCxPQUFPLE1BQU0sQ0FBQztnQ0FDaEIsQ0FBQzs2QkFDRjt5QkFDRjtxQkFDRjtpQkFDRixDQUFDLENBQUM7YUFDSjtZQUVELEtBQUssNkJBQTZCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxtQ0FBbUMsR0FBRyxNQUE2QyxDQUFDO2dCQUMxRixNQUFNLGVBQWUsR0FBYSw4QkFBOEIsQ0FBQyxLQUFLLENBQUM7cUJBQ3BFLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUMsTUFBTSxDQUFDLENBQzVEO3FCQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekIsZUFBZSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakUsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7b0JBQzNDLEtBQUssRUFBRTt3QkFDTCxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUM1QyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFpQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFOzRCQUNwSCxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFO3lCQUNsQztxQkFDRjtpQkFDRixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzttSEF0RlUsc0JBQXNCO3VIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7QUEwRlgsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQWE7SUFDdEQsT0FBTyxFQUFFLGFBQWE7SUFDdEIsUUFBUSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZWR1Y2VyLCBTdGF0ZSwgQWN0aW9uLCBOR1NTTV9SRURVQ0VSIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBOZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiwgTmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24sIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUsIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVFZGl0aW9uUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbXG4gICAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUubmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGUsXG4gICAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUubmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVcbiAgXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBbbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZS5pZF06IHsgJHNldDogbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZS5kYXRhIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbm9kZXM6IHtcbiAgICAgICAgICAgICAgICAkYXBwbHk6ICh2YWx1ZXM6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlW10pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dDogTmdzc21FeHByZXNzaW9uVHJlZU5vZGVbXSA9IFsuLi52YWx1ZXNdO1xuICAgICAgICAgICAgICAgICAgaWYgKG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGUucGFyZW50SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgcGF0aDogW10sXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YTogbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTogTmdzc21FeHByZXNzaW9uVHJlZU5vZGUgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICBsZXQgaW5zZXJ0aW9uSW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0cHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKG91dHB1dFtpXS5wYXRoLmluY2x1ZGVzKG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGUucGFyZW50SWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25JbmRleCA9IGkgKyAxO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChvdXRwdXRbaV0uZGF0YS5pZCA9PT0gbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZS5wYXJlbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBvdXRwdXRbaV07XG4gICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uSW5kZXggPSBpICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUgfHwgaW5zZXJ0aW9uSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJlbnQgaWQnKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnNwbGljZShpbnNlcnRpb25JbmRleCwgMCwge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiBbLi4ucGFyZW50Tm9kZS5wYXRoLCBwYXJlbnROb2RlLmRhdGEuaWRdLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlLFxuICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uO1xuICAgICAgICBjb25zdCBub2RlSWRzVG9EZWxldGU6IHN0cmluZ1tdID0gc2VsZWN0Tmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlKVxuICAgICAgICAgIC50cmVlc1tuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWRdLm5vZGVzLmZpbHRlcigobikgPT5cbiAgICAgICAgICAgIG4ucGF0aC5pbmNsdWRlcyhuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlSWQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAoKG4pID0+IG4uZGF0YS5pZCk7XG4gICAgICAgIG5vZGVJZHNUb0RlbGV0ZS5wdXNoKG5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGVJZCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW25nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLnRyZWVJZF06IHtcbiAgICAgICAgICAgICAgbm9kZXM6IHsgJGFwcGx5OiAodmFsdWVzOiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdKSA9PiB2YWx1ZXMuZmlsdGVyKCh2KSA9PiAhbm9kZUlkc1RvRGVsZXRlLmluY2x1ZGVzKHYuZGF0YS5pZCkpIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgJHVuc2V0OiBub2RlSWRzVG9EZWxldGUgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB0cmVlTm9kZUVkaXRpb25SZWR1Y2VyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR1NTTV9SRURVQ0VSLFxuICB1c2VDbGFzczogVHJlZU5vZGVFZGl0aW9uUmVkdWNlcixcbiAgbXVsdGk6IHRydWVcbn07XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWVkaXRpb24ucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS1leHByZXNzaW9uLXRyZWUvcmVkdWNlcnMvdHJlZS1ub2RlLWVkaXRpb24ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBMEIsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFHTCw2QkFBNkIsRUFFOUIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUkxRixNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRWtCLHFCQUFnQixHQUFhO1lBQzNDLDZCQUE2QixDQUFDLDBCQUEwQjtZQUN4RCw2QkFBNkIsQ0FBQyw2QkFBNkI7WUFDM0QsNkJBQTZCLENBQUMsNkJBQTZCO1NBQzVELENBQUM7S0FnR0g7SUE5RlEsV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLDZCQUE2QixDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBQzdELE1BQU0sZ0NBQWdDLEdBQUcsTUFBMEMsQ0FBQztnQkFDcEYsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7b0JBQzNDLEtBQUssRUFBRTt3QkFDTCxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUN6QyxJQUFJLEVBQUU7Z0NBQ0osQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTs2QkFDakc7NEJBQ0QsS0FBSyxFQUFFO2dDQUNMLE1B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QyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTs0QkFDcEgsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRTt5QkFDbEM7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxLQUFLLDZCQUE2QixDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sbUNBQW1DLEdBQUcsTUFBNkMsQ0FBQztnQkFDMUYsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7b0JBQzNDLEtBQUssRUFBRTt3QkFDTCxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUM1QyxJQUFJLEVBQUU7Z0NBQ0osQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUU7NkJBQ2pHO3lCQUNGO3FCQUNGO2lCQUNGLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O21IQXBHVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVOztBQXdHWCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBYTtJQUN0RCxPQUFPLEVBQUUsYUFBYTtJQUN0QixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24sIE5HU1NNX1JFRFVDRVIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7XG4gIE5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLFxuICBOZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbixcbiAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUsXG4gIE5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21FeHByZXNzaW9uVHJlZVN0YXRlLCB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZSB9IGZyb20gJy4uL21vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlRWRpdGlvblJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlLFxuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlLFxuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlXG4gIF07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZToge1xuICAgICAgICBjb25zdCBuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgW25nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGUuaWRdOiB7ICRzZXQ6IG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGUuZGF0YSB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG5vZGVzOiB7XG4gICAgICAgICAgICAgICAgJGFwcGx5OiAodmFsdWVzOiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXQ6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlW10gPSBbLi4udmFsdWVzXTtcbiAgICAgICAgICAgICAgICAgIGlmIChuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlLnBhcmVudElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgbGV0IGluc2VydGlvbkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dHB1dC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChvdXRwdXRbaV0ucGF0aC5pbmNsdWRlcyhuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlLnBhcmVudElkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uSW5kZXggPSBpICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAob3V0cHV0W2ldLmRhdGEuaWQgPT09IG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGUucGFyZW50SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0gb3V0cHV0W2ldO1xuICAgICAgICAgICAgICAgICAgICAgIGluc2VydGlvbkluZGV4ID0gaSArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKCFwYXJlbnROb2RlIHx8IGluc2VydGlvbkluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFyZW50IGlkJyk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIG91dHB1dC5zcGxpY2UoaW5zZXJ0aW9uSW5kZXgsIDAsIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogWy4uLnBhcmVudE5vZGUucGF0aCwgcGFyZW50Tm9kZS5kYXRhLmlkXSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZToge1xuICAgICAgICBjb25zdCBuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgY29uc3Qgbm9kZUlkc1RvRGVsZXRlOiBzdHJpbmdbXSA9IHNlbGVjdE5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSlcbiAgICAgICAgICAudHJlZXNbbmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkXS5ub2Rlcy5maWx0ZXIoKG4pID0+XG4gICAgICAgICAgICBuLnBhdGguaW5jbHVkZXMobmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZUlkKVxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKChuKSA9PiBuLmRhdGEuaWQpO1xuICAgICAgICBub2RlSWRzVG9EZWxldGUucHVzaChuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlSWQpO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgIG5vZGVzOiB7ICRhcHBseTogKHZhbHVlczogTmdzc21FeHByZXNzaW9uVHJlZU5vZGVbXSkgPT4gdmFsdWVzLmZpbHRlcigodikgPT4gIW5vZGVJZHNUb0RlbGV0ZS5pbmNsdWRlcyh2LmRhdGEuaWQpKSB9LFxuICAgICAgICAgICAgICBkYXRhOiB7ICR1bnNldDogbm9kZUlkc1RvRGVsZXRlIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbVVwZGF0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBbbmdzc21VcGRhdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZUlkXTogeyAkc2V0OiBuZ3NzbVVwZGF0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5kYXRhIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB0cmVlTm9kZUVkaXRpb25SZWR1Y2VyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR1NTTV9SRURVQ0VSLFxuICB1c2VDbGFzczogVHJlZU5vZGVFZGl0aW9uUmVkdWNlcixcbiAgbXVsdGk6IHRydWVcbn07XG4iXX0=
@@ -43,9 +43,9 @@ export class TreeNodeExpandReducer {
43
43
  });
44
44
  }
45
45
  }
46
- TreeNodeExpandReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
- TreeNodeExpandReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeExpandReducer });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
46
+ TreeNodeExpandReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
+ TreeNodeExpandReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeExpandReducer });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
49
49
  type: Injectable
50
50
  }] });
51
51
  export const treeNodeExpandReducerProvider = {
@@ -35,9 +35,9 @@ export class TreesReducer {
35
35
  return state;
36
36
  }
37
37
  }
38
- TreesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
- TreesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreesReducer });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreesReducer, decorators: [{
38
+ TreesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ TreesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreesReducer });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreesReducer, decorators: [{
41
41
  type: Injectable
42
42
  }] });
43
43
  export const treesReducerProvider = {
@@ -52,9 +52,9 @@ export class NgssmBreadcrumbComponent extends NgSsmComponent {
52
52
  }
53
53
  }
54
54
  }
55
- NgssmBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmBreadcrumbComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
56
- NgssmBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NgssmBreadcrumbComponent, isStandalone: true, selector: "ngssm-breadcrumb", inputs: { treeId: "treeId" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex-row-center\">\n <mat-icon class=\"fa-solid fa-folder-tree\" color=\"primary\"></mat-icon>\n <span *ngFor=\"let node of nodes$ | async; last as last\" class=\"flex-row-center\">\n\n <button mat-button [disabled]=\"last\" (click)=\"selectNode(node)\">\n {{node.label}}\n </button>\n\n <div class=\"ngssm-breadcrumb-separator\" *ngIf=\"!last\">/</div>\n </span>\n</div>", styles: [".ngssm-breadcrumb-separator{font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmBreadcrumbComponent, decorators: [{
55
+ NgssmBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmBreadcrumbComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
56
+ NgssmBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgssmBreadcrumbComponent, isStandalone: true, selector: "ngssm-breadcrumb", inputs: { treeId: "treeId" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex-row-center\">\n <mat-icon class=\"fa-solid fa-folder-tree\" color=\"primary\"></mat-icon>\n <span *ngFor=\"let node of nodes$ | async; last as last\" class=\"flex-row-center\">\n\n <button mat-button [disabled]=\"last\" (click)=\"selectNode(node)\">\n {{node.label}}\n </button>\n\n <div class=\"ngssm-breadcrumb-separator\" *ngIf=\"!last\">/</div>\n </span>\n</div>", styles: [".ngssm-breadcrumb-separator{font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmBreadcrumbComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'ngssm-breadcrumb', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex-row-center\">\n <mat-icon class=\"fa-solid fa-folder-tree\" color=\"primary\"></mat-icon>\n <span *ngFor=\"let node of nodes$ | async; last as last\" class=\"flex-row-center\">\n\n <button mat-button [disabled]=\"last\" (click)=\"selectNode(node)\">\n {{node.label}}\n </button>\n\n <div class=\"ngssm-breadcrumb-separator\" *ngIf=\"!last\">/</div>\n </span>\n</div>", styles: [".ngssm-breadcrumb-separator{font-weight:700}\n"] }]
60
60
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { treeId: [{
@@ -117,9 +117,9 @@ export class NgssmTreeComponent extends NgSsmComponent {
117
117
  }
118
118
  }
119
119
  }
120
- NgssmTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmTreeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
121
- NgssmTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NgssmTreeComponent, isStandalone: true, selector: "ngssm-tree", inputs: { treeConfig: "treeConfig" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-content class=\"flex-column-stretch fxFlex\" *ngIf=\"(treeConfig$ | async) as treeConfig\">\n <cdk-virtual-scroll-viewport itemSize=\"30\" class=\"fxFlex\">\n <div *cdkVirtualFor=\"let item of displayedItems$ | async; trackBy: getItemId\" class=\"ngssm-tree-node\"\n [style.padding-left.px]=\"item.node.level * 20\" (click)=\"selectNode(item.node)\"\n [ngClass]=\"{'selected' : (selectedNodeId$ | async) === item.node.node.nodeId}\">\n <mat-icon class=\"fa-solid fa-chevron-right\"\n *ngIf=\"item.node.node.isExpandable && item.node.isExpanded === false && item.node.status !== dataStatus.loading\"\n (click)=\"$event.stopPropagation();expand(item.node);\"></mat-icon>\n <mat-icon class=\"fa-solid fa-chevron-down\"\n *ngIf=\"item.node.node.isExpandable && item.node.isExpanded && item.node.status !== dataStatus.loading\"\n (click)=\"$event.stopPropagation();collapse(item.node)\"></mat-icon>\n <mat-spinner diameter=\"20\"\n *ngIf=\"item.node.node.isExpandable && item.node.status === dataStatus.loading\"></mat-spinner>\n <span *ngIf=\"!item.node.node.isExpandable\" class=\"not-expandable-padding\"></span>\n\n <mat-icon class=\"{{treeConfig.iconClasses[item.node.node.type]}}\" color=\"primary\"></mat-icon>\n\n <span class=\"ngssm-tree-node-label\">\n {{item.node.node.label}}\n </span>\n <span class=\"fxFlex\"></span>\n <i class=\"fa-solid fa-magnifying-glass search-icon\" *ngIf=\"item.canSearch\"\n (click)=\"$event.stopPropagation();displaySearchDialog(item.node)\">\n </i>\n </div>\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [":host{display:flex;flex-direction:column}:host .ngssm-tree-node{height:30px;display:flex;flex-direction:row;align-items:center;padding-right:12px}:host .ngssm-tree-node .fa-folder{margin-right:4px}:host .ngssm-tree-node .fa-chevron-right:hover{cursor:pointer}:host .ngssm-tree-node.selected{background-color:#e4e6f1}:host .ngssm-tree-node:hover{cursor:pointer}:host .ngssm-tree-node:hover .search-icon{display:unset}:host .ngssm-tree-node:hover:not(.selected){background-color:#f3f3f3}:host .not-expandable-padding{width:24px}:host .search-icon{font-size:12px;display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmTreeComponent, decorators: [{
120
+ NgssmTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmTreeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
121
+ NgssmTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgssmTreeComponent, isStandalone: true, selector: "ngssm-tree", inputs: { treeConfig: "treeConfig" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-content class=\"flex-column-stretch fxFlex\" *ngIf=\"(treeConfig$ | async) as treeConfig\">\n <cdk-virtual-scroll-viewport itemSize=\"30\" class=\"fxFlex\">\n <div *cdkVirtualFor=\"let item of displayedItems$ | async; trackBy: getItemId\" class=\"ngssm-tree-node\"\n [style.padding-left.px]=\"item.node.level * 20\" (click)=\"selectNode(item.node)\"\n [ngClass]=\"{'selected' : (selectedNodeId$ | async) === item.node.node.nodeId}\">\n <mat-icon class=\"fa-solid fa-chevron-right\"\n *ngIf=\"item.node.node.isExpandable && item.node.isExpanded === false && item.node.status !== dataStatus.loading\"\n (click)=\"$event.stopPropagation();expand(item.node);\"></mat-icon>\n <mat-icon class=\"fa-solid fa-chevron-down\"\n *ngIf=\"item.node.node.isExpandable && item.node.isExpanded && item.node.status !== dataStatus.loading\"\n (click)=\"$event.stopPropagation();collapse(item.node)\"></mat-icon>\n <mat-spinner diameter=\"20\"\n *ngIf=\"item.node.node.isExpandable && item.node.status === dataStatus.loading\"></mat-spinner>\n <span *ngIf=\"!item.node.node.isExpandable\" class=\"not-expandable-padding\"></span>\n\n <mat-icon class=\"{{treeConfig.iconClasses[item.node.node.type]}}\" color=\"primary\"></mat-icon>\n\n <span class=\"ngssm-tree-node-label\">\n {{item.node.node.label}}\n </span>\n <span class=\"fxFlex\"></span>\n <i class=\"fa-solid fa-magnifying-glass search-icon\" *ngIf=\"item.canSearch\"\n (click)=\"$event.stopPropagation();displaySearchDialog(item.node)\">\n </i>\n </div>\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [":host{display:flex;flex-direction:column}:host .ngssm-tree-node{height:30px;display:flex;flex-direction:row;align-items:center;padding-right:12px}:host .ngssm-tree-node .fa-folder{margin-right:4px}:host .ngssm-tree-node .fa-chevron-right:hover{cursor:pointer}:host .ngssm-tree-node.selected{background-color:#e4e6f1}:host .ngssm-tree-node:hover{cursor:pointer}:host .ngssm-tree-node:hover .search-icon{display:unset}:host .ngssm-tree-node:hover:not(.selected){background-color:#f3f3f3}:host .not-expandable-padding{width:24px}:host .search-icon{font-size:12px;display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmTreeComponent, decorators: [{
123
123
  type: Component,
124
124
  args: [{ selector: 'ngssm-tree', standalone: true, imports: [CommonModule, ScrollingModule, MatCardModule, MatIconModule, MatProgressSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-content class=\"flex-column-stretch fxFlex\" *ngIf=\"(treeConfig$ | async) as treeConfig\">\n <cdk-virtual-scroll-viewport itemSize=\"30\" class=\"fxFlex\">\n <div *cdkVirtualFor=\"let item of displayedItems$ | async; trackBy: getItemId\" class=\"ngssm-tree-node\"\n [style.padding-left.px]=\"item.node.level * 20\" (click)=\"selectNode(item.node)\"\n [ngClass]=\"{'selected' : (selectedNodeId$ | async) === item.node.node.nodeId}\">\n <mat-icon class=\"fa-solid fa-chevron-right\"\n *ngIf=\"item.node.node.isExpandable && item.node.isExpanded === false && item.node.status !== dataStatus.loading\"\n (click)=\"$event.stopPropagation();expand(item.node);\"></mat-icon>\n <mat-icon class=\"fa-solid fa-chevron-down\"\n *ngIf=\"item.node.node.isExpandable && item.node.isExpanded && item.node.status !== dataStatus.loading\"\n (click)=\"$event.stopPropagation();collapse(item.node)\"></mat-icon>\n <mat-spinner diameter=\"20\"\n *ngIf=\"item.node.node.isExpandable && item.node.status === dataStatus.loading\"></mat-spinner>\n <span *ngIf=\"!item.node.node.isExpandable\" class=\"not-expandable-padding\"></span>\n\n <mat-icon class=\"{{treeConfig.iconClasses[item.node.node.type]}}\" color=\"primary\"></mat-icon>\n\n <span class=\"ngssm-tree-node-label\">\n {{item.node.node.label}}\n </span>\n <span class=\"fxFlex\"></span>\n <i class=\"fa-solid fa-magnifying-glass search-icon\" *ngIf=\"item.canSearch\"\n (click)=\"$event.stopPropagation();displaySearchDialog(item.node)\">\n </i>\n </div>\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [":host{display:flex;flex-direction:column}:host .ngssm-tree-node{height:30px;display:flex;flex-direction:row;align-items:center;padding-right:12px}:host .ngssm-tree-node .fa-folder{margin-right:4px}:host .ngssm-tree-node .fa-chevron-right:hover{cursor:pointer}:host .ngssm-tree-node.selected{background-color:#e4e6f1}:host .ngssm-tree-node:hover{cursor:pointer}:host .ngssm-tree-node:hover .search-icon{display:unset}:host .ngssm-tree-node:hover:not(.selected){background-color:#f3f3f3}:host .not-expandable-padding{width:24px}:host .search-icon{font-size:12px;display:none}\n"] }]
125
125
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { treeConfig: [{
@@ -97,9 +97,9 @@ export class NgssmTreeSearchDialogComponent extends NgSsmComponent {
97
97
  };
98
98
  }
99
99
  }
100
- NgssmTreeSearchDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmTreeSearchDialogComponent, deps: [{ token: i1.Store }, { token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
101
- NgssmTreeSearchDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NgssmTreeSearchDialogComponent, isStandalone: true, selector: "ngssm-ngssm-tree-search-dialog", viewQueries: [{ propertyName: "resultsViewerContainer", first: true, predicate: ["resultsViewerContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<h1 mat-dialog-title>Tree search dialog</h1>\n<mat-dialog-content class=\"flex-column-stretch fxFlex\">\n <mat-card class=\"flex-column-stretch\">\n <mat-card-content class=\"flex-row-center\">\n <mat-form-field class=\"with-margin-right-12 fxFlex\">\n <mat-label>Starts search in</mat-label>\n <input matInput readonly [formControl]=\"searchRootPathControl\">\n </mat-form-field>\n\n <mat-form-field class=\"fxFlex with-margin-right-12\">\n <mat-label>Search pattern</mat-label>\n <input matInput [formControl]=\"searchPatternControl\">\n <mat-error *ngIf=\"searchPatternControl.errors?.['regex']\">\n {{searchPatternControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n\n <button mat-stroked-button color=\"primary\" [disabled]=\"searchPatternControl.invalid\" (click)=\"search()\"\n *ngIf=\"(searchStatus$ | async) !== searchStatus.inProgress\">\n <mat-icon class=\"fa-solid fa-magnifying-glass\"></mat-icon>\n Search\n </button>\n\n <button mat-raised-button color=\"accent\" (click)=\"abort()\"\n *ngIf=\"(searchStatus$ | async) === searchStatus.inProgress\">\n <mat-icon class=\"fa-solid fa-ban\"></mat-icon>\n Abort\n </button>\n </mat-card-content>\n <mat-card-footer class=\"flex-row-center\" *ngIf=\"(searchStatus$ | async) === searchStatus.inProgress\">\n <mat-spinner [diameter]=\"20\"></mat-spinner>\n {{ currentSearchedPath$ | async }}\n </mat-card-footer>\n </mat-card>\n <mat-card class=\"flex-column-stretch fxFlex with-margin-top-8\">\n <ng-container #resultsViewerContainer></ng-container>\n </mat-card>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"close()\">Close</button>\n</mat-dialog-actions>", styles: [":host{display:flex;flex-direction:column;height:100%}:host .mat-mdc-dialog-content{max-height:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i8.MatCardFooter, selector: "mat-card-footer" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NgssmTreeSearchDialogComponent, decorators: [{
100
+ NgssmTreeSearchDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmTreeSearchDialogComponent, deps: [{ token: i1.Store }, { token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
101
+ NgssmTreeSearchDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgssmTreeSearchDialogComponent, isStandalone: true, selector: "ngssm-ngssm-tree-search-dialog", viewQueries: [{ propertyName: "resultsViewerContainer", first: true, predicate: ["resultsViewerContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<h1 mat-dialog-title>Tree search dialog</h1>\n<mat-dialog-content class=\"flex-column-stretch fxFlex\">\n <mat-card class=\"flex-column-stretch\">\n <mat-card-content class=\"flex-row-center\">\n <mat-form-field class=\"with-margin-right-12 fxFlex\">\n <mat-label>Starts search in</mat-label>\n <input matInput readonly [formControl]=\"searchRootPathControl\">\n </mat-form-field>\n\n <mat-form-field class=\"fxFlex with-margin-right-12\">\n <mat-label>Search pattern</mat-label>\n <input matInput [formControl]=\"searchPatternControl\">\n <mat-error *ngIf=\"searchPatternControl.errors?.['regex']\">\n {{searchPatternControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n\n <button mat-stroked-button color=\"primary\" [disabled]=\"searchPatternControl.invalid\" (click)=\"search()\"\n *ngIf=\"(searchStatus$ | async) !== searchStatus.inProgress\">\n <mat-icon class=\"fa-solid fa-magnifying-glass\"></mat-icon>\n Search\n </button>\n\n <button mat-raised-button color=\"accent\" (click)=\"abort()\"\n *ngIf=\"(searchStatus$ | async) === searchStatus.inProgress\">\n <mat-icon class=\"fa-solid fa-ban\"></mat-icon>\n Abort\n </button>\n </mat-card-content>\n <mat-card-footer class=\"flex-row-center\" *ngIf=\"(searchStatus$ | async) === searchStatus.inProgress\">\n <mat-spinner [diameter]=\"20\"></mat-spinner>\n {{ currentSearchedPath$ | async }}\n </mat-card-footer>\n </mat-card>\n <mat-card class=\"flex-column-stretch fxFlex with-margin-top-8\">\n <ng-container #resultsViewerContainer></ng-container>\n </mat-card>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"close()\">Close</button>\n</mat-dialog-actions>", styles: [":host{display:flex;flex-direction:column;height:100%}:host .mat-mdc-dialog-content{max-height:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i8.MatCardFooter, selector: "mat-card-footer" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgssmTreeSearchDialogComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'ngssm-ngssm-tree-search-dialog', standalone: true, imports: [
105
105
  CommonModule,
@@ -41,9 +41,9 @@ export class TreeNodeLoadingEffect {
41
41
  });
42
42
  }
43
43
  }
44
- TreeNodeLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeLoadingEffect, deps: [{ token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
45
- TreeNodeLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeLoadingEffect });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeLoadingEffect, decorators: [{
44
+ TreeNodeLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeLoadingEffect, deps: [{ token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
45
+ TreeNodeLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeLoadingEffect });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeLoadingEffect, decorators: [{
47
47
  type: Injectable
48
48
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
49
49
  type: Inject,
@@ -76,9 +76,9 @@ export class TreeNodesSearchingEffect {
76
76
  this.dialog = undefined;
77
77
  }
78
78
  }
79
- TreeNodesSearchingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesSearchingEffect, deps: [{ token: i1.MatDialog }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
80
- TreeNodesSearchingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesSearchingEffect });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesSearchingEffect, decorators: [{
79
+ TreeNodesSearchingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesSearchingEffect, deps: [{ token: i1.MatDialog }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
80
+ TreeNodesSearchingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesSearchingEffect });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesSearchingEffect, decorators: [{
82
82
  type: Injectable
83
83
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Logger }]; } });
84
84
  export const treeNodesSearchingEffectProvider = {
@@ -124,9 +124,9 @@ export class TreeNodeExpandReducer {
124
124
  return state;
125
125
  }
126
126
  }
127
- TreeNodeExpandReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
128
- TreeNodeExpandReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeExpandReducer });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
127
+ TreeNodeExpandReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
128
+ TreeNodeExpandReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeExpandReducer });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
130
130
  type: Injectable
131
131
  }] });
132
132
  export const treeNodeExpandReducerProvider = {
@@ -23,9 +23,9 @@ export class TreeNodeSelectionReducer {
23
23
  return state;
24
24
  }
25
25
  }
26
- TreeNodeSelectionReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeSelectionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
27
- TreeNodeSelectionReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeSelectionReducer });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodeSelectionReducer, decorators: [{
26
+ TreeNodeSelectionReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeSelectionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
27
+ TreeNodeSelectionReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeSelectionReducer });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodeSelectionReducer, decorators: [{
29
29
  type: Injectable
30
30
  }] });
31
31
  export const treeNodeSelectionReducerProvider = {
@@ -82,9 +82,9 @@ export class TreeNodesSearchReducer {
82
82
  return state;
83
83
  }
84
84
  }
85
- TreeNodesSearchReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesSearchReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
86
- TreeNodesSearchReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesSearchReducer });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesSearchReducer, decorators: [{
85
+ TreeNodesSearchReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesSearchReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
86
+ TreeNodesSearchReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesSearchReducer });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesSearchReducer, decorators: [{
88
88
  type: Injectable
89
89
  }] });
90
90
  export const treeNodesSearchReducerProvider = {
@@ -46,9 +46,9 @@ export class TreeNodesReducer {
46
46
  return state;
47
47
  }
48
48
  }
49
- TreeNodesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
- TreeNodesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesReducer });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreeNodesReducer, decorators: [{
49
+ TreeNodesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
+ TreeNodesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesReducer });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeNodesReducer, decorators: [{
52
52
  type: Injectable
53
53
  }] });
54
54
  export const treeNodesReducerProvider = {
@@ -40,9 +40,9 @@ export class TreesReducer {
40
40
  return state;
41
41
  }
42
42
  }
43
- TreesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
- TreesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreesReducer });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TreesReducer, decorators: [{
43
+ TreesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ TreesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreesReducer });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreesReducer, decorators: [{
46
46
  type: Injectable
47
47
  }] });
48
48
  export const treesReducerProvider = {