ngssm-tree 18.2.0 → 18.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/esm2022/lib/ngssm-expression-tree/components/ngssm-expression-tree/ngssm-expression-tree.component.mjs +3 -3
  2. package/esm2022/lib/ngssm-expression-tree/components/ngssm-expression-tree-node/ngssm-expression-tree-node.component.mjs +3 -3
  3. package/esm2022/lib/ngssm-expression-tree/components/ngssm-expression-tree-node-details/ngssm-expression-tree-node-details.component.mjs +3 -3
  4. package/esm2022/lib/ngssm-expression-tree/reducers/cut-and-paste.reducer.mjs +3 -3
  5. package/esm2022/lib/ngssm-expression-tree/reducers/tree-node-edition.reducer.mjs +3 -3
  6. package/esm2022/lib/ngssm-expression-tree/reducers/tree-node-expand.reducer.mjs +3 -3
  7. package/esm2022/lib/ngssm-expression-tree/reducers/trees.reducer.mjs +3 -3
  8. package/esm2022/lib/ngssm-tree/components/ngssm-breadcrumb/ngssm-breadcrumb.component.mjs +3 -3
  9. package/esm2022/lib/ngssm-tree/components/ngssm-tree/ngssm-tree.component.mjs +3 -3
  10. package/esm2022/lib/ngssm-tree/components/ngssm-tree-search-dialog/ngssm-tree-search-dialog.component.mjs +3 -3
  11. package/esm2022/lib/ngssm-tree/effects/tree-node-loading.effect.mjs +3 -3
  12. package/esm2022/lib/ngssm-tree/effects/tree-nodes-searching.effect.mjs +3 -3
  13. package/esm2022/lib/ngssm-tree/reducers/tree-node-expand.reducer.mjs +3 -3
  14. package/esm2022/lib/ngssm-tree/reducers/tree-node-selection.reducer.mjs +3 -3
  15. package/esm2022/lib/ngssm-tree/reducers/tree-nodes-search.reducer.mjs +3 -3
  16. package/esm2022/lib/ngssm-tree/reducers/tree-nodes.reducer.mjs +3 -3
  17. package/esm2022/lib/ngssm-tree/reducers/trees.reducer.mjs +3 -3
  18. package/fesm2022/ngssm-tree.mjs +51 -51
  19. package/package.json +1 -1
@@ -86,10 +86,10 @@ export class NgssmExpressionTreeComponent extends NgSsmComponent {
86
86
  forceRefresh() {
87
87
  this.changeDetectorRef.markForCheck();
88
88
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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\"\n (heightChanged)=\"forceRefresh()\">\n </ngssm-expression-tree-node-details>\n </div>\n </div>\n</ng-template>\n", 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 }); }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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\"\n (heightChanged)=\"forceRefresh()\">\n </ngssm-expression-tree-node-details>\n </div>\n </div>\n</ng-template>\n", 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 }); }
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeComponent, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeComponent, decorators: [{
93
93
  type: Component,
94
94
  args: [{ selector: 'ngssm-expression-tree', standalone: true, imports: [
95
95
  CommonModule,
@@ -135,10 +135,10 @@ export class NgssmExpressionTreeNodeComponent extends NgSsmComponent {
135
135
  this.dispatchAction(new NgssmPasteExpressionTreeNodeAction(treeId, nodeId, target));
136
136
  }
137
137
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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-icon\" *ngIf=\"(nodeCssIcon$ | async) !== undefined\" id=\"treeNodeIcon\">\n <mat-icon class=\"{{nodeCssIcon$ | async}}\"></mat-icon>\n</div>\n\n<div class=\"ngssm-expression-tree-node-label\" [matMenuTriggerFor]=\"contextMenu\"\n [class.ngssm-expression-tree-node-to-cut]=\"(cutAndPaste$ | async)?.isPartOfCut === true\" id=\"treeNodeLabel\">\n {{nodeLabel$ | async}}\n</div>\n\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>\n\n<mat-menu #contextMenu=\"matMenu\" [class]=\"'ngssm-expression-tree-popup-menu'\">\n <div class=\"flex-column-stretch\"\n *ngIf=\"treeConfig?.displayCutAndPasteMenus === true && (cutAndPaste$ | async) as cutAndPasteSetup\">\n <button mat-menu-item (click)=\"cut()\" *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === false\"\n [disabled]=\"cutAndPasteSetup.canCut !== true\">\n <mat-icon class=\"fa-solid fa-scissors\"></mat-icon>\n <span>Cut</span>\n </button>\n <button mat-menu-item *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === true\" (click)=\"cancelCut()\">\n <mat-icon class=\"fa-solid fa-slash\"></mat-icon>\n <span>Cancel cut</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteInside !== true\" (click)=\"paste('Inside')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste inside</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteAfter !== true\" (click)=\"paste('After')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste after</span>\n </button>\n <mat-divider></mat-divider>\n </div>\n\n <button mat-menu-item (click)=\"expandAll()\">\n <mat-icon class=\"fa-solid fa-up-right-and-down-left-from-center\"></mat-icon>\n <span>Expand all</span>\n </button>\n <button mat-menu-item (click)=\"collapseAll()\">\n <mat-icon class=\"fa-solid fa-down-left-and-up-right-to-center\"></mat-icon>\n <span>Collapse all</span>\n </button>\n</mat-menu>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\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: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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-icon\" *ngIf=\"(nodeCssIcon$ | async) !== undefined\" id=\"treeNodeIcon\">\n <mat-icon class=\"{{nodeCssIcon$ | async}}\"></mat-icon>\n</div>\n\n<div class=\"ngssm-expression-tree-node-label\" [matMenuTriggerFor]=\"contextMenu\"\n [class.ngssm-expression-tree-node-to-cut]=\"(cutAndPaste$ | async)?.isPartOfCut === true\" id=\"treeNodeLabel\">\n {{nodeLabel$ | async}}\n</div>\n\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>\n\n<mat-menu #contextMenu=\"matMenu\" [class]=\"'ngssm-expression-tree-popup-menu'\">\n <div class=\"flex-column-stretch\"\n *ngIf=\"treeConfig?.displayCutAndPasteMenus === true && (cutAndPaste$ | async) as cutAndPasteSetup\">\n <button mat-menu-item (click)=\"cut()\" *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === false\"\n [disabled]=\"cutAndPasteSetup.canCut !== true\">\n <mat-icon class=\"fa-solid fa-scissors\"></mat-icon>\n <span>Cut</span>\n </button>\n <button mat-menu-item *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === true\" (click)=\"cancelCut()\">\n <mat-icon class=\"fa-solid fa-slash\"></mat-icon>\n <span>Cancel cut</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteInside !== true\" (click)=\"paste('Inside')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste inside</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteAfter !== true\" (click)=\"paste('After')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste after</span>\n </button>\n <mat-divider></mat-divider>\n </div>\n\n <button mat-menu-item (click)=\"expandAll()\">\n <mat-icon class=\"fa-solid fa-up-right-and-down-left-from-center\"></mat-icon>\n <span>Expand all</span>\n </button>\n <button mat-menu-item (click)=\"collapseAll()\">\n <mat-icon class=\"fa-solid fa-down-left-and-up-right-to-center\"></mat-icon>\n <span>Collapse all</span>\n </button>\n</mat-menu>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\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: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeComponent, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeComponent, decorators: [{
142
142
  type: Component,
143
143
  args: [{ selector: 'ngssm-expression-tree-node', standalone: true, imports: [CommonModule, MatIconModule, MatMenuModule, MatDividerModule, NgssmComponentDisplayDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-expression-tree-node-icon\" *ngIf=\"(nodeCssIcon$ | async) !== undefined\" id=\"treeNodeIcon\">\n <mat-icon class=\"{{nodeCssIcon$ | async}}\"></mat-icon>\n</div>\n\n<div class=\"ngssm-expression-tree-node-label\" [matMenuTriggerFor]=\"contextMenu\"\n [class.ngssm-expression-tree-node-to-cut]=\"(cutAndPaste$ | async)?.isPartOfCut === true\" id=\"treeNodeLabel\">\n {{nodeLabel$ | async}}\n</div>\n\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>\n\n<mat-menu #contextMenu=\"matMenu\" [class]=\"'ngssm-expression-tree-popup-menu'\">\n <div class=\"flex-column-stretch\"\n *ngIf=\"treeConfig?.displayCutAndPasteMenus === true && (cutAndPaste$ | async) as cutAndPasteSetup\">\n <button mat-menu-item (click)=\"cut()\" *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === false\"\n [disabled]=\"cutAndPasteSetup.canCut !== true\">\n <mat-icon class=\"fa-solid fa-scissors\"></mat-icon>\n <span>Cut</span>\n </button>\n <button mat-menu-item *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === true\" (click)=\"cancelCut()\">\n <mat-icon class=\"fa-solid fa-slash\"></mat-icon>\n <span>Cancel cut</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteInside !== true\" (click)=\"paste('Inside')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste inside</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteAfter !== true\" (click)=\"paste('After')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste after</span>\n </button>\n <mat-divider></mat-divider>\n </div>\n\n <button mat-menu-item (click)=\"expandAll()\">\n <mat-icon class=\"fa-solid fa-up-right-and-down-left-from-center\"></mat-icon>\n <span>Expand all</span>\n </button>\n <button mat-menu-item (click)=\"collapseAll()\">\n <mat-icon class=\"fa-solid fa-down-left-and-up-right-to-center\"></mat-icon>\n <span>Collapse all</span>\n </button>\n</mat-menu>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\n"] }]
144
144
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { nodeId: [{
@@ -51,10 +51,10 @@ export class NgssmExpressionTreeNodeDetailsComponent extends NgSsmComponent {
51
51
  get componentToDisplay$() {
52
52
  return this._componentToDisplay$.asObservable();
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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 }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.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: () => [{ type: i1.Store }, { type: i0.ElementRef }], propDecorators: { heightChanged: [{
@@ -104,10 +104,10 @@ export class CutAndPasteReducer {
104
104
  }
105
105
  });
106
106
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CutAndPasteReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
108
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CutAndPasteReducer }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CutAndPasteReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
108
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CutAndPasteReducer }); }
109
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CutAndPasteReducer, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CutAndPasteReducer, decorators: [{
111
111
  type: Injectable
112
112
  }] });
113
113
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3V0LWFuZC1wYXN0ZS5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLWV4cHJlc3Npb24tdHJlZS9yZWR1Y2Vycy9jdXQtYW5kLXBhc3RlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUl6QyxPQUFPLEVBR0wsNkJBQTZCLEVBRTlCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFJMUYsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVrQixxQkFBZ0IsR0FBYTtZQUMzQyw2QkFBNkIsQ0FBQywwQkFBMEI7WUFDeEQsNkJBQTZCLENBQUMsZ0NBQWdDO1lBQzlELDZCQUE2QixDQUFDLDRCQUE0QjtTQUMzRCxDQUFDO0tBOEdIO0lBNUdRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLDZCQUE2QixDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxnQ0FBZ0MsR0FBRyxNQUEwQyxDQUFDO2dCQUNwRixPQUFPLDhCQUE4QixDQUFDLEtBQUssRUFBRTtvQkFDM0MsS0FBSyxFQUFFO3dCQUNMLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3pDLE9BQU8sRUFBRTtnQ0FDUCxJQUFJLEVBQUUsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQ3BHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENB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QUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7b0NBQ3hCLElBQUksV0FBVyxHQUFHLFlBQVksRUFBRSxDQUFDO3dDQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7d0NBQ3pELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0NBQ3BELE9BQU8sTUFBTSxDQUFDO29DQUNoQixDQUFDO29DQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0NBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztvQ0FFekQsT0FBTyxNQUFNLENBQUM7Z0NBQ2hCLENBQUM7NkJBQ0Y7NEJBQ0QsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTt5QkFDN0I7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUNuRCxPQUFPLDhCQUE4QixDQUFDLEtBQUssRUFBRTtZQUMzQyxLQUFLLEVBQUU7Z0JBQ0wsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FsSFUsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB1cGRhdGUgZnJvbSAnaW1tdXRhYmlsaXR5LWhlbHBlcic7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7XG4gIE5nc3NtQ2FuY2VsQ3V0RXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLFxuICBOZ3NzbUN1dEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbixcbiAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUsXG4gIE5nc3NtUGFzdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUsIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3V0QW5kUGFzdGVSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUN1dEV4cHJlc3Npb25UcmVlTm9kZSxcbiAgICBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUNhbmNlbEN1dEV4cHJlc3Npb25UcmVlTm9kZSxcbiAgICBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbVBhc3RlRXhwcmVzc2lvblRyZWVOb2RlXG4gIF07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUN1dEV4cHJlc3Npb25UcmVlTm9kZToge1xuICAgICAgICBjb25zdCBuZ3NzbUN1dEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUN1dEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbbmdzc21DdXRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBub2RlQ3V0OiB7XG4gICAgICAgICAgICAgICAgJHNldDogc2VsZWN0Tmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlKS50cmVlc1tuZ3NzbUN1dEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWRdPy5ub2Rlcy5maW5kKFxuICAgICAgICAgICAgICAgICAgKG4pID0+IG4uZGF0YS5pZCA9PT0gbmdzc21DdXRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZUlkXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUNhbmNlbEN1dEV4cHJlc3Npb25UcmVlTm9kZToge1xuICAgICAgICBjb25zdCBuZ3NzbUNhbmNlbEN1dEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUNhbmNlbEN1dEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRDdXRBbmRQYXN0ZShzdGF0ZSwgbmdzc21DYW5jZWxDdXRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbVBhc3RlRXhwcmVzc2lvblRyZWVOb2RlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtUGFzdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21QYXN0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgY29uc3QgdHJlZSA9IHNlbGVjdE5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSkudHJlZXNbbmdzc21QYXN0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWRdO1xuICAgICAgICBjb25zdCBjdXROb2RlID0gdHJlZS5ub2RlQ3V0O1xuICAgICAgICBpZiAoIWN1dE5vZGUpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0cmVlLm5vZGVzLmZpbmRJbmRleCgobikgPT4gbi5kYXRhLmlkID09PSBjdXROb2RlLmRhdGEuaWQpO1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlc2V0Q3V0QW5kUGFzdGUoc3RhdGUsIG5nc3NtUGFzdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0cmVlLm5vZGVzLmZpbmQoKG4pID0+IG4uZGF0YS5pZCA9PT0gbmdzc21QYXN0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlSWQpO1xuICAgICAgICBpZiAoIXRhcmdldE5vZGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXNldEN1dEFuZFBhc3RlKHN0YXRlLCBuZ3NzbVBhc3RlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLnRyZWVJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdGFyZ2V0SW5kZXggPSB0cmVlLm5vZGVzLmZpbmRJbmRleCgobikgPT4gbi5kYXRhLmlkID09PSBuZ3NzbVBhc3RlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGVJZCk7XG4gICAgICAgIGlmIChuZ3NzbVBhc3RlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLnRhcmdldCA9PT0gJ0luc2lkZScpIHtcbiAgICAgICAgICB0YXJnZXRJbmRleCA9IHRhcmdldEluZGV4ICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IHRhcmdldEluZGV4OyBpbmRleCA8IHRyZWUubm9kZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoISh0cmVlLm5vZGVzW2luZGV4ICsgMV0/LnBhdGggPz8gW10pLmluY2x1ZGVzKG5nc3NtUGFzdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZUlkKSkge1xuICAgICAgICAgICAgICB0YXJnZXRJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3QmFzZVBhdGggPVxuICAgICAgICAgIG5nc3NtUGFzdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udGFyZ2V0ID09PSAnQWZ0ZXInID8gdGFyZ2V0Tm9kZS5wYXRoIDogWy4uLnRhcmdldE5vZGUucGF0aCwgdGFyZ2V0Tm9kZS5kYXRhLmlkXTtcbiAgICAgICAgY29uc3QgcGF0aFBhcnRzVG9SZW1vdmUgPSBjdXROb2RlLnBhdGgubGVuZ3RoO1xuICAgICAgICBpZiAobmV3QmFzZVBhdGggPT09IGN1dE5vZGUucGF0aCAmJiBjdXJyZW50SW5kZXggPT09IHRhcmdldEluZGV4KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRDdXRBbmRQYXN0ZShzdGF0ZSwgbmdzc21QYXN0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50cmVlSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW92ZWROb2RlID0gdXBkYXRlKGN1dE5vZGUsIHtcbiAgICAgICAgICBwYXRoOiB7ICRzZXQ6IG5ld0Jhc2VQYXRoIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgcGFyZW50SWQ6IHsgJHNldDogbmdzc21QYXN0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi50YXJnZXQgPT09ICdBZnRlcicgPyB0YXJnZXROb2RlLmRhdGEucGFyZW50SWQgOiB0YXJnZXROb2RlLmRhdGEuaWQgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgbm9kZXNUb01vdmU6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlW10gPSB0cmVlLm5vZGVzXG4gICAgICAgICAgLmZpbHRlcigobikgPT4gbi5wYXRoLmluY2x1ZGVzKGN1dE5vZGUuZGF0YS5pZCkpXG4gICAgICAgICAgLm1hcCgobm9kZSkgPT4gKHtcbiAgICAgICAgICAgIC4uLm5vZGUsXG4gICAgICAgICAgICBwYXRoOiBbLi4ubmV3QmFzZVBhdGgsIC4uLm5vZGUucGF0aC5zbGljZShwYXRoUGFydHNUb1JlbW92ZSldXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW25nc3NtUGFzdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBub2Rlczoge1xuICAgICAgICAgICAgICAgICRhcHBseTogKG5vZGVzOiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsZXQgb3V0cHV0ID0gWy4uLm5vZGVzXTtcbiAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRJbmRleCA+IGN1cnJlbnRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQuc3BsaWNlKHRhcmdldEluZGV4LCAwLCBtb3ZlZE5vZGUsIC4uLm5vZGVzVG9Nb3ZlKTtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnNwbGljZShjdXJyZW50SW5kZXgsIG5vZGVzVG9Nb3ZlLmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBvdXRwdXQuc3BsaWNlKGN1cnJlbnRJbmRleCwgbm9kZXNUb01vdmUubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICAgICAgICBvdXRwdXQuc3BsaWNlKHRhcmdldEluZGV4LCAwLCBtb3ZlZE5vZGUsIC4uLm5vZGVzVG9Nb3ZlKTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG5vZGVDdXQ6IHsgJHNldDogdW5kZWZpbmVkIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRDdXRBbmRQYXN0ZShzdGF0ZTogU3RhdGUsIHRyZWVJZDogc3RyaW5nKTogU3RhdGUge1xuICAgIHJldHVybiB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgIHRyZWVzOiB7XG4gICAgICAgIFt0cmVlSWRdOiB7ICR1bnNldDogWydub2RlQ3V0J10gfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -117,10 +117,10 @@ export class TreeNodeEditionReducer {
117
117
  isExpanded: true
118
118
  });
119
119
  }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeEditionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
121
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeEditionReducer }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeEditionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
121
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeEditionReducer }); }
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeEditionReducer, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeEditionReducer, decorators: [{
124
124
  type: Injectable
125
125
  }] });
126
126
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWVkaXRpb24ucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS1leHByZXNzaW9uLXRyZWUvcmVkdWNlcnMvdHJlZS1ub2RlLWVkaXRpb24ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFJTCw2QkFBNkIsRUFFOUIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUkxRixNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRWtCLHFCQUFnQixHQUFhO1lBQzNDLDZCQUE2QixDQUFDLDBCQUEwQjtZQUN4RCw2QkFBNkIsQ0FBQyw2QkFBNkI7WUFDM0QsNkJBQTZCLENBQUMsNkJBQTZCO1lBQzNELDZCQUE2QixDQUFDLDJCQUEyQjtTQUMxRCxDQUFDO0tBdUhIO0lBckhRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLDZCQUE2QixDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxnQ0FBZ0MsR0FBRyxNQUEwQyxDQUFDO2dCQUNwRixPQUFPLDhCQUE4QixDQUFDLEtBQUssRUFBRTtvQkFDM0MsS0FBSyxFQUFFO3dCQUNMLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3pDLElBQUksRUFBRTtnQ0FDSixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFOzZCQUNqRzs0QkFDRCxLQUFLLEVBQUU7Z0NBQ0wsTUFBTSxFQUFF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Q1gsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxJQUFJLGNBQWMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFO1lBQ2pDLElBQUksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBNUhVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZWR1Y2VyLCBTdGF0ZSwgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQge1xuICBOZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbixcbiAgTmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVzQWN0aW9uLFxuICBOZ3NzbURlbGV0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbixcbiAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUsXG4gIE5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21FeHByZXNzaW9uVHJlZVN0YXRlLCB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBOZ3NzbUV4cHJlc3Npb25UcmVlRGF0YSwgTmdzc21FeHByZXNzaW9uVHJlZU5vZGUsIE5nc3NtTm9kZSB9IGZyb20gJy4uL21vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlRWRpdGlvblJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlLFxuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlLFxuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlLFxuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2Rlc1xuICBdO1xuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUubmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW25nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLnRyZWVJZF06IHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIFtuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlLmlkXTogeyAkc2V0OiBuZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlLmRhdGEgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBub2Rlczoge1xuICAgICAgICAgICAgICAgICRhcHBseTogKHZhbHVlczogTmdzc21FeHByZXNzaW9uVHJlZU5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0OiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdID0gWy4uLnZhbHVlc107XG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZE5vZGVUb0xpc3Qobmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZSwgb3V0cHV0KTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUFkZEV4cHJlc3Npb25UcmVlTm9kZXM6IHtcbiAgICAgICAgY29uc3Qgbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVzQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2Rlc0FjdGlvbjtcbiAgICAgICAgY29uc3QgbmV3UHJvcHM6IE5nc3NtRXhwcmVzc2lvblRyZWVEYXRhID0ge307XG4gICAgICAgIG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2Rlc0FjdGlvbi5ub2Rlcy5mb3JFYWNoKChub2RlKSA9PiAobmV3UHJvcHNbbm9kZS5pZF0gPSBub2RlLmRhdGEpKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbbmdzc21BZGRFeHByZXNzaW9uVHJlZU5vZGVzQWN0aW9uLnRyZWVJZF06IHtcbiAgICAgICAgICAgICAgZGF0YTogeyAkbWVyZ2U6IG5ld1Byb3BzIH0sXG4gICAgICAgICAgICAgIG5vZGVzOiB7XG4gICAgICAgICAgICAgICAgJGFwcGx5OiAodmFsdWVzOiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXQ6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlW10gPSBbLi4udmFsdWVzXTtcbiAgICAgICAgICAgICAgICAgIG5nc3NtQWRkRXhwcmVzc2lvblRyZWVOb2Rlc0FjdGlvbi5ub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB0aGlzLmFkZE5vZGVUb0xpc3Qobm9kZSwgb3V0cHV0KSk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUubmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb247XG4gICAgICAgIGNvbnN0IG5vZGVJZHNUb0RlbGV0ZTogc3RyaW5nW10gPSBzZWxlY3ROZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUpXG4gICAgICAgICAgLnRyZWVzW25nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLnRyZWVJZF0ubm9kZXMuZmlsdGVyKChuKSA9PlxuICAgICAgICAgICAgbi5wYXRoLmluY2x1ZGVzKG5nc3NtRGVsZXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGVJZClcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcCgobikgPT4gbi5kYXRhLmlkKTtcbiAgICAgICAgbm9kZUlkc1RvRGVsZXRlLnB1c2gobmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24ubm9kZUlkKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbbmdzc21EZWxldGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBub2RlczogeyAkYXBwbHk6ICh2YWx1ZXM6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlW10pID0+IHZhbHVlcy5maWx0ZXIoKHYpID0+ICFub2RlSWRzVG9EZWxldGUuaW5jbHVkZXModi5kYXRhLmlkKSkgfSxcbiAgICAgICAgICAgICAgZGF0YTogeyAkdW5zZXQ6IG5vZGVJZHNUb0RlbGV0ZSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbVVwZGF0ZUV4cHJlc3Npb25UcmVlTm9kZToge1xuICAgICAgICBjb25zdCBuZ3NzbVVwZGF0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbVVwZGF0ZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbbmdzc21VcGRhdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgW25nc3NtVXBkYXRlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLm5vZGVJZF06IHsgJHNldDogbmdzc21VcGRhdGVFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24uZGF0YSB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTm9kZVRvTGlzdChub2RlOiBOZ3NzbU5vZGUsIG5vZGVMaXN0OiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdKTogdm9pZCB7XG4gICAgaWYgKG5vZGUucGFyZW50SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbm9kZUxpc3QucHVzaCh7XG4gICAgICAgIHBhdGg6IFtdLFxuICAgICAgICBkYXRhOiBub2RlLFxuICAgICAgICBpc0V4cGFuZGVkOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcGFyZW50Tm9kZTogTmdzc21FeHByZXNzaW9uVHJlZU5vZGUgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGluc2VydGlvbkluZGV4ID0gLTE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHBhcmVudE5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGVMaXN0W2ldLnBhdGguaW5jbHVkZXMobm9kZS5wYXJlbnRJZCkpIHtcbiAgICAgICAgICBpbnNlcnRpb25JbmRleCA9IGkgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlTGlzdFtpXS5kYXRhLmlkID09PSBub2RlLnBhcmVudElkKSB7XG4gICAgICAgIHBhcmVudE5vZGUgPSBub2RlTGlzdFtpXTtcbiAgICAgICAgaW5zZXJ0aW9uSW5kZXggPSBpICsgMTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFwYXJlbnROb2RlIHx8IGluc2VydGlvbkluZGV4ID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhcmVudCBpZCcpO1xuICAgIH1cblxuICAgIG5vZGVMaXN0LnNwbGljZShpbnNlcnRpb25JbmRleCwgMCwge1xuICAgICAgcGF0aDogWy4uLnBhcmVudE5vZGUucGF0aCwgcGFyZW50Tm9kZS5kYXRhLmlkXSxcbiAgICAgIGRhdGE6IG5vZGUsXG4gICAgICBpc0V4cGFuZGVkOiB0cnVlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -81,10 +81,10 @@ export class TreeNodeExpandReducer {
81
81
  }
82
82
  });
83
83
  }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
85
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer }); }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
85
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer }); }
86
86
  }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
88
88
  type: Injectable
89
89
  }] });
90
90
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWV4cGFuZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLWV4cHJlc3Npb24tdHJlZS9yZWR1Y2Vycy90cmVlLW5vZGUtZXhwYW5kLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUl6QyxPQUFPLEVBS0wsNkJBQTZCLEVBQzlCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVrQixxQkFBZ0IsR0FBYTtZQUMzQyw2QkFBNkIsQ0FBQyw2QkFBNkI7WUFDM0QsNkJBQTZCLENBQUMsK0JBQStCO1lBQzdELDZCQUE2QixDQUFDLG1DQUFtQztZQUNqRSw2QkFBNkIsQ0FBQyxpQ0FBaUM7U0FDaEUsQ0FBQztLQW1GSDtJQWpGUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyw2QkFBNkIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sbUNBQW1DLEdBQUcsTUFBNkMsQ0FBQztnQkFDMUYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxtQ0FBbUMsQ0FBQyxNQUFNLEVBQUUsbUNBQW1DLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pJLENBQUM7WUFFRCxLQUFLLDZCQUE2QixDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQztnQkFDbkUsTUFBTSxxQ0FBcUMsR0FBRyxNQUErQyxDQUFDO2dCQUM5RixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLHFDQUFxQyxDQUFDLE1BQU0sRUFBRSxxQ0FBcUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEksQ0FBQztZQUVELEtBQUssNkJBQTZCLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLHlCQUF5QixHQUFHLE1BQW1ELENBQUM7Z0JBQ3RGLE9BQU8sOEJBQThCLENBQUMsS0FBSyxFQUFFO29CQUMzQyxLQUFLLEVBQUU7d0JBQ0wsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDbEMsS0FBSyxFQUFFO2dDQUNMLE1BQU0sRUFBRSxDQUFDLE1BQWlDLEVBQUUsRUFBRTtvQ0FDNUMsTUFBTSxNQUFNLEdBQThCLEVBQUUsQ0FBQztvQ0FDN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0NBQ1YsR0FBRyxLQUFLO3dDQUNSLFVBQVUsRUFBRSxLQUFLO3FDQUNsQixDQUFDLENBQ0gsQ0FBQztvQ0FFRixPQUFPLE1BQU0sQ0FBQztnQ0FDaEIsQ0FBQzs2QkFDRjt5QkFDRjtxQkFDRjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsS0FBSyw2QkFBNkIsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JFLE1BQU0seUJBQXlCLEdBQUcsTUFBaUQsQ0FBQztnQkFDcEYsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7b0JBQzNDLEtBQUssRUFBRTt3QkFDTCxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUNsQyxLQUFLLEVBQUU7Z0NBQ0wsTUFBTSxFQUFFLENBQUMsTUFBaUMsRUFBRSxFQUFFO29DQUM1QyxNQUFNLE1BQU0sR0FBOEIsRUFBRSxDQUFDO29DQUM3QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQzt3Q0FDVixHQUFHLEtBQUs7d0NBQ1IsVUFBVSxFQUFFLElBQUk7cUNBQ2pCLENBQUMsQ0FDSCxDQUFDO29DQUVGLE9BQU8sTUFBTSxDQUFDO2dDQUNoQixDQUFDOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQVksRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLFVBQW1CO1FBQ3JGLE9BQU8sOEJBQThCLENBQUMsS0FBSyxFQUFFO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNSLEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsQ0FBQyxNQUFpQyxFQUFFLEVBQUU7NEJBQzVDLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQzs0QkFDM0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7NEJBQzVELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUN2RixDQUFDOzRCQUVELE9BQU8sTUFBTSxDQUFDO3dCQUNoQixDQUFDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhGVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHVwZGF0ZSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHtcbiAgTmdzc21Db2xsYXBzZUFsbEV4cHJlc3Npb25UcmVlTm9kZXNBY3Rpb24sXG4gIE5nc3NtQ29sbGFwc2VFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24sXG4gIE5nc3NtRXhwYW5kQWxsRXhwcmVzc2lvblRyZWVOb2Rlc0FjdGlvbixcbiAgTmdzc21FeHBhbmRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24sXG4gIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgTmdzc21FeHByZXNzaW9uVHJlZU5vZGUgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUV4cGFuZFJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtRXhwYW5kRXhwcmVzc2lvblRyZWVOb2RlLFxuICAgIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtQ29sbGFwc2VFeHByZXNzaW9uVHJlZU5vZGUsXG4gICAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUubmdzc21Db2xsYXBzZUFsbEV4cHJlc3Npb25UcmVlTm9kZXMsXG4gICAgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUubmdzc21FeHBhbmRBbGxFeHByZXNzaW9uVHJlZU5vZGVzXG4gIF07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUV4cGFuZEV4cHJlc3Npb25UcmVlTm9kZToge1xuICAgICAgICBjb25zdCBuZ3NzbUV4cGFuZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUV4cGFuZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0SXNFeHBhbmRlZChzdGF0ZSwgbmdzc21FeHBhbmRFeHByZXNzaW9uVHJlZU5vZGVBY3Rpb24udHJlZUlkLCBuZ3NzbUV4cGFuZEV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlSWQsIHRydWUpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtQ29sbGFwc2VFeHByZXNzaW9uVHJlZU5vZGU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21Db2xsYXBzZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUNvbGxhcHNlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRJc0V4cGFuZGVkKHN0YXRlLCBuZ3NzbUNvbGxhcHNlRXhwcmVzc2lvblRyZWVOb2RlQWN0aW9uLnRyZWVJZCwgbmdzc21Db2xsYXBzZUV4cHJlc3Npb25UcmVlTm9kZUFjdGlvbi5ub2RlSWQsIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUNvbGxhcHNlQWxsRXhwcmVzc2lvblRyZWVOb2Rlczoge1xuICAgICAgICBjb25zdCBuZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtQ29sbGFwc2VBbGxFeHByZXNzaW9uVHJlZU5vZGVzQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uLnRyZWVJZF06IHtcbiAgICAgICAgICAgICAgbm9kZXM6IHtcbiAgICAgICAgICAgICAgICAkYXBwbHk6ICh2YWx1ZXM6IE5nc3NtRXhwcmVzc2lvblRyZWVOb2RlW10pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dDogTmdzc21FeHByZXNzaW9uVHJlZU5vZGVbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUV4cGFuZEFsbEV4cHJlc3Npb25UcmVlTm9kZXM6IHtcbiAgICAgICAgY29uc3Qgbmdzc21FeHByZXNzaW9uVHJlZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUV4cGFuZEFsbEV4cHJlc3Npb25UcmVlTm9kZXNBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW25nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBub2Rlczoge1xuICAgICAgICAgICAgICAgICRhcHBseTogKHZhbHVlczogTmdzc21FeHByZXNzaW9uVHJlZU5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0OiBOZ3NzbUV4cHJlc3Npb25UcmVlTm9kZVtdID0gW107XG4gICAgICAgICAgICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJc0V4cGFuZGVkKHN0YXRlOiBTdGF0ZSwgdHJlZUlkOiBzdHJpbmcsIG5vZGVJZDogc3RyaW5nLCBpc0V4cGFuZGVkOiBib29sZWFuKTogU3RhdGUge1xuICAgIHJldHVybiB1cGRhdGVOZ3NzbUV4cHJlc3Npb25UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgIHRyZWVzOiB7XG4gICAgICAgIFt0cmVlSWRdOiB7XG4gICAgICAgICAgbm9kZXM6IHtcbiAgICAgICAgICAgICRhcHBseTogKHZhbHVlczogTmdzc21FeHByZXNzaW9uVHJlZU5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBbLi4udmFsdWVzXTtcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBvdXRwdXQuZmluZEluZGV4KChuKSA9PiBuLmRhdGEuaWQgPT09IG5vZGVJZCk7XG4gICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGUob3V0cHV0W2luZGV4XSwgeyBpc0V4cGFuZGVkOiB7ICRzZXQ6IGlzRXhwYW5kZWQgfSB9KSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -33,10 +33,10 @@ export class TreesReducer {
33
33
  }
34
34
  return state;
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, decorators: [{
40
40
  type: Injectable
41
41
  }] });
42
42
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXMucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS1leHByZXNzaW9uLXRyZWUvcmVkdWNlcnMvdHJlZXMucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBa0MsNkJBQTZCLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQzFILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRzFELE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRWtCLHFCQUFnQixHQUFhO1lBQzNDLDZCQUE2QixDQUFDLHVCQUF1QjtZQUNyRCw2QkFBNkIsQ0FBQyx3QkFBd0I7U0FDdkQsQ0FBQztLQTJCSDtJQXpCUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyw2QkFBNkIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELE1BQU0sNkJBQTZCLEdBQUcsTUFBdUMsQ0FBQztnQkFDOUUsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7b0JBQzNDLEtBQUssRUFBRTt3QkFDTCxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUN0QyxJQUFJLEVBQUUsa0NBQWtDLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDO3lCQUM5RTtxQkFDRjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsS0FBSyw2QkFBNkIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELE1BQU0sOEJBQThCLEdBQUcsTUFBd0MsQ0FBQztnQkFDaEYsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7b0JBQzNDLEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUM7cUJBQ2hEO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQTlCVSxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IE5nc3NtQ2xlYXJFeHByZXNzaW9uVHJlZUFjdGlvbiwgTmdzc21FeHByZXNzaW9uVHJlZUFjdGlvblR5cGUsIE5nc3NtSW5pdEV4cHJlc3Npb25UcmVlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVOZ3NzbUV4cHJlc3Npb25UcmVlRnJvbU5vZGVzIH0gZnJvbSAnLi4vbW9kZWwnO1xuaW1wb3J0IHsgdXBkYXRlTmdzc21FeHByZXNzaW9uVHJlZVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZXNSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUluaXRFeHByZXNzaW9uVHJlZSxcbiAgICBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUNsZWFyRXhwcmVzc2lvblRyZWVcbiAgXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIE5nc3NtRXhwcmVzc2lvblRyZWVBY3Rpb25UeXBlLm5nc3NtSW5pdEV4cHJlc3Npb25UcmVlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtSW5pdEV4cHJlc3Npb25UcmVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtSW5pdEV4cHJlc3Npb25UcmVlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21FeHByZXNzaW9uVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbUluaXRFeHByZXNzaW9uVHJlZUFjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgICRzZXQ6IGNyZWF0ZU5nc3NtRXhwcmVzc2lvblRyZWVGcm9tTm9kZXMobmdzc21Jbml0RXhwcmVzc2lvblRyZWVBY3Rpb24ubm9kZXMpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbUV4cHJlc3Npb25UcmVlQWN0aW9uVHlwZS5uZ3NzbUNsZWFyRXhwcmVzc2lvblRyZWU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21DbGVhckV4cHJlc3Npb25UcmVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtQ2xlYXJFeHByZXNzaW9uVHJlZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRXhwcmVzc2lvblRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICAkdW5zZXQ6IFtuZ3NzbUNsZWFyRXhwcmVzc2lvblRyZWVBY3Rpb24udHJlZUlkXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXX0=
@@ -51,10 +51,10 @@ export class NgssmBreadcrumbComponent extends NgSsmComponent {
51
51
  this.dispatchAction(new SelectNodeAction(treeId, node.nodeId));
52
52
  }
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmBreadcrumbComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmBreadcrumbComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmBreadcrumbComponent, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.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: () => [{ type: i1.Store }], propDecorators: { treeId: [{
@@ -116,10 +116,10 @@ export class NgssmTreeComponent extends NgSsmComponent {
116
116
  this.dispatchAction(new DisplaySearchDialogAction(treeId, node.node.nodeId));
117
117
  }
118
118
  }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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 }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmTreeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeComponent, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.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: () => [{ type: i1.Store }], propDecorators: { treeConfig: [{
@@ -96,10 +96,10 @@ export class NgssmTreeSearchDialogComponent extends NgSsmComponent {
96
96
  regex: result.error
97
97
  };
98
98
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeSearchDialogComponent, deps: [{ token: i1.Store }, { token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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] ", 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 }); }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmTreeSearchDialogComponent, deps: [{ token: i1.Store }, { token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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] ", 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 }); }
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeSearchDialogComponent, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.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,
@@ -39,10 +39,10 @@ export class TreeNodeLoadingEffect {
39
39
  }
40
40
  });
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeLoadingEffect, deps: [{ token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeLoadingEffect }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeLoadingEffect, deps: [{ token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeLoadingEffect }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeLoadingEffect, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeLoadingEffect, decorators: [{
46
46
  type: Injectable
47
47
  }], ctorParameters: () => [{ type: undefined, decorators: [{
48
48
  type: Inject,
@@ -74,10 +74,10 @@ export class TreeNodesSearchingEffect {
74
74
  this.dialog?.close();
75
75
  this.dialog = undefined;
76
76
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchingEffect, deps: [{ token: i1.MatDialog }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
78
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchingEffect }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchingEffect, deps: [{ token: i1.MatDialog }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
78
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchingEffect }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchingEffect, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchingEffect, decorators: [{
81
81
  type: Injectable
82
82
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.Logger }] });
83
83
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2Rlcy1zZWFyY2hpbmcuZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLXRyZWUvZWZmZWN0cy90cmVlLW5vZGVzLXNlYXJjaGluZy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFpQixZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBR2xHLE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFDVSxTQUFvQixFQUNwQixNQUFjO1FBRGQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVlIscUJBQWdCLEdBQWE7WUFDM0MsbUJBQW1CLENBQUMsbUJBQW1CO1lBQ3ZDLG1CQUFtQixDQUFDLGlCQUFpQjtZQUNyQyxtQkFBbUIsQ0FBQyxlQUFlO1lBQ25DLG1CQUFtQixDQUFDLGFBQWE7WUFDakMsbUJBQW1CLENBQUMsNEJBQTRCO1NBQ2pELENBQUM7SUFLQyxDQUFDO0lBRUcsYUFBYSxDQUFDLEtBQVksRUFBRSxLQUFZLEVBQUUsTUFBYztRQUM3RCxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLG1C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QUFJLGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUVsRixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzFCLENBQUM7OEdBakZVLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBEYXRhU3RhdHVzIH0gZnJvbSAnbmdzc20tcmVtb3RlLWRhdGEnO1xuaW1wb3J0IHsgRWZmZWN0LCBTdG9yZSwgU3RhdGUsIEFjdGlvbiwgTG9nZ2VyIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgZGVmYXVsdFJlZ2V4RWRpdG9yVmFsaWRhdG9yIH0gZnJvbSAnbmdzc20tdG9vbGtpdCc7XG5cbmltcG9ydCB7IExvYWRDaGlsZHJlbk9mTm9kZUFjdGlvbiwgTmdzc21UcmVlQWN0aW9uVHlwZSwgUmVnaXN0ZXJQYXJ0aWFsU2VhcmNoUmVzdWx0c0FjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgTmdzc21UcmVlU2VhcmNoRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBOZ3NzbVRyZWVOb2RlLCBTZWFyY2hTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbVRyZWVOb2RlLCBzZWxlY3ROZ3NzbVRyZWVOb2RlQ2hpbGRyZW4sIHNlbGVjdE5nc3NtVHJlZVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVzU2VhcmNoaW5nRWZmZWN0IGltcGxlbWVudHMgRWZmZWN0IHtcbiAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxOZ3NzbVRyZWVTZWFyY2hEaWFsb2dDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLmRpc3BsYXlTZWFyY2hEaWFsb2csXG4gICAgTmdzc21UcmVlQWN0aW9uVHlwZS5jbG9zZVNlYXJjaERpYWxvZyxcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLnNlYXJjaFRyZWVOb2RlcyxcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLnJlZ2lzdGVyTm9kZXMsXG4gICAgTmdzc21UcmVlQWN0aW9uVHlwZS5yZWdpc3RlclBhcnRpYWxTZWFyY2hSZXN1bHRzXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyXG4gICkge31cblxuICBwdWJsaWMgcHJvY2Vzc0FjdGlvbihzdG9yZTogU3RvcmUsIHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIE5nc3NtVHJlZUFjdGlvblR5cGUuZGlzcGxheVNlYXJjaERpYWxvZzoge1xuICAgICAgICB0aGlzLmRpYWxvZyA9IHRoaXMubWF0RGlhbG9nLm9wZW4oTmdzc21UcmVlU2VhcmNoRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgIHdpZHRoOiAnODB2dycsXG4gICAgICAgICAgaGVpZ2h0OiAnODB2aCdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21UcmVlQWN0aW9uVHlwZS5jbG9zZVNlYXJjaERpYWxvZzoge1xuICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21UcmVlQWN0aW9uVHlwZS5zZWFyY2hUcmVlTm9kZXM6XG4gICAgICBjYXNlIE5nc3NtVHJlZUFjdGlvblR5cGUucmVnaXN0ZXJOb2RlczpcbiAgICAgIGNhc2UgTmdzc21UcmVlQWN0aW9uVHlwZS5yZWdpc3RlclBhcnRpYWxTZWFyY2hSZXN1bHRzOiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFN0YXRlID0gc2VsZWN0Tmdzc21UcmVlU3RhdGUoc3RhdGUpLnRyZWVOb2Rlc1NlYXJjaDtcbiAgICAgICAgaWYgKCFzZWFyY2hTdGF0ZS50cmVlSWQgfHwgIXNlYXJjaFN0YXRlLnJvb3RTZWFyY2hOb2RlSWQgfHwgc2VhcmNoU3RhdGUuc2VhcmNoU3RhdHVzICE9PSBTZWFyY2hTdGF0dXMuaW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWFyY2hTdGF0ZS50b1Byb2Nlc3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudE5vZGUgPSBzZWxlY3ROZ3NzbVRyZWVOb2RlKHN0YXRlLCBzZWFyY2hTdGF0ZS50cmVlSWQsIHNlYXJjaFN0YXRlLnRvUHJvY2Vzc1swXS5ub2RlSWQpO1xuICAgICAgICBpZiAoIWN1cnJlbnROb2RlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYE5vIG5vZGUgZm9yIHRyZWVJZCAnJHtzZWFyY2hTdGF0ZS50cmVlSWR9JyB3aXRoIGlkICcke3NlYXJjaFN0YXRlLnRvUHJvY2Vzc1swXS5ub2RlSWR9Jy5gKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudE5vZGUubm9kZS5pc0V4cGFuZGFibGUgJiYgY3VycmVudE5vZGUuc3RhdHVzICE9PSBEYXRhU3RhdHVzLmxvYWRlZCAmJiBjdXJyZW50Tm9kZS5zdGF0dXMgIT09IERhdGFTdGF0dXMubG9hZGluZykge1xuICAgICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBMb2FkQ2hpbGRyZW5PZk5vZGVBY3Rpb24oc2VhcmNoU3RhdGUudHJlZUlkLCBjdXJyZW50Tm9kZS5ub2RlLm5vZGVJZCkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuTm9kZXMgPSBzZWxlY3ROZ3NzbVRyZWVOb2RlQ2hpbGRyZW4oc3RhdGUsIHNlYXJjaFN0YXRlLnRyZWVJZCwgY3VycmVudE5vZGUubm9kZS5ub2RlSWQpO1xuICAgICAgICBjb25zdCBtYXRjaGluZzogTmdzc21UcmVlTm9kZVtdID0gW107XG4gICAgICAgIGNvbnN0IHRvUHJvY2VzczogTmdzc21UcmVlTm9kZVtdID0gW107XG4gICAgICAgIGNoaWxkcmVuTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7bm9kZS5wYXJlbnRGdWxsUGF0aH0vJHtub2RlLm5vZGUubGFiZWx9YDtcbiAgICAgICAgICBpZiAoZGVmYXVsdFJlZ2V4RWRpdG9yVmFsaWRhdG9yLmlzTWF0Y2goc2VhcmNoU3RhdGUuc2VhcmNoUGF0dGVybiA/PyAnJywgZnVsbFBhdGgpKSB7XG4gICAgICAgICAgICBtYXRjaGluZy5wdXNoKG5vZGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChub2RlLm5vZGUuaXNFeHBhbmRhYmxlKSB7XG4gICAgICAgICAgICB0b1Byb2Nlc3MucHVzaChub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlclBhcnRpYWxTZWFyY2hSZXN1bHRzQWN0aW9uKG1hdGNoaW5nLCB0b1Byb2Nlc3MpKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nPy5jbG9zZSgpO1xuICAgIHRoaXMuZGlhbG9nID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -122,10 +122,10 @@ export class TreeNodeExpandReducer {
122
122
  }
123
123
  return state;
124
124
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
126
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
126
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
129
129
  type: Injectable
130
130
  }] });
131
131
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWV4cGFuZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLXRyZWUvcmVkdWNlcnMvdHJlZS1ub2RlLWV4cGFuZC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFFekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE9BQU8sRUFBa0UsbUJBQW1CLEVBQW9CLE1BQU0sWUFBWSxDQUFDO0FBRW5JLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHdEUsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVrQixxQkFBZ0IsR0FBYTtZQUMzQyxtQkFBbUIsQ0FBQyxVQUFVO1lBQzlCLG1CQUFtQixDQUFDLFlBQVk7WUFDaEMsbUJBQW1CLENBQUMsVUFBVTtZQUM5QixtQkFBbUIsQ0FBQyxrQkFBa0I7U0FDdkMsQ0FBQztLQTZISDtJQTNIUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLGdCQUFnQixHQUFHLE1BQTBCLENBQUM7Z0JBQ3BELE9BQU8sb0JBQW9CLENBQUMsS0FBSyxFQUFFO29CQUNqQyxLQUFLLEVBQUU7d0JBQ0wsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDekIsS0FBSyxFQUFFO2dDQUNMLE1BQU0sRUFBRSxDQUFDLEtBQXNCLEVBQUUsRUFBRTtvQ0FDakMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FB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QUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO29DQUN6RixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO3dDQUNqQixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0NBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NENBQ3RDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dEQUMzQixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTs2Q0FDckMsQ0FBQyxDQUFDO3dDQUNMLENBQUM7d0NBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO29DQUNoQyxDQUFDO29DQUVELE9BQU8sTUFBTSxDQUFDO2dDQUNoQixDQUFDOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWxJVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHVwZGF0ZSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJ25nc3NtLXJlbW90ZS1kYXRhJztcbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IENvbGxhcHNlTm9kZUFjdGlvbiwgRXhwYW5kTm9kZUFjdGlvbiwgTG9hZENoaWxkcmVuT2ZOb2RlQWN0aW9uLCBOZ3NzbVRyZWVBY3Rpb25UeXBlLCBTZWxlY3ROb2RlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBOZ3NzbVRyZWVOb2RlIH0gZnJvbSAnLi4vbW9kZWwnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21UcmVlU3RhdGUsIHVwZGF0ZU5nc3NtVHJlZVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVFeHBhbmRSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLmV4cGFuZE5vZGUsXG4gICAgTmdzc21UcmVlQWN0aW9uVHlwZS5jb2xsYXBzZU5vZGUsXG4gICAgTmdzc21UcmVlQWN0aW9uVHlwZS5zZWxlY3ROb2RlLFxuICAgIE5nc3NtVHJlZUFjdGlvblR5cGUubG9hZENoaWxkcmVuT2ZOb2RlXG4gIF07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLmV4cGFuZE5vZGU6IHtcbiAgICAgICAgY29uc3QgZXhwYW5kTm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBFeHBhbmROb2RlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW2V4cGFuZE5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBub2Rlczoge1xuICAgICAgICAgICAgICAgICRhcHBseTogKG5vZGVzOiBOZ3NzbVRyZWVOb2RlW10pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5ub2Rlc107XG4gICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHJlc3VsdC5maW5kSW5kZXgoKG4pID0+IG4ubm9kZS5ub2RlSWQgPT09IGV4cGFuZE5vZGVBY3Rpb24ubm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSByZXN1bHRbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5zdGF0dXMgPT09IERhdGFTdGF0dXMubG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHVwZGF0ZShyZXN1bHRbaW5kZXhdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkOiB7ICRzZXQ6IHRydWUgfVxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSB1cGRhdGUocmVzdWx0W2luZGV4XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZDogeyAkc2V0OiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogRGF0YVN0YXR1cy5sb2FkaW5nIH1cbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zcGxpY2UoaW5kZXgsIDEsIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21UcmVlQWN0aW9uVHlwZS5jb2xsYXBzZU5vZGU6IHtcbiAgICAgICAgY29uc3QgY29sbGFwc2VOb2RlQWN0aW9uID0gYWN0aW9uIGFzIENvbGxhcHNlTm9kZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZXM6IHtcbiAgICAgICAgICAgIFtjb2xsYXBzZU5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBub2Rlczoge1xuICAgICAgICAgICAgICAgICRhcHBseTogKG5vZGVzOiBOZ3NzbVRyZWVOb2RlW10pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5ub2Rlc107XG4gICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHJlc3VsdC5maW5kSW5kZXgoKG4pID0+IG4ubm9kZS5ub2RlSWQgPT09IGNvbGxhcHNlTm9kZUFjdGlvbi5ub2RlSWQpO1xuICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdXBkYXRlKHJlc3VsdFtpbmRleF0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkOiB7ICRzZXQ6IGZhbHNlIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNwbGljZShpbmRleCwgMSwgaXRlbSk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLnNlbGVjdE5vZGU6IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0Tm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBTZWxlY3ROb2RlQWN0aW9uO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0Tmdzc21UcmVlU3RhdGUoc3RhdGUpLnRyZWVzW3NlbGVjdE5vZGVBY3Rpb24udHJlZUlkXS5ub2Rlcy5maW5kKChuKSA9PiBuLm5vZGUubm9kZUlkID09PSBzZWxlY3ROb2RlQWN0aW9uLm5vZGVJZClcbiAgICAgICAgICAgID8uc3RhdHVzID09PSBEYXRhU3RhdHVzLmxvYWRlZFxuICAgICAgICApIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbc2VsZWN0Tm9kZUFjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgIG5vZGVzOiB7XG4gICAgICAgICAgICAgICAgJGFwcGx5OiAobm9kZXM6IE5nc3NtVHJlZU5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gWy4uLm5vZGVzXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcmVzdWx0LmZpbmRJbmRleCgobikgPT4gbi5ub2RlLm5vZGVJZCA9PT0gc2VsZWN0Tm9kZUFjdGlvbi5ub2RlSWQpO1xuICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdXBkYXRlKHJlc3VsdFtpbmRleF0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogRGF0YVN0YXR1cy5sb2FkaW5nIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNwbGljZShpbmRleCwgMSwgaXRlbSk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLmxvYWRDaGlsZHJlbk9mTm9kZToge1xuICAgICAgICBjb25zdCBsb2FkQ2hpbGRyZW5PZk5vZGVBY3Rpb24gPSBhY3Rpb24gYXMgTG9hZENoaWxkcmVuT2ZOb2RlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW2xvYWRDaGlsZHJlbk9mTm9kZUFjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgIG5vZGVzOiB7XG4gICAgICAgICAgICAgICAgJGFwcGx5OiAobm9kZXM6IE5nc3NtVHJlZU5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gWy4uLm5vZGVzXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcmVzdWx0LmZpbmRJbmRleCgobikgPT4gbi5ub2RlLm5vZGVJZCA9PT0gbG9hZENoaWxkcmVuT2ZOb2RlQWN0aW9uLm5vZGVJZCk7XG4gICAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtID0gcmVzdWx0W2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uc3RhdHVzICE9PSBEYXRhU3RhdHVzLmxvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSB1cGRhdGUocmVzdWx0W2luZGV4XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB7ICRzZXQ6IERhdGFTdGF0dXMubG9hZGluZyB9XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3BsaWNlKGluZGV4LCAxLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -21,10 +21,10 @@ export class TreeNodeSelectionReducer {
21
21
  }
22
22
  return state;
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeSelectionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeSelectionReducer }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeSelectionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeSelectionReducer }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeSelectionReducer, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeSelectionReducer, decorators: [{
28
28
  type: Injectable
29
29
  }] });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLXNlbGVjdGlvbi5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLXRyZWUvcmVkdWNlcnMvdHJlZS1ub2RlLXNlbGVjdGlvbi5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixNQUFNLFlBQVksQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2hELE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFFa0IscUJBQWdCLEdBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWtCL0U7SUFoQlEsV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUEwQixDQUFDO2dCQUNwRCxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTtvQkFDakMsS0FBSyxFQUFFO3dCQUNMLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3pCLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7eUJBQ2hEO3FCQUNGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWxCVSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21UcmVlQWN0aW9uVHlwZSwgU2VsZWN0Tm9kZUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXBkYXRlTmdzc21UcmVlU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZVNlbGVjdGlvblJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW05nc3NtVHJlZUFjdGlvblR5cGUuc2VsZWN0Tm9kZV07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLnNlbGVjdE5vZGU6IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0Tm9kZUFjdGlvbiA9IGFjdGlvbiBhcyBTZWxlY3ROb2RlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW3NlbGVjdE5vZGVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICBzZWxlY3RlZE5vZGU6IHsgJHNldDogc2VsZWN0Tm9kZUFjdGlvbi5ub2RlSWQgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXX0=
@@ -80,10 +80,10 @@ export class TreeNodesSearchReducer {
80
80
  }
81
81
  return state;
82
82
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
84
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchReducer }); }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
84
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchReducer }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchReducer, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchReducer, decorators: [{
87
87
  type: Injectable
88
88
  }] });
89
89
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2Rlcy1zZWFyY2gucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS10cmVlL3JlZHVjZXJzL3RyZWUtbm9kZXMtc2VhcmNoLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQTZCLG1CQUFtQixFQUE2RCxNQUFNLFlBQVksQ0FBQztBQUN2SSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHdEgsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVrQixxQkFBZ0IsR0FBYTtZQUMzQyxtQkFBbUIsQ0FBQyxtQkFBbUI7WUFDdkMsbUJBQW1CLENBQUMsaUJBQWlCO1lBQ3JDLG1CQUFtQixDQUFDLGVBQWU7WUFDbkMsbUJBQW1CLENBQUMsNEJBQTRCO1lBQ2hELG1CQUFtQixDQUFDLG9CQUFvQjtTQUN6QyxDQUFDO0tBcUZIO0lBbkZRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztnQkFDN0MsTUFBTSx5QkFBeUIsR0FBRyxNQUFtQyxDQUFDO2dCQUN0RSxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FDM0Isb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxFQUNuRSx5QkFBeUIsQ0FBQyxXQUFXLENBQ3RDLENBQUM7Z0JBQ0YsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7b0JBQ2pDLGVBQWUsRUFBRTt3QkFDZixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLENBQUMsTUFBTSxFQUFFO3dCQUNsRCxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxXQUFXLEVBQUU7d0JBQ2pFLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtxQkFDbEU7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELEtBQUssbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTtvQkFDakMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEVBQUU7aUJBQ3ZELENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxLQUFLLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0scUJBQXFCLEdBQUcsTUFBK0IsQ0FBQztnQkFDOUQsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQ25DLEtBQUssRUFDTCxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFDeEQsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FDbkUsQ0FBQztnQkFDRixNQUFNLFdBQVcsR0FBMkMsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNkLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckcsQ0FBQztnQkFFRCxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTtvQkFDakMsZUFBZSxFQUFFO3dCQUNmLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxhQUFhLEVBQUU7d0JBQzVELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsVUFBVSxFQUFFO3dCQUMvQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO3dCQUNoQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO3FCQUM1QjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsS0FBSyxtQkFBbUIsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sa0NBQWtDLEdBQUcsTUFBNEMsQ0FBQztnQkFDeEYsTUFBTSxTQUFTLEdBQTJDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6SCxTQUFTLENBQUMsSUFBSSxDQUNaLEdBQUcsa0NBQWtDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDL0QsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFDckIsUUFBUSxFQUFFLHdCQUF3QixDQUFDLENBQUMsQ0FBQztpQkFDdEMsQ0FBQyxDQUFDLENBQ0osQ0FBQztnQkFDRixPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTtvQkFDakMsZUFBZSxFQUFFO3dCQUNmLFlBQVksRUFBRTs0QkFDWixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQ0FDaEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29DQUMzQixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0NBQzNCLENBQUM7Z0NBRUQsT0FBTyxLQUFLLENBQUM7NEJBQ2YsQ0FBQzt5QkFDRjt3QkFDRCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO3dCQUM5QixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtxQkFDckc7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELEtBQUssbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTtvQkFDakMsZUFBZSxFQUFFO3dCQUNmLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFO3dCQUM1QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO3FCQUN4QjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0EzRlUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IERpc3BsYXlTZWFyY2hEaWFsb2dBY3Rpb24sIE5nc3NtVHJlZUFjdGlvblR5cGUsIFJlZ2lzdGVyUGFydGlhbFNlYXJjaFJlc3VsdHNBY3Rpb24sIFNlYXJjaFRyZWVOb2Rlc0FjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZ2V0Tmdzc21UcmVlTm9kZUZ1bGxQYXRoLCBnZXROZ3NzbVRyZWVQYXRoLCBTZWFyY2hTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBnZXREZWZhdWx0VHJlZU5vZGVzU2VhcmNoLCBzZWxlY3ROZ3NzbVRyZWVOb2RlLCBzZWxlY3ROZ3NzbVRyZWVTdGF0ZSwgdXBkYXRlTmdzc21UcmVlU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZXNTZWFyY2hSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLmRpc3BsYXlTZWFyY2hEaWFsb2csXG4gICAgTmdzc21UcmVlQWN0aW9uVHlwZS5jbG9zZVNlYXJjaERpYWxvZyxcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLnNlYXJjaFRyZWVOb2RlcyxcbiAgICBOZ3NzbVRyZWVBY3Rpb25UeXBlLnJlZ2lzdGVyUGFydGlhbFNlYXJjaFJlc3VsdHMsXG4gICAgTmdzc21UcmVlQWN0aW9uVHlwZS5hYm9ydFRyZWVOb2Rlc1NlYXJjaFxuICBdO1xuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgTmdzc21UcmVlQWN0aW9uVHlwZS5kaXNwbGF5U2VhcmNoRGlhbG9nOiB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlTZWFyY2hEaWFsb2dBY3Rpb24gPSBhY3Rpb24gYXMgRGlzcGxheVNlYXJjaERpYWxvZ0FjdGlvbjtcbiAgICAgICAgY29uc3QgcGF0aCA9IGdldE5nc3NtVHJlZVBhdGgoXG4gICAgICAgICAgc2VsZWN0Tmdzc21UcmVlU3RhdGUoc3RhdGUpLnRyZWVzW2Rpc3BsYXlTZWFyY2hEaWFsb2dBY3Rpb24udHJlZUlkXSxcbiAgICAgICAgICBkaXNwbGF5U2VhcmNoRGlhbG9nQWN0aW9uLnN0YXJ0Tm9kZUlkXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVOb2Rlc1NlYXJjaDoge1xuICAgICAgICAgICAgdHJlZUlkOiB7ICRzZXQ6IGRpc3BsYXlTZWFyY2hEaWFsb2dBY3Rpb24udHJlZUlkIH0sXG4gICAgICAgICAgICByb290U2VhcmNoTm9kZUlkOiB7ICRzZXQ6IGRpc3BsYXlTZWFyY2hEaWFsb2dBY3Rpb24uc3RhcnROb2RlSWQgfSxcbiAgICAgICAgICAgIHJvb3RTZWFyY2hQYXRoOiB7ICRzZXQ6IHBhdGgubWFwKChwKSA9PiBwLm5vZGUubGFiZWwpLmpvaW4oJy8nKSB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLmNsb3NlU2VhcmNoRGlhbG9nOiB7XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVOb2Rlc1NlYXJjaDogeyAkc2V0OiBnZXREZWZhdWx0VHJlZU5vZGVzU2VhcmNoKCkgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLnNlYXJjaFRyZWVOb2Rlczoge1xuICAgICAgICBjb25zdCBzZWFyY2hUcmVlTm9kZXNBY3Rpb24gPSBhY3Rpb24gYXMgU2VhcmNoVHJlZU5vZGVzQWN0aW9uO1xuICAgICAgICBjb25zdCBzdGFydE5vZGUgPSBzZWxlY3ROZ3NzbVRyZWVOb2RlKFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIHNlbGVjdE5nc3NtVHJlZVN0YXRlKHN0YXRlKS50cmVlTm9kZXNTZWFyY2gudHJlZUlkID8/ICcnLFxuICAgICAgICAgIHNlbGVjdE5nc3NtVHJlZVN0YXRlKHN0YXRlKS50cmVlTm9kZXNTZWFyY2gucm9vdFNlYXJjaE5vZGVJZCA/PyAnJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCB0b0JlUHJvY2VzczogeyBub2RlSWQ6IHN0cmluZzsgZnVsbFBhdGg6IHN0cmluZyB9W10gPSBbXTtcbiAgICAgICAgaWYgKHN0YXJ0Tm9kZSkge1xuICAgICAgICAgIHRvQmVQcm9jZXNzLnB1c2goeyBub2RlSWQ6IHN0YXJ0Tm9kZS5ub2RlLm5vZGVJZCwgZnVsbFBhdGg6IGdldE5nc3NtVHJlZU5vZGVGdWxsUGF0aChzdGFydE5vZGUpIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtVHJlZVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgdHJlZU5vZGVzU2VhcmNoOiB7XG4gICAgICAgICAgICBzZWFyY2hQYXR0ZXJuOiB7ICRzZXQ6IHNlYXJjaFRyZWVOb2Rlc0FjdGlvbi5zZWFyY2hQYXR0ZXJuIH0sXG4gICAgICAgICAgICBzZWFyY2hTdGF0dXM6IHsgJHNldDogU2VhcmNoU3RhdHVzLmluUHJvZ3Jlc3MgfSxcbiAgICAgICAgICAgIHRvUHJvY2VzczogeyAkc2V0OiB0b0JlUHJvY2VzcyB9LFxuICAgICAgICAgICAgbWF0Y2hpbmdOb2RlczogeyAkc2V0OiBbXSB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLnJlZ2lzdGVyUGFydGlhbFNlYXJjaFJlc3VsdHM6IHtcbiAgICAgICAgY29uc3QgcmVnaXN0ZXJQYXJ0aWFsU2VhcmNoUmVzdWx0c0FjdGlvbiA9IGFjdGlvbiBhcyBSZWdpc3RlclBhcnRpYWxTZWFyY2hSZXN1bHRzQWN0aW9uO1xuICAgICAgICBjb25zdCB0b1Byb2Nlc3M6IHsgbm9kZUlkOiBzdHJpbmc7IGZ1bGxQYXRoOiBzdHJpbmcgfVtdID0gc2VsZWN0Tmdzc21UcmVlU3RhdGUoc3RhdGUpLnRyZWVOb2Rlc1NlYXJjaC50b1Byb2Nlc3Muc2xpY2UoMSk7XG4gICAgICAgIHRvUHJvY2Vzcy5wdXNoKFxuICAgICAgICAgIC4uLnJlZ2lzdGVyUGFydGlhbFNlYXJjaFJlc3VsdHNBY3Rpb24ubm9kZXNUb1Byb2Nlc3MubWFwKChuKSA9PiAoe1xuICAgICAgICAgICAgbm9kZUlkOiBuLm5vZGUubm9kZUlkLFxuICAgICAgICAgICAgZnVsbFBhdGg6IGdldE5nc3NtVHJlZU5vZGVGdWxsUGF0aChuKVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlTm9kZXNTZWFyY2g6IHtcbiAgICAgICAgICAgIHNlYXJjaFN0YXR1czoge1xuICAgICAgICAgICAgICAkYXBwbHk6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0b1Byb2Nlc3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoU3RhdHVzLmRvbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9Qcm9jZXNzOiB7ICRzZXQ6IHRvUHJvY2VzcyB9LFxuICAgICAgICAgICAgbWF0Y2hpbmdOb2RlczogeyAkcHVzaDogcmVnaXN0ZXJQYXJ0aWFsU2VhcmNoUmVzdWx0c0FjdGlvbi5tYXRjaGluZ05vZGVzLm1hcCgobikgPT4gbi5ub2RlLm5vZGVJZCkgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21UcmVlQWN0aW9uVHlwZS5hYm9ydFRyZWVOb2Rlc1NlYXJjaDoge1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlTm9kZXNTZWFyY2g6IHtcbiAgICAgICAgICAgIHNlYXJjaFN0YXR1czogeyAkc2V0OiBTZWFyY2hTdGF0dXMuYWJvcnRlZCB9LFxuICAgICAgICAgICAgdG9Qcm9jZXNzOiB7ICRzZXQ6IFtdIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -44,10 +44,10 @@ export class TreeNodesReducer {
44
44
  }
45
45
  return state;
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesReducer }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesReducer }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesReducer, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesReducer, decorators: [{
51
51
  type: Injectable
52
52
  }] });
53
53
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2Rlcy5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdHJlZS9zcmMvbGliL25nc3NtLXRyZWUvcmVkdWNlcnMvdHJlZS1ub2Rlcy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxZQUFZLENBQUM7QUFFdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUdoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRWtCLHFCQUFnQixHQUFhLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7S0F5Q2xGO0lBdkNRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsTUFBNkIsQ0FBQztnQkFDMUQsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7b0JBQ2pDLEtBQUssRUFBRTt3QkFDTCxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUM1QixLQUFLLEVBQUU7Z0NBQ0wsTUFBTSxFQUFFLENBQUMsS0FBc0IsRUFBRSxFQUFFO29DQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQ0FDekYsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3Q0FDakIsT0FBTyxLQUFLLENBQUM7b0NBQ2YsQ0FBQztvQ0FFRCxPQUFPO3dDQUNMLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO3dDQUN4QixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7d0NBQzFFLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzs0Q0FDdkMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxJQUFJOzRDQUN2QixVQUFVLEVBQUUsS0FBSzs0Q0FDakIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQzs0Q0FDN0IsSUFBSSxFQUFFLENBQUM7NENBQ1AsY0FBYyxFQUNaLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLEtBQUssU0FBUztnREFDdkMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnREFDN0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSzt5Q0FDOUIsQ0FBQyxDQUFDO3dDQUNILEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO3FDQUMxQixDQUFDO2dDQUNKLENBQUM7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBekNVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdXBkYXRlIGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJ25nc3NtLXJlbW90ZS1kYXRhJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21UcmVlQWN0aW9uVHlwZSwgUmVnaXN0ZXJOb2Rlc0FjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgTmdzc21UcmVlTm9kZSB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IHVwZGF0ZU5nc3NtVHJlZVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVzUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbTmdzc21UcmVlQWN0aW9uVHlwZS5yZWdpc3Rlck5vZGVzXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIE5nc3NtVHJlZUFjdGlvblR5cGUucmVnaXN0ZXJOb2Rlczoge1xuICAgICAgICBjb25zdCByZWdpc3Rlck5vZGVzQWN0aW9uID0gYWN0aW9uIGFzIFJlZ2lzdGVyTm9kZXNBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7XG4gICAgICAgICAgICBbcmVnaXN0ZXJOb2Rlc0FjdGlvbi50cmVlSWRdOiB7XG4gICAgICAgICAgICAgIG5vZGVzOiB7XG4gICAgICAgICAgICAgICAgJGFwcGx5OiAobm9kZXM6IE5nc3NtVHJlZU5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBub2Rlcy5maW5kSW5kZXgoKG4pID0+IG4ubm9kZS5ub2RlSWQgPT09IHJlZ2lzdGVyTm9kZXNBY3Rpb24ucGFyZW50Tm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAuLi5ub2Rlcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZShub2Rlc1tpbmRleF0sIHsgc3RhdHVzOiB7ICRzZXQ6IHJlZ2lzdGVyTm9kZXNBY3Rpb24uZGF0YVN0YXR1cyB9IH0pLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpc3Rlck5vZGVzQWN0aW9uLm5vZGVzLm1hcCgoaSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IERhdGFTdGF0dXMubm9uZSxcbiAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogbm9kZXNbaW5kZXhdLmxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICBub2RlOiBpLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEZ1bGxQYXRoOlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXNbaW5kZXhdLnBhcmVudEZ1bGxQYXRoICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtub2Rlc1tpbmRleF0ucGFyZW50RnVsbFBhdGh9LyR7bm9kZXNbaW5kZXhdLm5vZGUubGFiZWx9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5vZGVzW2luZGV4XS5ub2RlLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgLi4ubm9kZXMuc2xpY2UoaW5kZXggKyAxKVxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -38,10 +38,10 @@ export class TreesReducer {
38
38
  }
39
39
  return state;
40
40
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
42
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
42
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, decorators: [{
45
45
  type: Injectable
46
46
  }] });
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXMucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRyZWUvc3JjL2xpYi9uZ3NzbS10cmVlL3JlZHVjZXJzL3RyZWVzLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0MsT0FBTyxFQUE4QyxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2hELE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRWtCLHFCQUFnQixHQUFhLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBbUN2SDtJQWpDUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLG1CQUFtQixHQUFHLE1BQTZCLENBQUM7Z0JBQzFELE9BQU8sb0JBQW9CLENBQUMsS0FBSyxFQUFFO29CQUNqQyxLQUFLLEVBQUU7d0JBQ0wsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDNUIsSUFBSSxFQUFFO2dDQUNKLEtBQUssRUFBRTtvQ0FDTDt3Q0FDRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUk7d0NBQ3ZCLFVBQVUsRUFBRSxLQUFLO3dDQUNqQixLQUFLLEVBQUUsQ0FBQzt3Q0FDUixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtxQ0FDL0I7aUNBQ0Y7Z0NBQ0QsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7NkJBQ25DO3lCQUNGO3FCQUNGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxLQUFLLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0scUJBQXFCLEdBQUcsTUFBK0IsQ0FBQztnQkFDOUQsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7b0JBQ2pDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFO2lCQUNsRCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FuQ1UsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJ25nc3NtLXJlbW90ZS1kYXRhJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgRGVsZXRlTmdzc21UcmVlQWN0aW9uLCBJbml0Tmdzc21UcmVlQWN0aW9uLCBOZ3NzbVRyZWVBY3Rpb25UeXBlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyB1cGRhdGVOZ3NzbVRyZWVTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVzUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbTmdzc21UcmVlQWN0aW9uVHlwZS5pbml0Tmdzc21UcmVlLCBOZ3NzbVRyZWVBY3Rpb25UeXBlLmRlbGV0ZU5nc3NtVHJlZV07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbVRyZWVBY3Rpb25UeXBlLmluaXROZ3NzbVRyZWU6IHtcbiAgICAgICAgY29uc3QgaW5pdE5nc3NtVHJlZUFjdGlvbiA9IGFjdGlvbiBhcyBJbml0Tmdzc21UcmVlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21UcmVlU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICB0cmVlczoge1xuICAgICAgICAgICAgW2luaXROZ3NzbVRyZWVBY3Rpb24udHJlZUlkXToge1xuICAgICAgICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBEYXRhU3RhdHVzLm5vbmUsXG4gICAgICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBsZXZlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogaW5pdE5nc3NtVHJlZUFjdGlvbi5yb290XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB0eXBlOiBpbml0Tmdzc21UcmVlQWN0aW9uLnRyZWVUeXBlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtVHJlZUFjdGlvblR5cGUuZGVsZXRlTmdzc21UcmVlOiB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZU5nc3NtVHJlZUFjdGlvbiA9IGFjdGlvbiBhcyBEZWxldGVOZ3NzbVRyZWVBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVRyZWVTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHRyZWVzOiB7ICR1bnNldDogW2RlbGV0ZU5nc3NtVHJlZUFjdGlvbi50cmVlSWRdIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXX0=
@@ -225,10 +225,10 @@ class TreeNodeLoadingEffect {
225
225
  }
226
226
  });
227
227
  }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeLoadingEffect, deps: [{ token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
229
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeLoadingEffect }); }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeLoadingEffect, deps: [{ token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
229
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeLoadingEffect }); }
230
230
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeLoadingEffect, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeLoadingEffect, decorators: [{
232
232
  type: Injectable
233
233
  }], ctorParameters: () => [{ type: undefined, decorators: [{
234
234
  type: Inject,
@@ -337,10 +337,10 @@ class NgssmTreeComponent extends NgSsmComponent {
337
337
  this.dispatchAction(new DisplaySearchDialogAction(treeId, node.node.nodeId));
338
338
  }
339
339
  }
340
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
341
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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: i3$1.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 }); }
340
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmTreeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
341
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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: i3$1.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 }); }
342
342
  }
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeComponent, decorators: [{
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmTreeComponent, decorators: [{
344
344
  type: Component,
345
345
  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"] }]
346
346
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { treeConfig: [{
@@ -387,10 +387,10 @@ class NgssmBreadcrumbComponent extends NgSsmComponent {
387
387
  this.dispatchAction(new SelectNodeAction(treeId, node.nodeId));
388
388
  }
389
389
  }
390
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmBreadcrumbComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
391
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmBreadcrumbComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
391
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
392
392
  }
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmBreadcrumbComponent, decorators: [{
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmBreadcrumbComponent, decorators: [{
394
394
  type: Component,
395
395
  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"] }]
396
396
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { treeId: [{
@@ -468,10 +468,10 @@ class NgssmTreeSearchDialogComponent extends NgSsmComponent {
468
468
  regex: result.error
469
469
  };
470
470
  }
471
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeSearchDialogComponent, deps: [{ token: i1.Store }, { token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.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$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i6$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { 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: "directive", type: i4.MatCardFooter, selector: "mat-card-footer" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.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 }); }
471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmTreeSearchDialogComponent, deps: [{ token: i1.Store }, { token: NGSSM_TREE_DATA_SERVICE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.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$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i6$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { 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: "directive", type: i4.MatCardFooter, selector: "mat-card-footer" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.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 }); }
473
473
  }
474
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmTreeSearchDialogComponent, decorators: [{
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmTreeSearchDialogComponent, decorators: [{
475
475
  type: Component,
476
476
  args: [{ selector: 'ngssm-ngssm-tree-search-dialog', standalone: true, imports: [
477
477
  CommonModule,
@@ -560,10 +560,10 @@ class TreeNodesSearchingEffect {
560
560
  this.dialog?.close();
561
561
  this.dialog = undefined;
562
562
  }
563
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchingEffect, deps: [{ token: i6$1.MatDialog }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
564
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchingEffect }); }
563
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchingEffect, deps: [{ token: i6$1.MatDialog }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
564
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchingEffect }); }
565
565
  }
566
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchingEffect, decorators: [{
566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchingEffect, decorators: [{
567
567
  type: Injectable
568
568
  }], ctorParameters: () => [{ type: i6$1.MatDialog }, { type: i1.Logger }] });
569
569
 
@@ -685,10 +685,10 @@ let TreeNodeExpandReducer$1 = class TreeNodeExpandReducer {
685
685
  }
686
686
  return state;
687
687
  }
688
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
689
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer }); }
688
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
689
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer }); }
690
690
  };
691
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer$1, decorators: [{
691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer$1, decorators: [{
692
692
  type: Injectable
693
693
  }] });
694
694
 
@@ -711,10 +711,10 @@ class TreeNodeSelectionReducer {
711
711
  }
712
712
  return state;
713
713
  }
714
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeSelectionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
715
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeSelectionReducer }); }
714
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeSelectionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
715
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeSelectionReducer }); }
716
716
  }
717
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeSelectionReducer, decorators: [{
717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeSelectionReducer, decorators: [{
718
718
  type: Injectable
719
719
  }] });
720
720
 
@@ -795,10 +795,10 @@ class TreeNodesSearchReducer {
795
795
  }
796
796
  return state;
797
797
  }
798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
799
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchReducer }); }
798
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
799
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchReducer }); }
800
800
  }
801
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesSearchReducer, decorators: [{
801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesSearchReducer, decorators: [{
802
802
  type: Injectable
803
803
  }] });
804
804
 
@@ -842,10 +842,10 @@ class TreeNodesReducer {
842
842
  }
843
843
  return state;
844
844
  }
845
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
846
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesReducer }); }
845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
846
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesReducer }); }
847
847
  }
848
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodesReducer, decorators: [{
848
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodesReducer, decorators: [{
849
849
  type: Injectable
850
850
  }] });
851
851
 
@@ -884,10 +884,10 @@ let TreesReducer$1 = class TreesReducer {
884
884
  }
885
885
  return state;
886
886
  }
887
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
888
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer }); }
887
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
888
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer }); }
889
889
  };
890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer$1, decorators: [{
890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer$1, decorators: [{
891
891
  type: Injectable
892
892
  }] });
893
893
 
@@ -1092,10 +1092,10 @@ class TreesReducer {
1092
1092
  }
1093
1093
  return state;
1094
1094
  }
1095
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1096
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer }); }
1095
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1096
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer }); }
1097
1097
  }
1098
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreesReducer, decorators: [{
1098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreesReducer, decorators: [{
1099
1099
  type: Injectable
1100
1100
  }] });
1101
1101
 
@@ -1177,10 +1177,10 @@ class TreeNodeExpandReducer {
1177
1177
  }
1178
1178
  });
1179
1179
  }
1180
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1181
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer }); }
1180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1181
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer }); }
1182
1182
  }
1183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
1183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeExpandReducer, decorators: [{
1184
1184
  type: Injectable
1185
1185
  }] });
1186
1186
 
@@ -1299,10 +1299,10 @@ class TreeNodeEditionReducer {
1299
1299
  isExpanded: true
1300
1300
  });
1301
1301
  }
1302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeEditionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1303
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeEditionReducer }); }
1302
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeEditionReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1303
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeEditionReducer }); }
1304
1304
  }
1305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TreeNodeEditionReducer, decorators: [{
1305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TreeNodeEditionReducer, decorators: [{
1306
1306
  type: Injectable
1307
1307
  }] });
1308
1308
 
@@ -1407,10 +1407,10 @@ class CutAndPasteReducer {
1407
1407
  }
1408
1408
  });
1409
1409
  }
1410
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CutAndPasteReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1411
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CutAndPasteReducer }); }
1410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CutAndPasteReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1411
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CutAndPasteReducer }); }
1412
1412
  }
1413
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CutAndPasteReducer, decorators: [{
1413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CutAndPasteReducer, decorators: [{
1414
1414
  type: Injectable
1415
1415
  }] });
1416
1416
 
@@ -1539,10 +1539,10 @@ class NgssmExpressionTreeNodeComponent extends NgSsmComponent {
1539
1539
  this.dispatchAction(new NgssmPasteExpressionTreeNodeAction(treeId, nodeId, target));
1540
1540
  }
1541
1541
  }
1542
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1543
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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-icon\" *ngIf=\"(nodeCssIcon$ | async) !== undefined\" id=\"treeNodeIcon\">\n <mat-icon class=\"{{nodeCssIcon$ | async}}\"></mat-icon>\n</div>\n\n<div class=\"ngssm-expression-tree-node-label\" [matMenuTriggerFor]=\"contextMenu\"\n [class.ngssm-expression-tree-node-to-cut]=\"(cutAndPaste$ | async)?.isPartOfCut === true\" id=\"treeNodeLabel\">\n {{nodeLabel$ | async}}\n</div>\n\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>\n\n<mat-menu #contextMenu=\"matMenu\" [class]=\"'ngssm-expression-tree-popup-menu'\">\n <div class=\"flex-column-stretch\"\n *ngIf=\"treeConfig?.displayCutAndPasteMenus === true && (cutAndPaste$ | async) as cutAndPasteSetup\">\n <button mat-menu-item (click)=\"cut()\" *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === false\"\n [disabled]=\"cutAndPasteSetup.canCut !== true\">\n <mat-icon class=\"fa-solid fa-scissors\"></mat-icon>\n <span>Cut</span>\n </button>\n <button mat-menu-item *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === true\" (click)=\"cancelCut()\">\n <mat-icon class=\"fa-solid fa-slash\"></mat-icon>\n <span>Cancel cut</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteInside !== true\" (click)=\"paste('Inside')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste inside</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteAfter !== true\" (click)=\"paste('After')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste after</span>\n </button>\n <mat-divider></mat-divider>\n </div>\n\n <button mat-menu-item (click)=\"expandAll()\">\n <mat-icon class=\"fa-solid fa-up-right-and-down-left-from-center\"></mat-icon>\n <span>Expand all</span>\n </button>\n <button mat-menu-item (click)=\"collapseAll()\">\n <mat-icon class=\"fa-solid fa-down-left-and-up-right-to-center\"></mat-icon>\n <span>Collapse all</span>\n </button>\n</mat-menu>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\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: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1543
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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-icon\" *ngIf=\"(nodeCssIcon$ | async) !== undefined\" id=\"treeNodeIcon\">\n <mat-icon class=\"{{nodeCssIcon$ | async}}\"></mat-icon>\n</div>\n\n<div class=\"ngssm-expression-tree-node-label\" [matMenuTriggerFor]=\"contextMenu\"\n [class.ngssm-expression-tree-node-to-cut]=\"(cutAndPaste$ | async)?.isPartOfCut === true\" id=\"treeNodeLabel\">\n {{nodeLabel$ | async}}\n</div>\n\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>\n\n<mat-menu #contextMenu=\"matMenu\" [class]=\"'ngssm-expression-tree-popup-menu'\">\n <div class=\"flex-column-stretch\"\n *ngIf=\"treeConfig?.displayCutAndPasteMenus === true && (cutAndPaste$ | async) as cutAndPasteSetup\">\n <button mat-menu-item (click)=\"cut()\" *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === false\"\n [disabled]=\"cutAndPasteSetup.canCut !== true\">\n <mat-icon class=\"fa-solid fa-scissors\"></mat-icon>\n <span>Cut</span>\n </button>\n <button mat-menu-item *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === true\" (click)=\"cancelCut()\">\n <mat-icon class=\"fa-solid fa-slash\"></mat-icon>\n <span>Cancel cut</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteInside !== true\" (click)=\"paste('Inside')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste inside</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteAfter !== true\" (click)=\"paste('After')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste after</span>\n </button>\n <mat-divider></mat-divider>\n </div>\n\n <button mat-menu-item (click)=\"expandAll()\">\n <mat-icon class=\"fa-solid fa-up-right-and-down-left-from-center\"></mat-icon>\n <span>Expand all</span>\n </button>\n <button mat-menu-item (click)=\"collapseAll()\">\n <mat-icon class=\"fa-solid fa-down-left-and-up-right-to-center\"></mat-icon>\n <span>Collapse all</span>\n </button>\n</mat-menu>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\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: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgssmComponentDisplayDirective, selector: "[ngssmComponentDisplay]", inputs: ["ngssmComponentDisplay", "ngssmComponentAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1544
1544
  }
1545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeComponent, decorators: [{
1545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeComponent, decorators: [{
1546
1546
  type: Component,
1547
1547
  args: [{ selector: 'ngssm-expression-tree-node', standalone: true, imports: [CommonModule, MatIconModule, MatMenuModule, MatDividerModule, NgssmComponentDisplayDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-expression-tree-node-icon\" *ngIf=\"(nodeCssIcon$ | async) !== undefined\" id=\"treeNodeIcon\">\n <mat-icon class=\"{{nodeCssIcon$ | async}}\"></mat-icon>\n</div>\n\n<div class=\"ngssm-expression-tree-node-label\" [matMenuTriggerFor]=\"contextMenu\"\n [class.ngssm-expression-tree-node-to-cut]=\"(cutAndPaste$ | async)?.isPartOfCut === true\" id=\"treeNodeLabel\">\n {{nodeLabel$ | async}}\n</div>\n\n<div class=\"ngssm-expression-tree-node-description\" [innerHTML]=\"nodeDescription$ | async\">\n</div>\n\n<div class=\"ngssm-expression-tree-node-description-component\" [ngssmComponentDisplay]=\"componentToDisplay$ | async\"\n [ngssmComponentAction]=\"componentAction$ | async\">\n</div>\n\n<mat-menu #contextMenu=\"matMenu\" [class]=\"'ngssm-expression-tree-popup-menu'\">\n <div class=\"flex-column-stretch\"\n *ngIf=\"treeConfig?.displayCutAndPasteMenus === true && (cutAndPaste$ | async) as cutAndPasteSetup\">\n <button mat-menu-item (click)=\"cut()\" *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === false\"\n [disabled]=\"cutAndPasteSetup.canCut !== true\">\n <mat-icon class=\"fa-solid fa-scissors\"></mat-icon>\n <span>Cut</span>\n </button>\n <button mat-menu-item *ngIf=\"cutAndPasteSetup.isCutAndPasteInProgress === true\" (click)=\"cancelCut()\">\n <mat-icon class=\"fa-solid fa-slash\"></mat-icon>\n <span>Cancel cut</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteInside !== true\" (click)=\"paste('Inside')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste inside</span>\n </button>\n <button mat-menu-item [disabled]=\"cutAndPasteSetup.canPasteAfter !== true\" (click)=\"paste('After')\">\n <mat-icon class=\"fa-solid fa-paste\"></mat-icon>\n <span>Paste after</span>\n </button>\n <mat-divider></mat-divider>\n </div>\n\n <button mat-menu-item (click)=\"expandAll()\">\n <mat-icon class=\"fa-solid fa-up-right-and-down-left-from-center\"></mat-icon>\n <span>Expand all</span>\n </button>\n <button mat-menu-item (click)=\"collapseAll()\">\n <mat-icon class=\"fa-solid fa-down-left-and-up-right-to-center\"></mat-icon>\n <span>Collapse all</span>\n </button>\n</mat-menu>", styles: [":host{display:flex;flex-direction:row;align-items:center;flex:1}\n"] }]
1548
1548
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { nodeId: [{
@@ -1596,10 +1596,10 @@ class NgssmExpressionTreeNodeDetailsComponent extends NgSsmComponent {
1596
1596
  get componentToDisplay$() {
1597
1597
  return this._componentToDisplay$.asObservable();
1598
1598
  }
1599
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1600
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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 }); }
1599
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1600
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
1601
1601
  }
1602
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, decorators: [{
1602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeNodeDetailsComponent, decorators: [{
1603
1603
  type: Component,
1604
1604
  args: [{ selector: 'ngssm-expression-tree-node-details', standalone: true, imports: [CommonModule, NgssmComponentDisplayDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngssmComponentDisplay]=\"componentToDisplay$ | async\" [ngssmComponentAction]=\"componentAction$ | async\"></div>" }]
1605
1605
  }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }], propDecorators: { heightChanged: [{
@@ -1679,10 +1679,10 @@ class NgssmExpressionTreeComponent extends NgSsmComponent {
1679
1679
  forceRefresh() {
1680
1680
  this.changeDetectorRef.markForCheck();
1681
1681
  }
1682
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1683
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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\"\n (heightChanged)=\"forceRefresh()\">\n </ngssm-expression-tree-node-details>\n </div>\n </div>\n</ng-template>\n", 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$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.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 }); }
1682
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1683
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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\"\n (heightChanged)=\"forceRefresh()\">\n </ngssm-expression-tree-node-details>\n </div>\n </div>\n</ng-template>\n", 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$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.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 }); }
1684
1684
  }
1685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgssmExpressionTreeComponent, decorators: [{
1685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgssmExpressionTreeComponent, decorators: [{
1686
1686
  type: Component,
1687
1687
  args: [{ selector: 'ngssm-expression-tree', standalone: true, imports: [
1688
1688
  CommonModule,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-tree",
3
- "version": "18.2.0",
3
+ "version": "18.2.2",
4
4
  "description": "NgSsm - Tree implementation.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",