ngssm-data 17.3.1 → 17.4.0

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.
@@ -8,10 +8,10 @@ export class IsNgssmDataSourceValueStatusPipe {
8
8
  const itemStatus = selectNgssmDataSourceValue(value, key).status;
9
9
  return expectedStatuses.includes(itemStatus);
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, isStandalone: true, name: "isNgssmDataSourceValueStatus" }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, isStandalone: true, name: "isNgssmDataSourceValueStatus" }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'isNgssmDataSourceValueStatus',
@@ -52,10 +52,10 @@ export class NgssmDataReloadButtonComponent extends NgSsmComponent {
52
52
  reload() {
53
53
  this._dataSourceKeys.forEach((key) => this.dispatchAction(new NgssmLoadDataSourceValueAction(key, { forceReload: true, keepAdditionalProperties: this.keepAdditionalProperties })));
54
54
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataReloadButtonComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: NgssmDataReloadButtonComponent, isStandalone: true, selector: "ngssm-data-reload-button", inputs: { keepAdditionalProperties: "keepAdditionalProperties", dataSourceKeys: "dataSourceKeys" }, usesInheritance: true, ngImport: i0, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataReloadButtonComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: NgssmDataReloadButtonComponent, isStandalone: true, selector: "ngssm-data-reload-button", inputs: { keepAdditionalProperties: "keepAdditionalProperties", dataSourceKeys: "dataSourceKeys" }, usesInheritance: true, ngImport: i0, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataReloadButtonComponent, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataReloadButtonComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ selector: 'ngssm-data-reload-button', standalone: true, imports: [CommonModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>" }]
61
61
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { keepAdditionalProperties: [{
@@ -58,10 +58,10 @@ export class DataLoadingEffect {
58
58
  }
59
59
  }
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataLoadingEffect, deps: [{ token: i1.Logger }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataLoadingEffect }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataLoadingEffect, deps: [{ token: i1.Logger }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataLoadingEffect }); }
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataLoadingEffect, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataLoadingEffect, decorators: [{
65
65
  type: Injectable
66
66
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i0.EnvironmentInjector }] });
67
67
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb2FkaW5nLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL2VmZmVjdHMvZGF0YS1sb2FkaW5nLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RixPQUFPLEVBQ0wsbUJBQW1CLEVBR25CLCtDQUErQyxFQUMvQyw2QkFBNkIsRUFDOUIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBR3RELE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsWUFDVSxNQUFjLEVBQ2QsUUFBNkI7UUFEN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBUHZCLHFCQUFnQixHQUFhO1lBQzNDLG1CQUFtQixDQUFDLG1CQUFtQjtZQUN2QyxtQkFBbUIsQ0FBQyxxQ0FBcUM7U0FDMUQsQ0FBQztJQUtDLENBQUM7SUFFRyxhQUFhLENBQUMsS0FBWSxFQUFFLEtBQVksRUFBRSxNQUFjO1FBQzdELE1BQU0sR0FBRyxHQUFJLE1BQXFDLENBQUMsR0FBRyxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDM0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMs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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGFibGUsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFZmZlY3QsIFN0b3JlLCBTdGF0ZSwgQWN0aW9uLCBMb2dnZXIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7XG4gIE5nc3NtRGF0YUFjdGlvblR5cGUsXG4gIE5nc3NtRGF0YVNvdXJjZVZhbHVlQWN0aW9uLFxuICBOZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24sXG4gIE5nc3NtU2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uLFxuICBOZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IHNlbGVjdE5nc3NtRGF0YVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhTG9hZGluZ0VmZmVjdCBpbXBsZW1lbnRzIEVmZmVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlVmFsdWUsXG4gICAgTmdzc21EYXRhQWN0aW9uVHlwZS5sb2FkRGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBwcml2YXRlIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yXG4gICkge31cblxuICBwdWJsaWMgcHJvY2Vzc0FjdGlvbihzdG9yZTogU3RvcmUsIHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSAoYWN0aW9uIGFzIE5nc3NtRGF0YVNvdXJjZVZhbHVlQWN0aW9uKS5rZXk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlc1trZXldO1xuICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYE5vIGRhdGEgc291cmNlIHNldHVwIGZvciBrZXkgJyR7a2V5fSdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhU291cmNlVmFsdWUgPSBzZWxlY3ROZ3NzbURhdGFTdGF0ZShzdGF0ZSkuZGF0YVNvdXJjZVZhbHVlc1trZXldO1xuXG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlVmFsdWU6IHtcbiAgICAgICAgaWYgKGRhdGFTb3VyY2VWYWx1ZT8uc3RhdHVzICE9PSBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oXG4gICAgICAgICAgICBgRGF0YSBzb3VyY2UgdmFsdWUgZm9yICcke2tleX0nIGlzIG5vdCBpbiAnJHtOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkaW5nfScgc3RhdHVzOiAnJHtkYXRhU291cmNlVmFsdWU/LnN0YXR1c30nYFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICBkYXRhU291cmNlLmRhdGFMb2FkaW5nRnVuYyhzdGF0ZSwgZGF0YVNvdXJjZVZhbHVlLnBhcmFtZXRlcikuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4gc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IE5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uKGtleSwgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGVkLCB2YWx1ZSkpLFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgVW5hYmxlIHRvIGxvYWQgZGF0YSBmb3IgJyR7a2V5fSdgLCBlcnJvcik7XG4gICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBOZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbihrZXksIE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmVycm9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRGF0YUFjdGlvblR5cGUubG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZToge1xuICAgICAgICBjb25zdCBuZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21Mb2FkRGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IG5nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5wcm9wZXJ0eTtcbiAgICAgICAgaWYgKGRhdGFTb3VyY2VWYWx1ZS5hZGRpdGlvbmFsUHJvcGVydGllc1twcm9wZXJ0eV0/LnN0YXR1cyAhPT0gTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGluZykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKFxuICAgICAgICAgICAgYERhdGEgc291cmNlIGFkZGl0aW9uYWwgcHJvcGVydHkgdmFsdWUgZm9yICcke2tleX0nIGFuZCBwcm9wZXJ0eSAnJHtwcm9wZXJ0eX0nIGlzIG5vdCBpbiAnJHtOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkaW5nfScgc3RhdHVzOiAnJHtkYXRhU291cmNlVmFsdWU/LnN0YXR1c30nYFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICBkYXRhU291cmNlLmRhdGFMb2FkaW5nRnVuYyhzdGF0ZSwgZGF0YVNvdXJjZVZhbHVlLnBhcmFtZXRlciwgcHJvcGVydHkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAodmFsdWUpID0+XG4gICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBOZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbihrZXksIHByb3BlcnR5LCBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkZWQsIHZhbHVlKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgVW5hYmxlIHRvIGxvYWQgZGF0YSBmb3IgJyR7a2V5fScgYW5kIHByb3BlcnR5ICcke3Byb3BlcnR5fSdgLCBlcnJvcik7XG4gICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBOZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbihrZXksIHByb3BlcnR5LCBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5lcnJvcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -9,10 +9,10 @@ export class NgssmDataSourceCollection {
9
9
  constructor(dataSources) {
10
10
  this.dataSources = dataSources;
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataSourceCollection, deps: [{ token: NGSSM_DATA_SOURCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataSourceCollection, providedIn: 'root' }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataSourceCollection, deps: [{ token: NGSSM_DATA_SOURCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataSourceCollection, providedIn: 'root' }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataSourceCollection, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataSourceCollection, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root'
@@ -124,17 +124,31 @@ export class DataSourceValueReducer {
124
124
  case NgssmDataActionType.loadDataSourceAdditionalPropertyValue: {
125
125
  const ngssmLoadDataSourceAdditionalPropertyValueAction = action;
126
126
  const dataSourcePropertyValue = selectNgssmDataState(state).dataSourceValues[ngssmLoadDataSourceAdditionalPropertyValueAction.key]?.additionalProperties[ngssmLoadDataSourceAdditionalPropertyValueAction.property];
127
- if (dataSourcePropertyValue?.status === NgssmDataSourceValueStatus.loaded) {
127
+ if (dataSourcePropertyValue?.status === NgssmDataSourceValueStatus.loaded &&
128
+ ngssmLoadDataSourceAdditionalPropertyValueAction.forceReload !== true) {
128
129
  break;
129
130
  }
131
+ if (!dataSourcePropertyValue) {
132
+ return updateNgssmDataState(state, {
133
+ dataSourceValues: {
134
+ [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {
135
+ additionalProperties: {
136
+ [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {
137
+ $set: {
138
+ status: NgssmDataSourceValueStatus.loading
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ });
145
+ }
130
146
  return updateNgssmDataState(state, {
131
147
  dataSourceValues: {
132
148
  [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {
133
149
  additionalProperties: {
134
150
  [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {
135
- $set: {
136
- status: NgssmDataSourceValueStatus.loading
137
- }
151
+ status: { $set: NgssmDataSourceValueStatus.loading }
138
152
  }
139
153
  }
140
154
  }
@@ -165,10 +179,10 @@ export class DataSourceValueReducer {
165
179
  }
166
180
  return state;
167
181
  }
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourceValueReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
169
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourceValueReducer }); }
182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourceValueReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
183
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourceValueReducer }); }
170
184
  }
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourceValueReducer, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourceValueReducer, decorators: [{
172
186
  type: Injectable
173
187
  }] });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtdmFsdWUucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL3JlZHVjZXJzL2RhdGEtc291cmNlLXZhbHVlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBSWpDLE9BQU8sRUFFTCxtQkFBbUIsRUFNcEIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHdEQsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVrQixxQkFBZ0IsR0FBYTtZQUMzQyxtQkFBbUIsQ0FBQyxtQkFBbUI7WUFDdkMsbUJBQW1CLENBQUMsa0JBQWtCO1lBQ3RDLG1CQUFtQixDQUFDLG9CQUFvQjtZQUN4QyxtQkFBbUIsQ0FBQyxzQkFBc0I7WUFDMUMsbUJBQW1CLENBQUMscUNBQXFDO1lBQ3pELG1CQUFtQixDQUFDLG9DQUFvQztTQUN6RCxDQUFDO0tBZ0xIO0lBOUtRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxtQkFBbUIsR0FBRyxNQUF3QyxDQUFDO2dCQUNyRSxNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLGVBQWUsRUFBRSxD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O2dCQUVKLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO29CQUM3QixNQUFNO2dCQUNSLENBQUM7Z0JBRUQsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7b0JBQ2pDLGdCQUFnQixFQUFFO3dCQUNoQixDQUFDLCtDQUErQyxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUNyRCxvQkFBb0IsRUFBRTtnQ0FDcEIsQ0FBQywrQ0FBK0MsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQ0FDMUQsSUFBSSxFQUFFO3dDQUNKLE1BQU0sRUFBRSwrQ0FBK0MsQ0FBQyxNQUFNO3dDQUM5RCxLQUFLLEVBQUUsK0NBQStDLENBQUMsS0FBSztxQ0FDN0Q7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBdkxVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHtcbiAgTmdzc21DbGVhckRhdGFTb3VyY2VWYWx1ZUFjdGlvbixcbiAgTmdzc21EYXRhQWN0aW9uVHlwZSxcbiAgTmdzc21Mb2FkRGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uLFxuICBOZ3NzbUxvYWREYXRhU291cmNlVmFsdWVBY3Rpb24sXG4gIE5nc3NtU2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uLFxuICBOZ3NzbVNldERhdGFTb3VyY2VQYXJhbWV0ZXJBY3Rpb24sXG4gIE5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21EYXRhU3RhdGUsIHVwZGF0ZU5nc3NtRGF0YVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlVmFsdWVSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlVmFsdWUsXG4gICAgTmdzc21EYXRhQWN0aW9uVHlwZS5zZXREYXRhU291cmNlVmFsdWUsXG4gICAgTmdzc21EYXRhQWN0aW9uVHlwZS5jbGVhckRhdGFTb3VyY2VWYWx1ZSxcbiAgICBOZ3NzbURhdGFBY3Rpb25UeXBlLnNldERhdGFTb3VyY2VQYXJhbWV0ZXIsXG4gICAgTmdzc21EYXRhQWN0aW9uVHlwZS5sb2FkRGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlLFxuICAgIE5nc3NtRGF0YUFjdGlvblR5cGUuc2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlXG4gIF07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlVmFsdWU6IHtcbiAgICAgICAgY29uc3QgbG9hZERhdGFTb3VyY2VWYWx1ZSA9IGFjdGlvbiBhcyBOZ3NzbUxvYWREYXRhU291cmNlVmFsdWVBY3Rpb247XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VWYWx1ZSA9IHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlVmFsdWVzW2xvYWREYXRhU291cmNlVmFsdWUua2V5XTtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlVmFsdWUpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzaG91bGRSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICBsZXQgY3VycmVudFN0YXRlID0gc3RhdGU7XG4gICAgICAgIGlmIChsb2FkRGF0YVNvdXJjZVZhbHVlLm9wdGlvbnM/LnBhcmFtZXRlcikge1xuICAgICAgICAgIHNob3VsZFJlbG9hZCA9IHRydWU7XG4gICAgICAgICAgY3VycmVudFN0YXRlID0gdXBkYXRlTmdzc21EYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgICAgW2xvYWREYXRhU291cmNlVmFsdWUua2V5XToge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcjogeyAkc2V0OiBsb2FkRGF0YVNvdXJjZVZhbHVlLm9wdGlvbnM/LnBhcmFtZXRlci52YWx1ZSB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhU291cmNlVmFsdWUuc3RhdHVzID09PSBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBsb2FkRGF0YVNvdXJjZVZhbHVlLm9wdGlvbnM/LmZvcmNlUmVsb2FkID09PSB0cnVlIHx8XG4gICAgICAgICAgICAhZGF0YVNvdXJjZVZhbHVlLmRhdGFMaWZldGltZUluU2Vjb25kcyB8fFxuICAgICAgICAgICAgIWRhdGFTb3VyY2VWYWx1ZS5sYXN0TG9hZGluZ0RhdGVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNob3VsZFJlbG9hZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFMaWZldGltZSA9IERhdGVUaW1lLm5vdygpLmRpZmYoZGF0YVNvdXJjZVZhbHVlLmxhc3RMb2FkaW5nRGF0ZSwgJ3NlY29uZCcpO1xuICAgICAgICAgICAgaWYgKChkYXRhTGlmZXRpbWUudG9PYmplY3QoKS5zZWNvbmRzID8/IDApID4gZGF0YVNvdXJjZVZhbHVlLmRhdGFMaWZldGltZUluU2Vjb25kcykge1xuICAgICAgICAgICAgICBzaG91bGRSZWxvYWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzaG91bGRSZWxvYWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNob3VsZFJlbG9hZCkge1xuICAgICAgICAgIGlmIChsb2FkRGF0YVNvdXJjZVZhbHVlLm9wdGlvbnM/LmtlZXBBZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRGF0YVN0YXRlKGN1cnJlbnRTdGF0ZSwge1xuICAgICAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgW2xvYWREYXRhU291cmNlVmFsdWUua2V5XToge1xuICAgICAgICAgICAgICAgICAgc3RhdHVzOiB7ICRzZXQ6IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmxvYWRpbmcgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRGF0YVN0YXRlKGN1cnJlbnRTdGF0ZSwge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgICBbbG9hZERhdGFTb3VyY2VWYWx1ZS5rZXldOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiB7ICRzZXQ6IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmxvYWRpbmcgfSxcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkc2V0OiB7fSB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRGF0YUFjdGlvblR5cGUuc2V0RGF0YVNvdXJjZVZhbHVlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uO1xuICAgICAgICBjb25zdCBkYXRhU291cmNlVmFsdWUgPSBzZWxlY3ROZ3NzbURhdGFTdGF0ZShzdGF0ZSkuZGF0YVNvdXJjZVZhbHVlc1tuZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbi5rZXldO1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2VWYWx1ZSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRGF0YVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgW25nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uLmtleV06IHtcbiAgICAgICAgICAgICAgc3RhdHVzOiB7ICRzZXQ6IG5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uLnN0YXR1cyB9LFxuICAgICAgICAgICAgICB2YWx1ZTogeyAkc2V0OiBuZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbi52YWx1ZSB9LFxuICAgICAgICAgICAgICBsYXN0TG9hZGluZ0RhdGU6IHsgJHNldDogRGF0ZVRpbWUubm93KCkgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21EYXRhQWN0aW9uVHlwZS5jbGVhckRhdGFTb3VyY2VWYWx1ZToge1xuICAgICAgICBjb25zdCBuZ3NzbUNsZWFyRGF0YVNvdXJjZVZhbHVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtQ2xlYXJEYXRhU291cmNlVmFsdWVBY3Rpb247XG4gICAgICAgIGxldCBjdXJyZW50U3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgaWYgKG5nc3NtQ2xlYXJEYXRhU291cmNlVmFsdWVBY3Rpb24uY2xlYXJQYXJhbWV0ZXIpIHtcbiAgICAgICAgICBjdXJyZW50U3RhdGUgPSB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgICBbbmdzc21DbGVhckRhdGFTb3VyY2VWYWx1ZUFjdGlvbi5rZXldOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyOiB7ICRzZXQ6IHVuZGVmaW5lZCB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbURhdGFTdGF0ZShjdXJyZW50U3RhdGUsIHtcbiAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICBbbmdzc21DbGVhckRhdGFTb3VyY2VWYWx1ZUFjdGlvbi5rZXldOiB7XG4gICAgICAgICAgICAgIHN0YXR1czogeyAkc2V0OiBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5ub25lIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7ICRzZXQ6IHVuZGVmaW5lZCB9LFxuICAgICAgICAgICAgICBsYXN0TG9hZGluZ0RhdGU6IHsgJHNldDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRzZXQ6IHt9IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRGF0YUFjdGlvblR5cGUuc2V0RGF0YVNvdXJjZVBhcmFtZXRlcjoge1xuICAgICAgICBjb25zdCBuZ3NzbVNldERhdGFTb3VyY2VQYXJhbWV0ZXJBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21TZXREYXRhU291cmNlUGFyYW1ldGVyQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICBbbmdzc21TZXREYXRhU291cmNlUGFyYW1ldGVyQWN0aW9uLmtleV06IHtcbiAgICAgICAgICAgICAgcGFyYW1ldGVyOiB7ICRzZXQ6IG5nc3NtU2V0RGF0YVNvdXJjZVBhcmFtZXRlckFjdGlvbi5wYXJhbWV0ZXIgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21EYXRhQWN0aW9uVHlwZS5sb2FkRGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb247XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VQcm9wZXJ0eVZhbHVlID1cbiAgICAgICAgICBzZWxlY3ROZ3NzbURhdGFTdGF0ZShzdGF0ZSkuZGF0YVNvdXJjZVZhbHVlc1tuZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ua2V5XT8uYWRkaXRpb25hbFByb3BlcnRpZXNbXG4gICAgICAgICAgICBuZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ucHJvcGVydHlcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGlmIChkYXRhU291cmNlUHJvcGVydHlWYWx1ZT8uc3RhdHVzID09PSBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkZWQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ua2V5XToge1xuICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIFtuZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ucHJvcGVydHldOiB7XG4gICAgICAgICAgICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGluZ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21EYXRhQWN0aW9uVHlwZS5zZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb247XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VQcm9wZXJ0eVZhbHVlID1cbiAgICAgICAgICBzZWxlY3ROZ3NzbURhdGFTdGF0ZShzdGF0ZSkuZGF0YVNvdXJjZVZhbHVlc1tuZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5rZXldPy5hZGRpdGlvbmFsUHJvcGVydGllc1tcbiAgICAgICAgICAgIG5nc3NtU2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uLnByb3BlcnR5XG4gICAgICAgICAgXTtcblxuICAgICAgICBpZiAoIWRhdGFTb3VyY2VQcm9wZXJ0eVZhbHVlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICBbbmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ua2V5XToge1xuICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIFtuZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5wcm9wZXJ0eV06IHtcbiAgICAgICAgICAgICAgICAgICRzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBuZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtdmFsdWUucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL3JlZHVjZXJzL2RhdGEtc291cmNlLXZhbHVlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBSWpDLE9BQU8sRUFFTCxtQkFBbUIsRUFNcEIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHdEQsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVrQixxQkFBZ0IsR0FBYTtZQUMzQyxtQkFBbUIsQ0FBQyxtQkFBbUI7WUFDdkMsbUJBQW1CLENBQUMsa0JBQWtCO1lBQ3RDLG1CQUFtQixDQUFDLG9CQUFvQjtZQUN4QyxtQkFBbUIsQ0FBQyxzQkFBc0I7WUFDMUMsbUJBQW1CLENBQUMscUNBQXFDO1lBQ3pELG1CQUFtQixDQUFDLG9DQUFvQztTQUN6RCxDQUFDO0tBaU1IO0lBL0xRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxtQkFBbUIsR0FBRyxNQUF3QyxDQUFDO2dCQUNyRSxNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLGVBQWUsRUFBRSxD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QUMsRUFBRTtvQ0FDM0QsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixDQUFDLE9BQU8sRUFBRTtpQ0FDckQ7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELEtBQUssbUJBQW1CLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxNQUFNLCtDQUErQyxHQUFHLE1BQXlELENBQUM7Z0JBQ2xILE1BQU0sdUJBQXVCLEdBQzNCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDLCtDQUErQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixDQUNySCwrQ0FBK0MsQ0FBQyxRQUFRLENBQ3pELENBQUM7Z0JBRUosSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7b0JBQzdCLE1BQU07Z0JBQ1IsQ0FBQztnQkFFRCxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTtvQkFDakMsZ0JBQWdCLEVBQUU7d0JBQ2hCLENBQUMsK0NBQStDLENBQUMsR0FBRyxDQUFDLEVBQUU7NEJBQ3JELG9CQUFvQixFQUFFO2dDQUNwQixDQUFDLCtDQUErQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29DQUMxRCxJQUFJLEVBQUU7d0NBQ0osTUFBTSxFQUFFLCtDQUErQyxDQUFDLE1BQU07d0NBQzlELEtBQUssRUFBRSwrQ0FBK0MsQ0FBQyxLQUFLO3FDQUM3RDtpQ0FDRjs2QkFDRjt5QkFDRjtxQkFDRjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F4TVUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuXG5pbXBvcnQgeyBSZWR1Y2VyLCBTdGF0ZSwgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQge1xuICBOZ3NzbUNsZWFyRGF0YVNvdXJjZVZhbHVlQWN0aW9uLFxuICBOZ3NzbURhdGFBY3Rpb25UeXBlLFxuICBOZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24sXG4gIE5nc3NtTG9hZERhdGFTb3VyY2VWYWx1ZUFjdGlvbixcbiAgTmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24sXG4gIE5nc3NtU2V0RGF0YVNvdXJjZVBhcmFtZXRlckFjdGlvbixcbiAgTmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbURhdGFTdGF0ZSwgdXBkYXRlTmdzc21EYXRhU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VWYWx1ZVJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIE5nc3NtRGF0YUFjdGlvblR5cGUubG9hZERhdGFTb3VyY2VWYWx1ZSxcbiAgICBOZ3NzbURhdGFBY3Rpb25UeXBlLnNldERhdGFTb3VyY2VWYWx1ZSxcbiAgICBOZ3NzbURhdGFBY3Rpb25UeXBlLmNsZWFyRGF0YVNvdXJjZVZhbHVlLFxuICAgIE5nc3NtRGF0YUFjdGlvblR5cGUuc2V0RGF0YVNvdXJjZVBhcmFtZXRlcixcbiAgICBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWUsXG4gICAgTmdzc21EYXRhQWN0aW9uVHlwZS5zZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVcbiAgXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIE5nc3NtRGF0YUFjdGlvblR5cGUubG9hZERhdGFTb3VyY2VWYWx1ZToge1xuICAgICAgICBjb25zdCBsb2FkRGF0YVNvdXJjZVZhbHVlID0gYWN0aW9uIGFzIE5nc3NtTG9hZERhdGFTb3VyY2VWYWx1ZUFjdGlvbjtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZVZhbHVlID0gc2VsZWN0Tmdzc21EYXRhU3RhdGUoc3RhdGUpLmRhdGFTb3VyY2VWYWx1ZXNbbG9hZERhdGFTb3VyY2VWYWx1ZS5rZXldO1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2VWYWx1ZSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHNob3VsZFJlbG9hZCA9IGZhbHNlO1xuXG4gICAgICAgIGxldCBjdXJyZW50U3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgaWYgKGxvYWREYXRhU291cmNlVmFsdWUub3B0aW9ucz8ucGFyYW1ldGVyKSB7XG4gICAgICAgICAgc2hvdWxkUmVsb2FkID0gdHJ1ZTtcbiAgICAgICAgICBjdXJyZW50U3RhdGUgPSB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgICBbbG9hZERhdGFTb3VyY2VWYWx1ZS5rZXldOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyOiB7ICRzZXQ6IGxvYWREYXRhU291cmNlVmFsdWUub3B0aW9ucz8ucGFyYW1ldGVyLnZhbHVlIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGFTb3VyY2VWYWx1ZS5zdGF0dXMgPT09IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmxvYWRlZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGxvYWREYXRhU291cmNlVmFsdWUub3B0aW9ucz8uZm9yY2VSZWxvYWQgPT09IHRydWUgfHxcbiAgICAgICAgICAgICFkYXRhU291cmNlVmFsdWUuZGF0YUxpZmV0aW1lSW5TZWNvbmRzIHx8XG4gICAgICAgICAgICAhZGF0YVNvdXJjZVZhbHVlLmxhc3RMb2FkaW5nRGF0ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2hvdWxkUmVsb2FkID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0YUxpZmV0aW1lID0gRGF0ZVRpbWUubm93KCkuZGlmZihkYXRhU291cmNlVmFsdWUubGFzdExvYWRpbmdEYXRlLCAnc2Vjb25kJyk7XG4gICAgICAgICAgICBpZiAoKGRhdGFMaWZldGltZS50b09iamVjdCgpLnNlY29uZHMgPz8gMCkgPiBkYXRhU291cmNlVmFsdWUuZGF0YUxpZmV0aW1lSW5TZWNvbmRzKSB7XG4gICAgICAgICAgICAgIHNob3VsZFJlbG9hZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNob3VsZFJlbG9hZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hvdWxkUmVsb2FkKSB7XG4gICAgICAgICAgaWYgKGxvYWREYXRhU291cmNlVmFsdWUub3B0aW9ucz8ua2VlcEFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoY3VycmVudFN0YXRlLCB7XG4gICAgICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgICAgICBbbG9hZERhdGFTb3VyY2VWYWx1ZS5rZXldOiB7XG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGluZyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoY3VycmVudFN0YXRlLCB7XG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICAgIFtsb2FkRGF0YVNvdXJjZVZhbHVlLmtleV06IHtcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGluZyB9LFxuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRzZXQ6IHt9IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21EYXRhQWN0aW9uVHlwZS5zZXREYXRhU291cmNlVmFsdWU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb247XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VWYWx1ZSA9IHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlVmFsdWVzW25nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uLmtleV07XG4gICAgICAgIGlmICghZGF0YVNvdXJjZVZhbHVlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICBbbmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb24ua2V5XToge1xuICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogbmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb24uc3RhdHVzIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7ICRzZXQ6IG5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uLnZhbHVlIH0sXG4gICAgICAgICAgICAgIGxhc3RMb2FkaW5nRGF0ZTogeyAkc2V0OiBEYXRlVGltZS5ub3coKSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbURhdGFBY3Rpb25UeXBlLmNsZWFyRGF0YVNvdXJjZVZhbHVlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtQ2xlYXJEYXRhU291cmNlVmFsdWVBY3Rpb24gPSBhY3Rpb24gYXMgTmdzc21DbGVhckRhdGFTb3VyY2VWYWx1ZUFjdGlvbjtcbiAgICAgICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHN0YXRlO1xuICAgICAgICBpZiAobmdzc21DbGVhckRhdGFTb3VyY2VWYWx1ZUFjdGlvbi5jbGVhclBhcmFtZXRlcikge1xuICAgICAgICAgIGN1cnJlbnRTdGF0ZSA9IHVwZGF0ZU5nc3NtRGF0YVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7XG4gICAgICAgICAgICAgIFtuZ3NzbUNsZWFyRGF0YVNvdXJjZVZhbHVlQWN0aW9uLmtleV06IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXI6IHsgJHNldDogdW5kZWZpbmVkIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRGF0YVN0YXRlKGN1cnJlbnRTdGF0ZSwge1xuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbUNsZWFyRGF0YVNvdXJjZVZhbHVlQWN0aW9uLmtleV06IHtcbiAgICAgICAgICAgICAgc3RhdHVzOiB7ICRzZXQ6IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLm5vbmUgfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHsgJHNldDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgIGxhc3RMb2FkaW5nRGF0ZTogeyAkc2V0OiB1bmRlZmluZWQgfSxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgJHNldDoge30gfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21EYXRhQWN0aW9uVHlwZS5zZXREYXRhU291cmNlUGFyYW1ldGVyOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtU2V0RGF0YVNvdXJjZVBhcmFtZXRlckFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbVNldERhdGFTb3VyY2VQYXJhbWV0ZXJBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbVNldERhdGFTb3VyY2VQYXJhbWV0ZXJBY3Rpb24ua2V5XToge1xuICAgICAgICAgICAgICBwYXJhbWV0ZXI6IHsgJHNldDogbmdzc21TZXREYXRhU291cmNlUGFyYW1ldGVyQWN0aW9uLnBhcmFtZXRlciB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWU6IHtcbiAgICAgICAgY29uc3Qgbmdzc21Mb2FkRGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbjtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZVByb3BlcnR5VmFsdWUgPVxuICAgICAgICAgIHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlVmFsdWVzW25nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5rZXldPy5hZGRpdGlvbmFsUHJvcGVydGllc1tcbiAgICAgICAgICAgIG5nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5wcm9wZXJ0eVxuICAgICAgICAgIF07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRhdGFTb3VyY2VQcm9wZXJ0eVZhbHVlPy5zdGF0dXMgPT09IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmxvYWRlZCAmJlxuICAgICAgICAgIG5nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5mb3JjZVJlbG9hZCAhPT0gdHJ1ZVxuICAgICAgICApIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YVNvdXJjZVByb3BlcnR5VmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgICAgW25nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5rZXldOiB7XG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgIFtuZ3NzbUxvYWREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ucHJvcGVydHldOiB7XG4gICAgICAgICAgICAgICAgICAgICRzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRGF0YVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgW25nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5rZXldOiB7XG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgW25nc3NtTG9hZERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5wcm9wZXJ0eV06IHtcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogeyAkc2V0OiBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkaW5nIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtRGF0YUFjdGlvblR5cGUuc2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlOiB7XG4gICAgICAgIGNvbnN0IG5nc3NtU2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtU2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uO1xuICAgICAgICBjb25zdCBkYXRhU291cmNlUHJvcGVydHlWYWx1ZSA9XG4gICAgICAgICAgc2VsZWN0Tmdzc21EYXRhU3RhdGUoc3RhdGUpLmRhdGFTb3VyY2VWYWx1ZXNbbmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ua2V5XT8uYWRkaXRpb25hbFByb3BlcnRpZXNbXG4gICAgICAgICAgICBuZ3NzbVNldERhdGFTb3VyY2VBZGRpdGlvbmFsUHJvcGVydHlWYWx1ZUFjdGlvbi5wcm9wZXJ0eVxuICAgICAgICAgIF07XG5cbiAgICAgICAgaWYgKCFkYXRhU291cmNlUHJvcGVydHlWYWx1ZSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtRGF0YVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgW25nc3NtU2V0RGF0YVNvdXJjZUFkZGl0aW9uYWxQcm9wZXJ0eVZhbHVlQWN0aW9uLmtleV06IHtcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBbbmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24ucHJvcGVydHldOiB7XG4gICAgICAgICAgICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogbmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24uc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmdzc21TZXREYXRhU291cmNlQWRkaXRpb25hbFByb3BlcnR5VmFsdWVBY3Rpb24udmFsdWVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -32,10 +32,10 @@ export class DataSourcesRegistrationReducer {
32
32
  }
33
33
  return state;
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourcesRegistrationReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourcesRegistrationReducer }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourcesRegistrationReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourcesRegistrationReducer }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourcesRegistrationReducer, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourcesRegistrationReducer, decorators: [{
39
39
  type: Injectable
40
40
  }] });
41
41
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2VzLXJlZ2lzdHJhdGlvbi5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tZGF0YS9zcmMvbGliL25nc3NtLWRhdGEvcmVkdWNlcnMvZGF0YS1zb3VyY2VzLXJlZ2lzdHJhdGlvbi5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLFlBQVksQ0FBQztBQUNqRixPQUFPLEVBQXlDLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHdEUsTUFBTSxPQUFPLDhCQUE4QjtJQUQzQztRQUVrQixxQkFBZ0IsR0FBYSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FnQ3hGO0lBOUJRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM1RCxNQUFNLHlCQUF5QixHQUFHLE1BQXdDLENBQUM7WUFDM0UsTUFBTSxnQkFBZ0IsR0FBNEMsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sV0FBVyxHQUF1QyxFQUFFLENBQUM7WUFDM0QseUJBQXlCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUMzRCxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDNUQsT0FBTztnQkFDVCxDQUFDO2dCQUVELGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDakMsTUFBTSxFQUFFLDBCQUEwQixDQUFDLElBQUk7b0JBQ3ZDLG9CQUFvQixFQUFFLEVBQUU7aUJBQ3pCLENBQUM7Z0JBRUYsSUFBSSxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDckMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDNUYsQ0FBQztnQkFFRCxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sb0JBQW9CLENBQUMsS0FBSyxFQUFFO2dCQUNqQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRTtnQkFDOUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRTthQUNyQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWhDVSw4QkFBOEI7a0hBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21EYXRhQWN0aW9uVHlwZSwgTmdzc21SZWdpc3RlckRhdGFTb3VyY2VzQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBOZ3NzbURhdGFTb3VyY2UsIE5nc3NtRGF0YVNvdXJjZVZhbHVlLCBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IHNlbGVjdE5nc3NtRGF0YVN0YXRlLCB1cGRhdGVOZ3NzbURhdGFTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VzUmVnaXN0cmF0aW9uUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbTmdzc21EYXRhQWN0aW9uVHlwZS5yZWdpc3RlckRhdGFTb3VyY2VzXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IE5nc3NtRGF0YUFjdGlvblR5cGUucmVnaXN0ZXJEYXRhU291cmNlcykge1xuICAgICAgY29uc3QgcmVnaXN0ZXJEYXRhU291cmNlc0FjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbVJlZ2lzdGVyRGF0YVNvdXJjZXNBY3Rpb247XG4gICAgICBjb25zdCBkYXRhU291cmNlVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IE5nc3NtRGF0YVNvdXJjZVZhbHVlIH0gPSB7fTtcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2VzOiB7IFtrZXk6IHN0cmluZ106IE5nc3NtRGF0YVNvdXJjZSB9ID0ge307XG4gICAgICByZWdpc3RlckRhdGFTb3VyY2VzQWN0aW9uLmRhdGFTb3VyY2VzLmZvckVhY2goKGRhdGFTb3VyY2UpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlc1tkYXRhU291cmNlLmtleV0pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhU291cmNlVmFsdWVzW2RhdGFTb3VyY2Uua2V5XSA9IHtcbiAgICAgICAgICBzdGF0dXM6IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLm5vbmUsXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGRhdGFTb3VyY2UuZGF0YUxpZmV0aW1lSW5TZWNvbmRzKSB7XG4gICAgICAgICAgZGF0YVNvdXJjZVZhbHVlc1tkYXRhU291cmNlLmtleV0uZGF0YUxpZmV0aW1lSW5TZWNvbmRzID0gZGF0YVNvdXJjZS5kYXRhTGlmZXRpbWVJblNlY29uZHM7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhU291cmNlc1tkYXRhU291cmNlLmtleV0gPSBkYXRhU291cmNlO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICBkYXRhU291cmNlVmFsdWVzOiB7ICRtZXJnZTogZGF0YVNvdXJjZVZhbHVlcyB9LFxuICAgICAgICBkYXRhU291cmNlczogeyAkbWVyZ2U6IGRhdGFTb3VyY2VzIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -178,10 +178,10 @@ class DataSourcesRegistrationReducer {
178
178
  }
179
179
  return state;
180
180
  }
181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourcesRegistrationReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
182
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourcesRegistrationReducer }); }
181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourcesRegistrationReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
182
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourcesRegistrationReducer }); }
183
183
  }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourcesRegistrationReducer, decorators: [{
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourcesRegistrationReducer, decorators: [{
185
185
  type: Injectable
186
186
  }] });
187
187
 
@@ -305,17 +305,31 @@ class DataSourceValueReducer {
305
305
  case NgssmDataActionType.loadDataSourceAdditionalPropertyValue: {
306
306
  const ngssmLoadDataSourceAdditionalPropertyValueAction = action;
307
307
  const dataSourcePropertyValue = selectNgssmDataState(state).dataSourceValues[ngssmLoadDataSourceAdditionalPropertyValueAction.key]?.additionalProperties[ngssmLoadDataSourceAdditionalPropertyValueAction.property];
308
- if (dataSourcePropertyValue?.status === NgssmDataSourceValueStatus.loaded) {
308
+ if (dataSourcePropertyValue?.status === NgssmDataSourceValueStatus.loaded &&
309
+ ngssmLoadDataSourceAdditionalPropertyValueAction.forceReload !== true) {
309
310
  break;
310
311
  }
312
+ if (!dataSourcePropertyValue) {
313
+ return updateNgssmDataState(state, {
314
+ dataSourceValues: {
315
+ [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {
316
+ additionalProperties: {
317
+ [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {
318
+ $set: {
319
+ status: NgssmDataSourceValueStatus.loading
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ });
326
+ }
311
327
  return updateNgssmDataState(state, {
312
328
  dataSourceValues: {
313
329
  [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {
314
330
  additionalProperties: {
315
331
  [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {
316
- $set: {
317
- status: NgssmDataSourceValueStatus.loading
318
- }
332
+ status: { $set: NgssmDataSourceValueStatus.loading }
319
333
  }
320
334
  }
321
335
  }
@@ -346,10 +360,10 @@ class DataSourceValueReducer {
346
360
  }
347
361
  return state;
348
362
  }
349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourceValueReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
350
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourceValueReducer }); }
363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourceValueReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
364
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourceValueReducer }); }
351
365
  }
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataSourceValueReducer, decorators: [{
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataSourceValueReducer, decorators: [{
353
367
  type: Injectable
354
368
  }] });
355
369
 
@@ -407,10 +421,10 @@ class DataLoadingEffect {
407
421
  }
408
422
  }
409
423
  }
410
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataLoadingEffect, deps: [{ token: i1.Logger }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
411
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataLoadingEffect }); }
424
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataLoadingEffect, deps: [{ token: i1.Logger }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
425
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataLoadingEffect }); }
412
426
  }
413
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DataLoadingEffect, decorators: [{
427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DataLoadingEffect, decorators: [{
414
428
  type: Injectable
415
429
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i0.EnvironmentInjector }] });
416
430
 
@@ -418,10 +432,10 @@ class NgssmDataSourceCollection {
418
432
  constructor(dataSources) {
419
433
  this.dataSources = dataSources;
420
434
  }
421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataSourceCollection, deps: [{ token: NGSSM_DATA_SOURCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
422
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataSourceCollection, providedIn: 'root' }); }
435
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataSourceCollection, deps: [{ token: NGSSM_DATA_SOURCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
436
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataSourceCollection, providedIn: 'root' }); }
423
437
  }
424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataSourceCollection, decorators: [{
438
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataSourceCollection, decorators: [{
425
439
  type: Injectable,
426
440
  args: [{
427
441
  providedIn: 'root'
@@ -460,10 +474,10 @@ class IsNgssmDataSourceValueStatusPipe {
460
474
  const itemStatus = selectNgssmDataSourceValue(value, key).status;
461
475
  return expectedStatuses.includes(itemStatus);
462
476
  }
463
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
464
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, isStandalone: true, name: "isNgssmDataSourceValueStatus" }); }
477
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
478
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, isStandalone: true, name: "isNgssmDataSourceValueStatus" }); }
465
479
  }
466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, decorators: [{
480
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, decorators: [{
467
481
  type: Pipe,
468
482
  args: [{
469
483
  name: 'isNgssmDataSourceValueStatus',
@@ -508,10 +522,10 @@ class NgssmDataReloadButtonComponent extends NgSsmComponent {
508
522
  reload() {
509
523
  this._dataSourceKeys.forEach((key) => this.dispatchAction(new NgssmLoadDataSourceValueAction(key, { forceReload: true, keepAdditionalProperties: this.keepAdditionalProperties })));
510
524
  }
511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataReloadButtonComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
512
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: NgssmDataReloadButtonComponent, isStandalone: true, selector: "ngssm-data-reload-button", inputs: { keepAdditionalProperties: "keepAdditionalProperties", dataSourceKeys: "dataSourceKeys" }, usesInheritance: true, ngImport: i0, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
525
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataReloadButtonComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
526
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: NgssmDataReloadButtonComponent, isStandalone: true, selector: "ngssm-data-reload-button", inputs: { keepAdditionalProperties: "keepAdditionalProperties", dataSourceKeys: "dataSourceKeys" }, usesInheritance: true, ngImport: i0, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
513
527
  }
514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgssmDataReloadButtonComponent, decorators: [{
528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: NgssmDataReloadButtonComponent, decorators: [{
515
529
  type: Component,
516
530
  args: [{ selector: 'ngssm-data-reload-button', standalone: true, imports: [CommonModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>" }]
517
531
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { keepAdditionalProperties: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-data.mjs","sources":["../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-data-action-type.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-load-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-register-data-sources.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-clear-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-parameter.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-load-data-source-additional-property-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-additional-property-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/model/ngssm-data-source.ts","../../../projects/ngssm-data/src/lib/ngssm-data/model/ngssm-data-source-value.ts","../../../projects/ngssm-data/src/lib/ngssm-data/state/ngssm-data.state.ts","../../../projects/ngssm-data/src/lib/ngssm-data/state/selectors.ts","../../../projects/ngssm-data/src/lib/ngssm-data/reducers/data-sources-registration.reducer.ts","../../../projects/ngssm-data/src/lib/ngssm-data/reducers/data-source-value.reducer.ts","../../../projects/ngssm-data/src/lib/ngssm-data/effects/data-loading.effect.ts","../../../projects/ngssm-data/src/lib/ngssm-data/provide-ngssm-data.ts","../../../projects/ngssm-data/src/lib/ngssm-data/components/is-ngssm-data-source-value-status.pipe.ts","../../../projects/ngssm-data/src/lib/ngssm-data/components/ngssm-data-reload-button/ngssm-data-reload-button.component.ts","../../../projects/ngssm-data/src/lib/ngssm-data/components/ngssm-data-reload-button/ngssm-data-reload-button.component.html","../../../projects/ngssm-data/src/public-api.ts","../../../projects/ngssm-data/src/ngssm-data.ts"],"sourcesContent":["export enum NgssmDataActionType {\n registerDataSources = '[NgssmDataActionType] registerDataSources',\n loadDataSourceValue = '[NgssmDataActionType] loadDataSourceValue',\n setDataSourceParameter = '[NgssmDataActionType] setDataSourceParameter',\n clearDataSourceValue = '[NgssmDataActionType] clearDataSourceValue',\n setDataSourceValue = '[NgssmDataActionType] setDataSourceValue',\n loadDataSourceAdditionalPropertyValue = '[NgssmDataActionType] loadDataSourceAdditionalPropertyValue',\n setDataSourceAdditionalPropertyValue = '[NgssmDataActionType] setDataSourceAdditionalPropertyValue'\n}\n","import { Action } from 'ngssm-store';\n\nexport class NgssmDataSourceValueAction implements Action {\n constructor(\n public readonly type: string,\n public readonly key: string\n ) {}\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmLoadDataSourceOptions } from '../model';\n\nexport class NgssmLoadDataSourceValueAction<TParameter = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly options?: NgssmLoadDataSourceOptions<TParameter>\n ) {\n super(NgssmDataActionType.loadDataSourceValue, key);\n }\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSourceValueStatus } from '../model';\n\nexport class NgssmSetDataSourceValueAction<TData = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly status: NgssmDataSourceValueStatus,\n public readonly value?: TData\n ) {\n super(NgssmDataActionType.setDataSourceValue, key);\n }\n}\n","import { Action } from 'ngssm-store';\n\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSource } from '../model';\n\nexport class NgssmRegisterDataSourcesAction implements Action {\n public readonly type: string = NgssmDataActionType.registerDataSources;\n\n constructor(public readonly dataSources: NgssmDataSource[]) {}\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\n\nexport class NgssmClearDataSourceValueAction extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly clearParameter: boolean = false\n ) {\n super(NgssmDataActionType.clearDataSourceValue, key);\n }\n}\n","import { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\n\nexport class NgssmSetDataSourceParameterAction<TParameter = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly parameter?: TParameter\n ) {\n super(NgssmDataActionType.setDataSourceParameter, key);\n }\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\n\nexport class NgssmLoadDataSourceAdditionalPropertyValueAction extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly property: string,\n public readonly forceReload?: boolean\n ) {\n super(NgssmDataActionType.loadDataSourceAdditionalPropertyValue, key);\n }\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataSourceValueStatus } from '../model';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\n\nexport class NgssmSetDataSourceAdditionalPropertyValueAction<TProperty = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly property: string,\n public readonly status: NgssmDataSourceValueStatus,\n public readonly value?: TProperty\n ) {\n super(NgssmDataActionType.setDataSourceAdditionalPropertyValue, key);\n }\n}\n","import { EnvironmentProviders, InjectionToken, inject, makeEnvironmentProviders } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { State, Store } from 'ngssm-store';\nimport { NgssmLoadDataSourceValueAction } from '../actions';\n\nexport interface NgssmDataLoading<TData = any, TParameter = any> {\n (state: State, parameter?: TParameter, additionalProperty?: string): Observable<TData>;\n}\n\nexport interface NgssmDataSource<TData = any, TParameter = any> {\n key: string;\n dataLifetimeInSeconds?: number;\n dataLoadingFunc: NgssmDataLoading<TData, TParameter>;\n}\n\nexport const NGSSM_DATA_SOURCE = new InjectionToken<NgssmDataSource>('NGSSM_DATA_SOURCE');\n\nexport const provideNgssmDataSource = <TData = any, TParameter = any>(\n key: string,\n loadingFunc: NgssmDataLoading<TData, TParameter>,\n dataLifetimeInSeconds?: number\n): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: NGSSM_DATA_SOURCE,\n useFactory: () => {\n const dataSource: NgssmDataSource<TData, TParameter> = {\n key,\n dataLifetimeInSeconds,\n dataLoadingFunc: loadingFunc\n };\n return dataSource;\n },\n multi: true\n }\n ]);\n};\n\nexport const ngssmLoadDataSourceValue = (key: string, forceReload: boolean = false): (() => boolean) => {\n return () => {\n inject(Store).dispatchAction(new NgssmLoadDataSourceValueAction(key, { forceReload }));\n return true;\n };\n};\n","import { DateTime } from 'luxon';\n\nexport enum NgssmDataSourceValueStatus {\n none = 'none',\n notRegistered = 'notRegistered',\n loading = 'loading',\n loaded = 'loaded',\n error = 'error'\n}\n\nexport interface NgssmDataSourceAdditionalPropertyValue<TProperty = any> {\n status: NgssmDataSourceValueStatus;\n value?: TProperty;\n lastLoadingDate?: DateTime;\n}\n\nexport interface NgssmDataSourceValue<TData = any, TParameter = any> {\n status: NgssmDataSourceValueStatus;\n value?: TData;\n parameter?: TParameter;\n lastLoadingDate?: DateTime;\n dataLifetimeInSeconds?: number;\n additionalProperties: { [key: string]: NgssmDataSourceAdditionalPropertyValue };\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\nimport { NgssmDataSource, NgssmDataSourceValue } from '../model';\n\nexport const selectNgssmDataState = (state: State): NgssmDataState => state[NgssmDataStateSpecification.featureStateKey] as NgssmDataState;\n\nexport const updateNgssmDataState = (state: State, command: Spec<NgssmDataState, never>): State =>\n update(state, {\n [NgssmDataStateSpecification.featureStateKey]: command\n });\n\nexport interface NgssmDataState {\n dataSourceValues: { [key: string]: NgssmDataSourceValue };\n dataSources: { [key: string]: NgssmDataSource };\n}\n\n@NgSsmFeatureState({\n featureStateKey: NgssmDataStateSpecification.featureStateKey,\n initialState: NgssmDataStateSpecification.initialState\n})\nexport class NgssmDataStateSpecification {\n public static readonly featureStateKey = 'ngssm-data-state';\n public static readonly initialState: NgssmDataState = {\n dataSourceValues: {},\n dataSources: {}\n };\n}\n","import { State } from 'ngssm-store';\nimport { NgssmDataSourceAdditionalPropertyValue, NgssmDataSourceValue, NgssmDataSourceValueStatus } from '../model';\nimport { selectNgssmDataState } from './ngssm-data.state';\n\nexport const selectNgssmDataSourceValue = <TDataType = any, TParameter = any>(\n state: State,\n key: string\n): NgssmDataSourceValue<TDataType, TParameter> => {\n return (\n selectNgssmDataState(state).dataSourceValues[key] ?? {\n status: NgssmDataSourceValueStatus.notRegistered\n }\n );\n};\n\nexport const selectNgssmDataSourceAdditionalPropertyValue = <TProperty = any>(\n state: State,\n key: string,\n property: string\n): NgssmDataSourceAdditionalPropertyValue<TProperty> => {\n return (\n selectNgssmDataState(state).dataSourceValues[key]?.additionalProperties[property] ?? {\n status: NgssmDataSourceValueStatus.notRegistered\n }\n );\n};\n","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } from 'ngssm-store';\n\nimport { NgssmDataActionType, NgssmRegisterDataSourcesAction } from '../actions';\nimport { NgssmDataSource, NgssmDataSourceValue, NgssmDataSourceValueStatus } from '../model';\nimport { selectNgssmDataState, updateNgssmDataState } from '../state';\n\n@Injectable()\nexport class DataSourcesRegistrationReducer implements Reducer {\n public readonly processedActions: string[] = [NgssmDataActionType.registerDataSources];\n\n public updateState(state: State, action: Action): State {\n if (action.type === NgssmDataActionType.registerDataSources) {\n const registerDataSourcesAction = action as NgssmRegisterDataSourcesAction;\n const dataSourceValues: { [key: string]: NgssmDataSourceValue } = {};\n const dataSources: { [key: string]: NgssmDataSource } = {};\n registerDataSourcesAction.dataSources.forEach((dataSource) => {\n if (selectNgssmDataState(state).dataSources[dataSource.key]) {\n return;\n }\n\n dataSourceValues[dataSource.key] = {\n status: NgssmDataSourceValueStatus.none,\n additionalProperties: {}\n };\n\n if (dataSource.dataLifetimeInSeconds) {\n dataSourceValues[dataSource.key].dataLifetimeInSeconds = dataSource.dataLifetimeInSeconds;\n }\n\n dataSources[dataSource.key] = dataSource;\n });\n\n return updateNgssmDataState(state, {\n dataSourceValues: { $merge: dataSourceValues },\n dataSources: { $merge: dataSources }\n });\n }\n\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DateTime } from 'luxon';\n\nimport { Reducer, State, Action } from 'ngssm-store';\n\nimport {\n NgssmClearDataSourceValueAction,\n NgssmDataActionType,\n NgssmLoadDataSourceAdditionalPropertyValueAction,\n NgssmLoadDataSourceValueAction,\n NgssmSetDataSourceAdditionalPropertyValueAction,\n NgssmSetDataSourceParameterAction,\n NgssmSetDataSourceValueAction\n} from '../actions';\nimport { selectNgssmDataState, updateNgssmDataState } from '../state';\nimport { NgssmDataSourceValueStatus } from '../model';\n\n@Injectable()\nexport class DataSourceValueReducer implements Reducer {\n public readonly processedActions: string[] = [\n NgssmDataActionType.loadDataSourceValue,\n NgssmDataActionType.setDataSourceValue,\n NgssmDataActionType.clearDataSourceValue,\n NgssmDataActionType.setDataSourceParameter,\n NgssmDataActionType.loadDataSourceAdditionalPropertyValue,\n NgssmDataActionType.setDataSourceAdditionalPropertyValue\n ];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case NgssmDataActionType.loadDataSourceValue: {\n const loadDataSourceValue = action as NgssmLoadDataSourceValueAction;\n const dataSourceValue = selectNgssmDataState(state).dataSourceValues[loadDataSourceValue.key];\n if (!dataSourceValue) {\n break;\n }\n\n let shouldReload = false;\n\n let currentState = state;\n if (loadDataSourceValue.options?.parameter) {\n shouldReload = true;\n currentState = updateNgssmDataState(state, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n parameter: { $set: loadDataSourceValue.options?.parameter.value }\n }\n }\n });\n }\n\n if (dataSourceValue.status === NgssmDataSourceValueStatus.loaded) {\n if (\n loadDataSourceValue.options?.forceReload === true ||\n !dataSourceValue.dataLifetimeInSeconds ||\n !dataSourceValue.lastLoadingDate\n ) {\n shouldReload = true;\n } else {\n const dataLifetime = DateTime.now().diff(dataSourceValue.lastLoadingDate, 'second');\n if ((dataLifetime.toObject().seconds ?? 0) > dataSourceValue.dataLifetimeInSeconds) {\n shouldReload = true;\n }\n }\n } else {\n shouldReload = true;\n }\n\n if (shouldReload) {\n if (loadDataSourceValue.options?.keepAdditionalProperties === true) {\n return updateNgssmDataState(currentState, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n status: { $set: NgssmDataSourceValueStatus.loading }\n }\n }\n });\n }\n\n return updateNgssmDataState(currentState, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n status: { $set: NgssmDataSourceValueStatus.loading },\n additionalProperties: { $set: {} }\n }\n }\n });\n }\n\n break;\n }\n\n case NgssmDataActionType.setDataSourceValue: {\n const ngssmSetDataSourceValueAction = action as NgssmSetDataSourceValueAction;\n const dataSourceValue = selectNgssmDataState(state).dataSourceValues[ngssmSetDataSourceValueAction.key];\n if (!dataSourceValue) {\n break;\n }\n\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmSetDataSourceValueAction.key]: {\n status: { $set: ngssmSetDataSourceValueAction.status },\n value: { $set: ngssmSetDataSourceValueAction.value },\n lastLoadingDate: { $set: DateTime.now() }\n }\n }\n });\n }\n\n case NgssmDataActionType.clearDataSourceValue: {\n const ngssmClearDataSourceValueAction = action as NgssmClearDataSourceValueAction;\n let currentState = state;\n if (ngssmClearDataSourceValueAction.clearParameter) {\n currentState = updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmClearDataSourceValueAction.key]: {\n parameter: { $set: undefined }\n }\n }\n });\n }\n\n return updateNgssmDataState(currentState, {\n dataSourceValues: {\n [ngssmClearDataSourceValueAction.key]: {\n status: { $set: NgssmDataSourceValueStatus.none },\n value: { $set: undefined },\n lastLoadingDate: { $set: undefined },\n additionalProperties: { $set: {} }\n }\n }\n });\n }\n\n case NgssmDataActionType.setDataSourceParameter: {\n const ngssmSetDataSourceParameterAction = action as NgssmSetDataSourceParameterAction;\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmSetDataSourceParameterAction.key]: {\n parameter: { $set: ngssmSetDataSourceParameterAction.parameter }\n }\n }\n });\n }\n\n case NgssmDataActionType.loadDataSourceAdditionalPropertyValue: {\n const ngssmLoadDataSourceAdditionalPropertyValueAction = action as NgssmLoadDataSourceAdditionalPropertyValueAction;\n const dataSourcePropertyValue =\n selectNgssmDataState(state).dataSourceValues[ngssmLoadDataSourceAdditionalPropertyValueAction.key]?.additionalProperties[\n ngssmLoadDataSourceAdditionalPropertyValueAction.property\n ];\n\n if (dataSourcePropertyValue?.status === NgssmDataSourceValueStatus.loaded) {\n break;\n }\n\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {\n additionalProperties: {\n [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {\n $set: {\n status: NgssmDataSourceValueStatus.loading\n }\n }\n }\n }\n }\n });\n }\n\n case NgssmDataActionType.setDataSourceAdditionalPropertyValue: {\n const ngssmSetDataSourceAdditionalPropertyValueAction = action as NgssmSetDataSourceAdditionalPropertyValueAction;\n const dataSourcePropertyValue =\n selectNgssmDataState(state).dataSourceValues[ngssmSetDataSourceAdditionalPropertyValueAction.key]?.additionalProperties[\n ngssmSetDataSourceAdditionalPropertyValueAction.property\n ];\n\n if (!dataSourcePropertyValue) {\n break;\n }\n\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmSetDataSourceAdditionalPropertyValueAction.key]: {\n additionalProperties: {\n [ngssmSetDataSourceAdditionalPropertyValueAction.property]: {\n $set: {\n status: ngssmSetDataSourceAdditionalPropertyValueAction.status,\n value: ngssmSetDataSourceAdditionalPropertyValueAction.value\n }\n }\n }\n }\n }\n });\n }\n }\n\n return state;\n }\n}\n","import { EnvironmentInjector, Injectable, runInInjectionContext } from '@angular/core';\n\nimport { Effect, Store, State, Action, Logger } from 'ngssm-store';\n\nimport {\n NgssmDataActionType,\n NgssmDataSourceValueAction,\n NgssmLoadDataSourceAdditionalPropertyValueAction,\n NgssmSetDataSourceAdditionalPropertyValueAction,\n NgssmSetDataSourceValueAction\n} from '../actions';\nimport { selectNgssmDataState } from '../state';\nimport { NgssmDataSourceValueStatus } from '../model';\n\n@Injectable()\nexport class DataLoadingEffect implements Effect {\n public readonly processedActions: string[] = [\n NgssmDataActionType.loadDataSourceValue,\n NgssmDataActionType.loadDataSourceAdditionalPropertyValue\n ];\n\n constructor(\n private logger: Logger,\n private injector: EnvironmentInjector\n ) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n const key = (action as NgssmDataSourceValueAction).key;\n const dataSource = selectNgssmDataState(state).dataSources[key];\n if (!dataSource) {\n this.logger.error(`No data source setup for key '${key}'`);\n return;\n }\n\n const dataSourceValue = selectNgssmDataState(state).dataSourceValues[key];\n\n switch (action.type) {\n case NgssmDataActionType.loadDataSourceValue: {\n if (dataSourceValue?.status !== NgssmDataSourceValueStatus.loading) {\n this.logger.information(\n `Data source value for '${key}' is not in '${NgssmDataSourceValueStatus.loading}' status: '${dataSourceValue?.status}'`\n );\n return;\n }\n\n runInInjectionContext(this.injector, () => {\n dataSource.dataLoadingFunc(state, dataSourceValue.parameter).subscribe({\n next: (value) => store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.loaded, value)),\n error: (error) => {\n this.logger.error(`Unable to load data for '${key}'`, error);\n store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.error));\n }\n });\n });\n\n break;\n }\n\n case NgssmDataActionType.loadDataSourceAdditionalPropertyValue: {\n const ngssmLoadDataSourceAdditionalPropertyValueAction = action as NgssmLoadDataSourceAdditionalPropertyValueAction;\n const property = ngssmLoadDataSourceAdditionalPropertyValueAction.property;\n if (dataSourceValue.additionalProperties[property]?.status !== NgssmDataSourceValueStatus.loading) {\n this.logger.information(\n `Data source additional property value for '${key}' and property '${property}' is not in '${NgssmDataSourceValueStatus.loading}' status: '${dataSourceValue?.status}'`\n );\n return;\n }\n\n runInInjectionContext(this.injector, () => {\n dataSource.dataLoadingFunc(state, dataSourceValue.parameter, property).subscribe({\n next: (value) =>\n store.dispatchAction(\n new NgssmSetDataSourceAdditionalPropertyValueAction(key, property, NgssmDataSourceValueStatus.loaded, value)\n ),\n error: (error) => {\n this.logger.error(`Unable to load data for '${key}' and property '${property}'`, error);\n store.dispatchAction(new NgssmSetDataSourceAdditionalPropertyValueAction(key, property, NgssmDataSourceValueStatus.error));\n }\n });\n });\n\n break;\n }\n }\n }\n}\n","import { APP_INITIALIZER, EnvironmentProviders, Inject, Injectable, Optional, makeEnvironmentProviders } from '@angular/core';\n\nimport { Store, provideEffects, provideReducers } from 'ngssm-store';\n\nimport { NGSSM_DATA_SOURCE, NgssmDataSource } from './model';\nimport { DataSourceValueReducer, DataSourcesRegistrationReducer } from './reducers';\nimport { DataLoadingEffect } from './effects';\nimport { NgssmRegisterDataSourcesAction } from './actions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmDataSourceCollection {\n constructor(@Inject(NGSSM_DATA_SOURCE) @Optional() public dataSources: NgssmDataSource[]) {}\n}\n\nconst initDataSourceValues = (store: Store, dataSourceCollection: NgssmDataSourceCollection): (() => void) => {\n return () => {\n const dataSources = dataSourceCollection.dataSources ?? [];\n if (dataSources.length > 0) {\n store.dispatchAction(new NgssmRegisterDataSourcesAction(dataSources));\n }\n };\n};\n\nexport const provideNgssmData = (): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: APP_INITIALIZER,\n useFactory: initDataSourceValues,\n deps: [Store, NgssmDataSourceCollection],\n multi: true\n },\n provideReducers(DataSourcesRegistrationReducer, DataSourceValueReducer),\n provideEffects(DataLoadingEffect)\n ]);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { State } from 'ngssm-store';\n\nimport { NgssmDataSourceValueStatus } from '../model';\nimport { selectNgssmDataSourceValue } from '../state';\n\n@Pipe({\n name: 'isNgssmDataSourceValueStatus',\n standalone: true\n})\nexport class IsNgssmDataSourceValueStatusPipe implements PipeTransform {\n public transform(value: State, ...args: string[]): boolean {\n const key = args[0];\n const expectedStatuses = args.slice(1).map((a) => a as NgssmDataSourceValueStatus);\n const itemStatus = selectNgssmDataSourceValue(value, key).status;\n return expectedStatuses.includes(itemStatus);\n }\n}\n","import { Component, ChangeDetectionStrategy, Input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { DateTime } from 'luxon';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nimport { selectNgssmDataState } from '../../state';\nimport { NgssmDataSourceValueStatus } from '../../model';\nimport { NgssmLoadDataSourceValueAction } from '../../actions';\n\n@Component({\n selector: 'ngssm-data-reload-button',\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressSpinnerModule],\n templateUrl: './ngssm-data-reload-button.component.html',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmDataReloadButtonComponent extends NgSsmComponent {\n private readonly toUnsubscribe$ = new Subject<void>();\n private _dataSourceKeys: string[] = [];\n\n public readonly loadInProgress = signal<boolean>(false);\n public readonly buttonDisabled = signal<boolean>(true);\n public readonly tooltipMessage = signal<string>('');\n\n @Input() public keepAdditionalProperties = false;\n\n constructor(store: Store) {\n super(store);\n }\n\n @Input() public set dataSourceKeys(value: string[]) {\n this.toUnsubscribe$.next();\n this._dataSourceKeys = value ?? [];\n this.watch((s) => selectNgssmDataState(s).dataSourceValues)\n .pipe(takeUntil(this.toUnsubscribe$))\n .subscribe((values) => {\n this.loadInProgress.set(this._dataSourceKeys.findIndex((v) => values[v]?.status === NgssmDataSourceValueStatus.loading) !== -1);\n this.buttonDisabled.set(this.loadInProgress() === true || this._dataSourceKeys.findIndex((v) => !!values[v]) === -1);\n let timestamp: DateTime | undefined;\n this._dataSourceKeys.forEach((key) => {\n const keyTimestamp = values[key]?.lastLoadingDate;\n if (keyTimestamp) {\n if (!timestamp || timestamp > keyTimestamp) {\n timestamp = keyTimestamp;\n }\n }\n });\n\n let tooltiMessage = 'Reload data.';\n if (timestamp) {\n tooltiMessage = [tooltiMessage, `Loaded at ${timestamp.toHTTP()}`].join('\\n');\n }\n this.tooltipMessage.set(tooltiMessage);\n });\n }\n\n public reload(): void {\n this._dataSourceKeys.forEach((key) =>\n this.dispatchAction(\n new NgssmLoadDataSourceValueAction(key, { forceReload: true, keepAdditionalProperties: this.keepAdditionalProperties })\n )\n );\n }\n}\n","<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>","/*\n * Public API Surface of ngssm-data\n */\n\nexport * from './lib/ngssm-data/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-data.mjs","sources":["../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-data-action-type.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-load-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-register-data-sources.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-clear-data-source-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-parameter.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-load-data-source-additional-property-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-additional-property-value.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/model/ngssm-data-source.ts","../../../projects/ngssm-data/src/lib/ngssm-data/model/ngssm-data-source-value.ts","../../../projects/ngssm-data/src/lib/ngssm-data/state/ngssm-data.state.ts","../../../projects/ngssm-data/src/lib/ngssm-data/state/selectors.ts","../../../projects/ngssm-data/src/lib/ngssm-data/reducers/data-sources-registration.reducer.ts","../../../projects/ngssm-data/src/lib/ngssm-data/reducers/data-source-value.reducer.ts","../../../projects/ngssm-data/src/lib/ngssm-data/effects/data-loading.effect.ts","../../../projects/ngssm-data/src/lib/ngssm-data/provide-ngssm-data.ts","../../../projects/ngssm-data/src/lib/ngssm-data/components/is-ngssm-data-source-value-status.pipe.ts","../../../projects/ngssm-data/src/lib/ngssm-data/components/ngssm-data-reload-button/ngssm-data-reload-button.component.ts","../../../projects/ngssm-data/src/lib/ngssm-data/components/ngssm-data-reload-button/ngssm-data-reload-button.component.html","../../../projects/ngssm-data/src/public-api.ts","../../../projects/ngssm-data/src/ngssm-data.ts"],"sourcesContent":["export enum NgssmDataActionType {\n registerDataSources = '[NgssmDataActionType] registerDataSources',\n loadDataSourceValue = '[NgssmDataActionType] loadDataSourceValue',\n setDataSourceParameter = '[NgssmDataActionType] setDataSourceParameter',\n clearDataSourceValue = '[NgssmDataActionType] clearDataSourceValue',\n setDataSourceValue = '[NgssmDataActionType] setDataSourceValue',\n loadDataSourceAdditionalPropertyValue = '[NgssmDataActionType] loadDataSourceAdditionalPropertyValue',\n setDataSourceAdditionalPropertyValue = '[NgssmDataActionType] setDataSourceAdditionalPropertyValue'\n}\n","import { Action } from 'ngssm-store';\n\nexport class NgssmDataSourceValueAction implements Action {\n constructor(\n public readonly type: string,\n public readonly key: string\n ) {}\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmLoadDataSourceOptions } from '../model';\n\nexport class NgssmLoadDataSourceValueAction<TParameter = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly options?: NgssmLoadDataSourceOptions<TParameter>\n ) {\n super(NgssmDataActionType.loadDataSourceValue, key);\n }\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSourceValueStatus } from '../model';\n\nexport class NgssmSetDataSourceValueAction<TData = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly status: NgssmDataSourceValueStatus,\n public readonly value?: TData\n ) {\n super(NgssmDataActionType.setDataSourceValue, key);\n }\n}\n","import { Action } from 'ngssm-store';\n\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSource } from '../model';\n\nexport class NgssmRegisterDataSourcesAction implements Action {\n public readonly type: string = NgssmDataActionType.registerDataSources;\n\n constructor(public readonly dataSources: NgssmDataSource[]) {}\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\n\nexport class NgssmClearDataSourceValueAction extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly clearParameter: boolean = false\n ) {\n super(NgssmDataActionType.clearDataSourceValue, key);\n }\n}\n","import { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\n\nexport class NgssmSetDataSourceParameterAction<TParameter = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly parameter?: TParameter\n ) {\n super(NgssmDataActionType.setDataSourceParameter, key);\n }\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\n\nexport class NgssmLoadDataSourceAdditionalPropertyValueAction extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly property: string,\n public readonly forceReload?: boolean\n ) {\n super(NgssmDataActionType.loadDataSourceAdditionalPropertyValue, key);\n }\n}\n","import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';\nimport { NgssmDataSourceValueStatus } from '../model';\nimport { NgssmDataActionType } from './ngssm-data-action-type';\n\nexport class NgssmSetDataSourceAdditionalPropertyValueAction<TProperty = any> extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly property: string,\n public readonly status: NgssmDataSourceValueStatus,\n public readonly value?: TProperty\n ) {\n super(NgssmDataActionType.setDataSourceAdditionalPropertyValue, key);\n }\n}\n","import { EnvironmentProviders, InjectionToken, inject, makeEnvironmentProviders } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { State, Store } from 'ngssm-store';\nimport { NgssmLoadDataSourceValueAction } from '../actions';\n\nexport interface NgssmDataLoading<TData = any, TParameter = any> {\n (state: State, parameter?: TParameter, additionalProperty?: string): Observable<TData>;\n}\n\nexport interface NgssmDataSource<TData = any, TParameter = any> {\n key: string;\n dataLifetimeInSeconds?: number;\n dataLoadingFunc: NgssmDataLoading<TData, TParameter>;\n}\n\nexport const NGSSM_DATA_SOURCE = new InjectionToken<NgssmDataSource>('NGSSM_DATA_SOURCE');\n\nexport const provideNgssmDataSource = <TData = any, TParameter = any>(\n key: string,\n loadingFunc: NgssmDataLoading<TData, TParameter>,\n dataLifetimeInSeconds?: number\n): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: NGSSM_DATA_SOURCE,\n useFactory: () => {\n const dataSource: NgssmDataSource<TData, TParameter> = {\n key,\n dataLifetimeInSeconds,\n dataLoadingFunc: loadingFunc\n };\n return dataSource;\n },\n multi: true\n }\n ]);\n};\n\nexport const ngssmLoadDataSourceValue = (key: string, forceReload: boolean = false): (() => boolean) => {\n return () => {\n inject(Store).dispatchAction(new NgssmLoadDataSourceValueAction(key, { forceReload }));\n return true;\n };\n};\n","import { DateTime } from 'luxon';\n\nexport enum NgssmDataSourceValueStatus {\n none = 'none',\n notRegistered = 'notRegistered',\n loading = 'loading',\n loaded = 'loaded',\n error = 'error'\n}\n\nexport interface NgssmDataSourceAdditionalPropertyValue<TProperty = any> {\n status: NgssmDataSourceValueStatus;\n value?: TProperty;\n lastLoadingDate?: DateTime;\n}\n\nexport interface NgssmDataSourceValue<TData = any, TParameter = any> {\n status: NgssmDataSourceValueStatus;\n value?: TData;\n parameter?: TParameter;\n lastLoadingDate?: DateTime;\n dataLifetimeInSeconds?: number;\n additionalProperties: { [key: string]: NgssmDataSourceAdditionalPropertyValue };\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\nimport { NgssmDataSource, NgssmDataSourceValue } from '../model';\n\nexport const selectNgssmDataState = (state: State): NgssmDataState => state[NgssmDataStateSpecification.featureStateKey] as NgssmDataState;\n\nexport const updateNgssmDataState = (state: State, command: Spec<NgssmDataState, never>): State =>\n update(state, {\n [NgssmDataStateSpecification.featureStateKey]: command\n });\n\nexport interface NgssmDataState {\n dataSourceValues: { [key: string]: NgssmDataSourceValue };\n dataSources: { [key: string]: NgssmDataSource };\n}\n\n@NgSsmFeatureState({\n featureStateKey: NgssmDataStateSpecification.featureStateKey,\n initialState: NgssmDataStateSpecification.initialState\n})\nexport class NgssmDataStateSpecification {\n public static readonly featureStateKey = 'ngssm-data-state';\n public static readonly initialState: NgssmDataState = {\n dataSourceValues: {},\n dataSources: {}\n };\n}\n","import { State } from 'ngssm-store';\nimport { NgssmDataSourceAdditionalPropertyValue, NgssmDataSourceValue, NgssmDataSourceValueStatus } from '../model';\nimport { selectNgssmDataState } from './ngssm-data.state';\n\nexport const selectNgssmDataSourceValue = <TDataType = any, TParameter = any>(\n state: State,\n key: string\n): NgssmDataSourceValue<TDataType, TParameter> => {\n return (\n selectNgssmDataState(state).dataSourceValues[key] ?? {\n status: NgssmDataSourceValueStatus.notRegistered\n }\n );\n};\n\nexport const selectNgssmDataSourceAdditionalPropertyValue = <TProperty = any>(\n state: State,\n key: string,\n property: string\n): NgssmDataSourceAdditionalPropertyValue<TProperty> => {\n return (\n selectNgssmDataState(state).dataSourceValues[key]?.additionalProperties[property] ?? {\n status: NgssmDataSourceValueStatus.notRegistered\n }\n );\n};\n","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } from 'ngssm-store';\n\nimport { NgssmDataActionType, NgssmRegisterDataSourcesAction } from '../actions';\nimport { NgssmDataSource, NgssmDataSourceValue, NgssmDataSourceValueStatus } from '../model';\nimport { selectNgssmDataState, updateNgssmDataState } from '../state';\n\n@Injectable()\nexport class DataSourcesRegistrationReducer implements Reducer {\n public readonly processedActions: string[] = [NgssmDataActionType.registerDataSources];\n\n public updateState(state: State, action: Action): State {\n if (action.type === NgssmDataActionType.registerDataSources) {\n const registerDataSourcesAction = action as NgssmRegisterDataSourcesAction;\n const dataSourceValues: { [key: string]: NgssmDataSourceValue } = {};\n const dataSources: { [key: string]: NgssmDataSource } = {};\n registerDataSourcesAction.dataSources.forEach((dataSource) => {\n if (selectNgssmDataState(state).dataSources[dataSource.key]) {\n return;\n }\n\n dataSourceValues[dataSource.key] = {\n status: NgssmDataSourceValueStatus.none,\n additionalProperties: {}\n };\n\n if (dataSource.dataLifetimeInSeconds) {\n dataSourceValues[dataSource.key].dataLifetimeInSeconds = dataSource.dataLifetimeInSeconds;\n }\n\n dataSources[dataSource.key] = dataSource;\n });\n\n return updateNgssmDataState(state, {\n dataSourceValues: { $merge: dataSourceValues },\n dataSources: { $merge: dataSources }\n });\n }\n\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DateTime } from 'luxon';\n\nimport { Reducer, State, Action } from 'ngssm-store';\n\nimport {\n NgssmClearDataSourceValueAction,\n NgssmDataActionType,\n NgssmLoadDataSourceAdditionalPropertyValueAction,\n NgssmLoadDataSourceValueAction,\n NgssmSetDataSourceAdditionalPropertyValueAction,\n NgssmSetDataSourceParameterAction,\n NgssmSetDataSourceValueAction\n} from '../actions';\nimport { selectNgssmDataState, updateNgssmDataState } from '../state';\nimport { NgssmDataSourceValueStatus } from '../model';\n\n@Injectable()\nexport class DataSourceValueReducer implements Reducer {\n public readonly processedActions: string[] = [\n NgssmDataActionType.loadDataSourceValue,\n NgssmDataActionType.setDataSourceValue,\n NgssmDataActionType.clearDataSourceValue,\n NgssmDataActionType.setDataSourceParameter,\n NgssmDataActionType.loadDataSourceAdditionalPropertyValue,\n NgssmDataActionType.setDataSourceAdditionalPropertyValue\n ];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case NgssmDataActionType.loadDataSourceValue: {\n const loadDataSourceValue = action as NgssmLoadDataSourceValueAction;\n const dataSourceValue = selectNgssmDataState(state).dataSourceValues[loadDataSourceValue.key];\n if (!dataSourceValue) {\n break;\n }\n\n let shouldReload = false;\n\n let currentState = state;\n if (loadDataSourceValue.options?.parameter) {\n shouldReload = true;\n currentState = updateNgssmDataState(state, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n parameter: { $set: loadDataSourceValue.options?.parameter.value }\n }\n }\n });\n }\n\n if (dataSourceValue.status === NgssmDataSourceValueStatus.loaded) {\n if (\n loadDataSourceValue.options?.forceReload === true ||\n !dataSourceValue.dataLifetimeInSeconds ||\n !dataSourceValue.lastLoadingDate\n ) {\n shouldReload = true;\n } else {\n const dataLifetime = DateTime.now().diff(dataSourceValue.lastLoadingDate, 'second');\n if ((dataLifetime.toObject().seconds ?? 0) > dataSourceValue.dataLifetimeInSeconds) {\n shouldReload = true;\n }\n }\n } else {\n shouldReload = true;\n }\n\n if (shouldReload) {\n if (loadDataSourceValue.options?.keepAdditionalProperties === true) {\n return updateNgssmDataState(currentState, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n status: { $set: NgssmDataSourceValueStatus.loading }\n }\n }\n });\n }\n\n return updateNgssmDataState(currentState, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n status: { $set: NgssmDataSourceValueStatus.loading },\n additionalProperties: { $set: {} }\n }\n }\n });\n }\n\n break;\n }\n\n case NgssmDataActionType.setDataSourceValue: {\n const ngssmSetDataSourceValueAction = action as NgssmSetDataSourceValueAction;\n const dataSourceValue = selectNgssmDataState(state).dataSourceValues[ngssmSetDataSourceValueAction.key];\n if (!dataSourceValue) {\n break;\n }\n\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmSetDataSourceValueAction.key]: {\n status: { $set: ngssmSetDataSourceValueAction.status },\n value: { $set: ngssmSetDataSourceValueAction.value },\n lastLoadingDate: { $set: DateTime.now() }\n }\n }\n });\n }\n\n case NgssmDataActionType.clearDataSourceValue: {\n const ngssmClearDataSourceValueAction = action as NgssmClearDataSourceValueAction;\n let currentState = state;\n if (ngssmClearDataSourceValueAction.clearParameter) {\n currentState = updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmClearDataSourceValueAction.key]: {\n parameter: { $set: undefined }\n }\n }\n });\n }\n\n return updateNgssmDataState(currentState, {\n dataSourceValues: {\n [ngssmClearDataSourceValueAction.key]: {\n status: { $set: NgssmDataSourceValueStatus.none },\n value: { $set: undefined },\n lastLoadingDate: { $set: undefined },\n additionalProperties: { $set: {} }\n }\n }\n });\n }\n\n case NgssmDataActionType.setDataSourceParameter: {\n const ngssmSetDataSourceParameterAction = action as NgssmSetDataSourceParameterAction;\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmSetDataSourceParameterAction.key]: {\n parameter: { $set: ngssmSetDataSourceParameterAction.parameter }\n }\n }\n });\n }\n\n case NgssmDataActionType.loadDataSourceAdditionalPropertyValue: {\n const ngssmLoadDataSourceAdditionalPropertyValueAction = action as NgssmLoadDataSourceAdditionalPropertyValueAction;\n const dataSourcePropertyValue =\n selectNgssmDataState(state).dataSourceValues[ngssmLoadDataSourceAdditionalPropertyValueAction.key]?.additionalProperties[\n ngssmLoadDataSourceAdditionalPropertyValueAction.property\n ];\n\n if (\n dataSourcePropertyValue?.status === NgssmDataSourceValueStatus.loaded &&\n ngssmLoadDataSourceAdditionalPropertyValueAction.forceReload !== true\n ) {\n break;\n }\n\n if (!dataSourcePropertyValue) {\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {\n additionalProperties: {\n [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {\n $set: {\n status: NgssmDataSourceValueStatus.loading\n }\n }\n }\n }\n }\n });\n }\n\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmLoadDataSourceAdditionalPropertyValueAction.key]: {\n additionalProperties: {\n [ngssmLoadDataSourceAdditionalPropertyValueAction.property]: {\n status: { $set: NgssmDataSourceValueStatus.loading }\n }\n }\n }\n }\n });\n }\n\n case NgssmDataActionType.setDataSourceAdditionalPropertyValue: {\n const ngssmSetDataSourceAdditionalPropertyValueAction = action as NgssmSetDataSourceAdditionalPropertyValueAction;\n const dataSourcePropertyValue =\n selectNgssmDataState(state).dataSourceValues[ngssmSetDataSourceAdditionalPropertyValueAction.key]?.additionalProperties[\n ngssmSetDataSourceAdditionalPropertyValueAction.property\n ];\n\n if (!dataSourcePropertyValue) {\n break;\n }\n\n return updateNgssmDataState(state, {\n dataSourceValues: {\n [ngssmSetDataSourceAdditionalPropertyValueAction.key]: {\n additionalProperties: {\n [ngssmSetDataSourceAdditionalPropertyValueAction.property]: {\n $set: {\n status: ngssmSetDataSourceAdditionalPropertyValueAction.status,\n value: ngssmSetDataSourceAdditionalPropertyValueAction.value\n }\n }\n }\n }\n }\n });\n }\n }\n\n return state;\n }\n}\n","import { EnvironmentInjector, Injectable, runInInjectionContext } from '@angular/core';\n\nimport { Effect, Store, State, Action, Logger } from 'ngssm-store';\n\nimport {\n NgssmDataActionType,\n NgssmDataSourceValueAction,\n NgssmLoadDataSourceAdditionalPropertyValueAction,\n NgssmSetDataSourceAdditionalPropertyValueAction,\n NgssmSetDataSourceValueAction\n} from '../actions';\nimport { selectNgssmDataState } from '../state';\nimport { NgssmDataSourceValueStatus } from '../model';\n\n@Injectable()\nexport class DataLoadingEffect implements Effect {\n public readonly processedActions: string[] = [\n NgssmDataActionType.loadDataSourceValue,\n NgssmDataActionType.loadDataSourceAdditionalPropertyValue\n ];\n\n constructor(\n private logger: Logger,\n private injector: EnvironmentInjector\n ) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n const key = (action as NgssmDataSourceValueAction).key;\n const dataSource = selectNgssmDataState(state).dataSources[key];\n if (!dataSource) {\n this.logger.error(`No data source setup for key '${key}'`);\n return;\n }\n\n const dataSourceValue = selectNgssmDataState(state).dataSourceValues[key];\n\n switch (action.type) {\n case NgssmDataActionType.loadDataSourceValue: {\n if (dataSourceValue?.status !== NgssmDataSourceValueStatus.loading) {\n this.logger.information(\n `Data source value for '${key}' is not in '${NgssmDataSourceValueStatus.loading}' status: '${dataSourceValue?.status}'`\n );\n return;\n }\n\n runInInjectionContext(this.injector, () => {\n dataSource.dataLoadingFunc(state, dataSourceValue.parameter).subscribe({\n next: (value) => store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.loaded, value)),\n error: (error) => {\n this.logger.error(`Unable to load data for '${key}'`, error);\n store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.error));\n }\n });\n });\n\n break;\n }\n\n case NgssmDataActionType.loadDataSourceAdditionalPropertyValue: {\n const ngssmLoadDataSourceAdditionalPropertyValueAction = action as NgssmLoadDataSourceAdditionalPropertyValueAction;\n const property = ngssmLoadDataSourceAdditionalPropertyValueAction.property;\n if (dataSourceValue.additionalProperties[property]?.status !== NgssmDataSourceValueStatus.loading) {\n this.logger.information(\n `Data source additional property value for '${key}' and property '${property}' is not in '${NgssmDataSourceValueStatus.loading}' status: '${dataSourceValue?.status}'`\n );\n return;\n }\n\n runInInjectionContext(this.injector, () => {\n dataSource.dataLoadingFunc(state, dataSourceValue.parameter, property).subscribe({\n next: (value) =>\n store.dispatchAction(\n new NgssmSetDataSourceAdditionalPropertyValueAction(key, property, NgssmDataSourceValueStatus.loaded, value)\n ),\n error: (error) => {\n this.logger.error(`Unable to load data for '${key}' and property '${property}'`, error);\n store.dispatchAction(new NgssmSetDataSourceAdditionalPropertyValueAction(key, property, NgssmDataSourceValueStatus.error));\n }\n });\n });\n\n break;\n }\n }\n }\n}\n","import { APP_INITIALIZER, EnvironmentProviders, Inject, Injectable, Optional, makeEnvironmentProviders } from '@angular/core';\n\nimport { Store, provideEffects, provideReducers } from 'ngssm-store';\n\nimport { NGSSM_DATA_SOURCE, NgssmDataSource } from './model';\nimport { DataSourceValueReducer, DataSourcesRegistrationReducer } from './reducers';\nimport { DataLoadingEffect } from './effects';\nimport { NgssmRegisterDataSourcesAction } from './actions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmDataSourceCollection {\n constructor(@Inject(NGSSM_DATA_SOURCE) @Optional() public dataSources: NgssmDataSource[]) {}\n}\n\nconst initDataSourceValues = (store: Store, dataSourceCollection: NgssmDataSourceCollection): (() => void) => {\n return () => {\n const dataSources = dataSourceCollection.dataSources ?? [];\n if (dataSources.length > 0) {\n store.dispatchAction(new NgssmRegisterDataSourcesAction(dataSources));\n }\n };\n};\n\nexport const provideNgssmData = (): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: APP_INITIALIZER,\n useFactory: initDataSourceValues,\n deps: [Store, NgssmDataSourceCollection],\n multi: true\n },\n provideReducers(DataSourcesRegistrationReducer, DataSourceValueReducer),\n provideEffects(DataLoadingEffect)\n ]);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { State } from 'ngssm-store';\n\nimport { NgssmDataSourceValueStatus } from '../model';\nimport { selectNgssmDataSourceValue } from '../state';\n\n@Pipe({\n name: 'isNgssmDataSourceValueStatus',\n standalone: true\n})\nexport class IsNgssmDataSourceValueStatusPipe implements PipeTransform {\n public transform(value: State, ...args: string[]): boolean {\n const key = args[0];\n const expectedStatuses = args.slice(1).map((a) => a as NgssmDataSourceValueStatus);\n const itemStatus = selectNgssmDataSourceValue(value, key).status;\n return expectedStatuses.includes(itemStatus);\n }\n}\n","import { Component, ChangeDetectionStrategy, Input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { DateTime } from 'luxon';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nimport { selectNgssmDataState } from '../../state';\nimport { NgssmDataSourceValueStatus } from '../../model';\nimport { NgssmLoadDataSourceValueAction } from '../../actions';\n\n@Component({\n selector: 'ngssm-data-reload-button',\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressSpinnerModule],\n templateUrl: './ngssm-data-reload-button.component.html',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmDataReloadButtonComponent extends NgSsmComponent {\n private readonly toUnsubscribe$ = new Subject<void>();\n private _dataSourceKeys: string[] = [];\n\n public readonly loadInProgress = signal<boolean>(false);\n public readonly buttonDisabled = signal<boolean>(true);\n public readonly tooltipMessage = signal<string>('');\n\n @Input() public keepAdditionalProperties = false;\n\n constructor(store: Store) {\n super(store);\n }\n\n @Input() public set dataSourceKeys(value: string[]) {\n this.toUnsubscribe$.next();\n this._dataSourceKeys = value ?? [];\n this.watch((s) => selectNgssmDataState(s).dataSourceValues)\n .pipe(takeUntil(this.toUnsubscribe$))\n .subscribe((values) => {\n this.loadInProgress.set(this._dataSourceKeys.findIndex((v) => values[v]?.status === NgssmDataSourceValueStatus.loading) !== -1);\n this.buttonDisabled.set(this.loadInProgress() === true || this._dataSourceKeys.findIndex((v) => !!values[v]) === -1);\n let timestamp: DateTime | undefined;\n this._dataSourceKeys.forEach((key) => {\n const keyTimestamp = values[key]?.lastLoadingDate;\n if (keyTimestamp) {\n if (!timestamp || timestamp > keyTimestamp) {\n timestamp = keyTimestamp;\n }\n }\n });\n\n let tooltiMessage = 'Reload data.';\n if (timestamp) {\n tooltiMessage = [tooltiMessage, `Loaded at ${timestamp.toHTTP()}`].join('\\n');\n }\n this.tooltipMessage.set(tooltiMessage);\n });\n }\n\n public reload(): void {\n this._dataSourceKeys.forEach((key) =>\n this.dispatchAction(\n new NgssmLoadDataSourceValueAction(key, { forceReload: true, keepAdditionalProperties: this.keepAdditionalProperties })\n )\n );\n }\n}\n","<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"tooltipMessage()\"\n [disabled]=\"buttonDisabled() === true\" id=\"reloadButton\">\n\n @if (loadInProgress()) {\n <mat-spinner [diameter]=\"24\" id=\"loadingSpinner\"></mat-spinner>\n } @else {\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n }\n\n</button>","/*\n * Public API Surface of ngssm-data\n */\n\nexport * from './lib/ngssm-data/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-data",
3
- "version": "17.3.1",
3
+ "version": "17.4.0",
4
4
  "description": "NgSsm - Library used to facilitate the management of data get from remote service or computed locally.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",