ngssm-data 17.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +3 -0
  2. package/esm2022/lib/ngssm-data/actions/index.mjs +6 -0
  3. package/esm2022/lib/ngssm-data/actions/ngssm-data-action-type.mjs +9 -0
  4. package/esm2022/lib/ngssm-data/actions/ngssm-data-source-value.action.mjs +7 -0
  5. package/esm2022/lib/ngssm-data/actions/ngssm-init-data-source-values.action.mjs +8 -0
  6. package/esm2022/lib/ngssm-data/actions/ngssm-load-data-source-value.action.mjs +9 -0
  7. package/esm2022/lib/ngssm-data/actions/ngssm-set-data-source-value.action.mjs +10 -0
  8. package/esm2022/lib/ngssm-data/components/index.mjs +2 -0
  9. package/esm2022/lib/ngssm-data/components/is-ngssm-data-source-value-status.pipe.mjs +20 -0
  10. package/esm2022/lib/ngssm-data/effects/data-loading.effect.mjs +43 -0
  11. package/esm2022/lib/ngssm-data/effects/index.mjs +2 -0
  12. package/esm2022/lib/ngssm-data/model/index.mjs +3 -0
  13. package/esm2022/lib/ngssm-data/model/ngssm-data-source-value.mjs +9 -0
  14. package/esm2022/lib/ngssm-data/model/ngssm-data-source.mjs +27 -0
  15. package/esm2022/lib/ngssm-data/provide-ngssm-data.mjs +46 -0
  16. package/esm2022/lib/ngssm-data/public-api.mjs +6 -0
  17. package/esm2022/lib/ngssm-data/reducers/data-source-value.reducer.mjs +70 -0
  18. package/esm2022/lib/ngssm-data/reducers/data-sources-initialization.reducer.mjs +37 -0
  19. package/esm2022/lib/ngssm-data/reducers/index.mjs +3 -0
  20. package/esm2022/lib/ngssm-data/state/index.mjs +3 -0
  21. package/esm2022/lib/ngssm-data/state/ngssm-data.state.mjs +22 -0
  22. package/esm2022/lib/ngssm-data/state/selectors.mjs +8 -0
  23. package/esm2022/ngssm-data.mjs +5 -0
  24. package/esm2022/public-api.mjs +5 -0
  25. package/fesm2022/ngssm-data.mjs +302 -0
  26. package/fesm2022/ngssm-data.mjs.map +1 -0
  27. package/index.d.ts +5 -0
  28. package/lib/ngssm-data/actions/index.d.ts +5 -0
  29. package/lib/ngssm-data/actions/ngssm-data-action-type.d.ts +7 -0
  30. package/lib/ngssm-data/actions/ngssm-data-source-value.action.d.ts +6 -0
  31. package/lib/ngssm-data/actions/ngssm-init-data-source-values.action.d.ts +7 -0
  32. package/lib/ngssm-data/actions/ngssm-load-data-source-value.action.d.ts +5 -0
  33. package/lib/ngssm-data/actions/ngssm-set-data-source-value.action.d.ts +7 -0
  34. package/lib/ngssm-data/components/index.d.ts +1 -0
  35. package/lib/ngssm-data/components/is-ngssm-data-source-value-status.pipe.d.ts +8 -0
  36. package/lib/ngssm-data/effects/data-loading.effect.d.ts +12 -0
  37. package/lib/ngssm-data/effects/index.d.ts +1 -0
  38. package/lib/ngssm-data/model/index.d.ts +2 -0
  39. package/lib/ngssm-data/model/ngssm-data-source-value.d.ts +15 -0
  40. package/lib/ngssm-data/model/ngssm-data-source.d.ts +14 -0
  41. package/lib/ngssm-data/provide-ngssm-data.d.ts +10 -0
  42. package/lib/ngssm-data/public-api.d.ts +5 -0
  43. package/lib/ngssm-data/reducers/data-source-value.reducer.d.ts +8 -0
  44. package/lib/ngssm-data/reducers/data-sources-initialization.reducer.d.ts +8 -0
  45. package/lib/ngssm-data/reducers/index.d.ts +2 -0
  46. package/lib/ngssm-data/state/index.d.ts +2 -0
  47. package/lib/ngssm-data/state/ngssm-data.state.d.ts +17 -0
  48. package/lib/ngssm-data/state/selectors.d.ts +3 -0
  49. package/package.json +34 -0
  50. package/public-api.d.ts +1 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # ngssm-data
2
+
3
+ Library used to facilitate the management of data get from remote service or computed locally.
@@ -0,0 +1,6 @@
1
+ export * from './ngssm-data-action-type';
2
+ export * from './ngssm-data-source-value.action';
3
+ export * from './ngssm-load-data-source-value.action';
4
+ export * from './ngssm-init-data-source-values.action';
5
+ export * from './ngssm-set-data-source-value.action';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmdzc20tZGF0YS1hY3Rpb24tdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWRhdGEtc291cmNlLXZhbHVlLmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWxvYWQtZGF0YS1zb3VyY2UtdmFsdWUuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20taW5pdC1kYXRhLXNvdXJjZS12YWx1ZXMuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tc2V0LWRhdGEtc291cmNlLXZhbHVlLmFjdGlvbic7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export var NgssmDataActionType;
2
+ (function (NgssmDataActionType) {
3
+ NgssmDataActionType["initDataSourceValues"] = "[NgssmDataActionType] initDataSourceValues";
4
+ NgssmDataActionType["loadDataSourceValue"] = "[NgssmDataActionType] loadDataSourceValue";
5
+ NgssmDataActionType["setDataSourceParameter"] = "[NgssmDataActionType] setDataSourceParameter";
6
+ NgssmDataActionType["clearDataSourceValue"] = "[NgssmDataActionType] clearDataSourceValue";
7
+ NgssmDataActionType["setDataSourceValue"] = "[NgssmDataActionType] setDataSourceValue";
8
+ })(NgssmDataActionType || (NgssmDataActionType = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZGF0YS1hY3Rpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL2FjdGlvbnMvbmdzc20tZGF0YS1hY3Rpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxtQkFNWDtBQU5ELFdBQVksbUJBQW1CO0lBQzdCLDBGQUFtRSxDQUFBO0lBQ25FLHdGQUFpRSxDQUFBO0lBQ2pFLDhGQUF1RSxDQUFBO0lBQ3ZFLDBGQUFtRSxDQUFBO0lBQ25FLHNGQUErRCxDQUFBO0FBQ2pFLENBQUMsRUFOVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBTTlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTmdzc21EYXRhQWN0aW9uVHlwZSB7XG4gIGluaXREYXRhU291cmNlVmFsdWVzID0gJ1tOZ3NzbURhdGFBY3Rpb25UeXBlXSBpbml0RGF0YVNvdXJjZVZhbHVlcycsXG4gIGxvYWREYXRhU291cmNlVmFsdWUgPSAnW05nc3NtRGF0YUFjdGlvblR5cGVdIGxvYWREYXRhU291cmNlVmFsdWUnLFxuICBzZXREYXRhU291cmNlUGFyYW1ldGVyID0gJ1tOZ3NzbURhdGFBY3Rpb25UeXBlXSBzZXREYXRhU291cmNlUGFyYW1ldGVyJyxcbiAgY2xlYXJEYXRhU291cmNlVmFsdWUgPSAnW05nc3NtRGF0YUFjdGlvblR5cGVdIGNsZWFyRGF0YVNvdXJjZVZhbHVlJyxcbiAgc2V0RGF0YVNvdXJjZVZhbHVlID0gJ1tOZ3NzbURhdGFBY3Rpb25UeXBlXSBzZXREYXRhU291cmNlVmFsdWUnXG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class NgssmDataSourceValueAction {
2
+ constructor(type, key) {
3
+ this.type = type;
4
+ this.key = key;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZGF0YS1zb3VyY2UtdmFsdWUuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tZGF0YS9zcmMvbGliL25nc3NtLWRhdGEvYWN0aW9ucy9uZ3NzbS1kYXRhLXNvdXJjZS12YWx1ZS5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUNrQixJQUFZLEVBQ1osR0FBVztRQURYLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQzFCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuZXhwb3J0IGNsYXNzIE5nc3NtRGF0YVNvdXJjZVZhbHVlQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkga2V5OiBzdHJpbmdcbiAgKSB7fVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { NgssmDataActionType } from './ngssm-data-action-type';
2
+ export class NgssmInitDataSourceValuesAction {
3
+ constructor(dataSources) {
4
+ this.dataSources = dataSources;
5
+ this.type = NgssmDataActionType.initDataSourceValues;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20taW5pdC1kYXRhLXNvdXJjZS12YWx1ZXMuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tZGF0YS9zcmMvbGliL25nc3NtLWRhdGEvYWN0aW9ucy9uZ3NzbS1pbml0LWRhdGEtc291cmNlLXZhbHVlcy5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHL0QsTUFBTSxPQUFPLCtCQUErQjtJQUcxQyxZQUE0QixXQUE4QjtRQUE5QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFGMUMsU0FBSSxHQUFXLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDO0lBRVgsQ0FBQztDQUMvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21EYXRhQWN0aW9uVHlwZSB9IGZyb20gJy4vbmdzc20tZGF0YS1hY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBOZ3NzbURhdGFTb3VyY2UgfSBmcm9tICcuLi9tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBOZ3NzbUluaXREYXRhU291cmNlVmFsdWVzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IE5nc3NtRGF0YUFjdGlvblR5cGUuaW5pdERhdGFTb3VyY2VWYWx1ZXM7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VzOiBOZ3NzbURhdGFTb3VyY2VbXSkge31cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';
2
+ import { NgssmDataActionType } from './ngssm-data-action-type';
3
+ export class NgssmLoadDataSourceValueAction extends NgssmDataSourceValueAction {
4
+ constructor(key, forceReload) {
5
+ super(NgssmDataActionType.loadDataSourceValue, key);
6
+ this.forceReload = forceReload;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tbG9hZC1kYXRhLXNvdXJjZS12YWx1ZS5hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9hY3Rpb25zL25nc3NtLWxvYWQtZGF0YS1zb3VyY2UtdmFsdWUuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwwQkFBMEI7SUFDNUUsWUFDRSxHQUFXLEVBQ0ssV0FBcUI7UUFFckMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRnBDLGdCQUFXLEdBQVgsV0FBVyxDQUFVO0lBR3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nc3NtRGF0YVNvdXJjZVZhbHVlQWN0aW9uIH0gZnJvbSAnLi9uZ3NzbS1kYXRhLXNvdXJjZS12YWx1ZS5hY3Rpb24nO1xuaW1wb3J0IHsgTmdzc21EYXRhQWN0aW9uVHlwZSB9IGZyb20gJy4vbmdzc20tZGF0YS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBOZ3NzbUxvYWREYXRhU291cmNlVmFsdWVBY3Rpb24gZXh0ZW5kcyBOZ3NzbURhdGFTb3VyY2VWYWx1ZUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGtleTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBmb3JjZVJlbG9hZD86IGJvb2xlYW5cbiAgKSB7XG4gICAgc3VwZXIoTmdzc21EYXRhQWN0aW9uVHlwZS5sb2FkRGF0YVNvdXJjZVZhbHVlLCBrZXkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';
2
+ import { NgssmDataActionType } from './ngssm-data-action-type';
3
+ export class NgssmSetDataSourceValueAction extends NgssmDataSourceValueAction {
4
+ constructor(key, status, value) {
5
+ super(NgssmDataActionType.setDataSourceValue, key);
6
+ this.status = status;
7
+ this.value = value;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tc2V0LWRhdGEtc291cmNlLXZhbHVlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL2FjdGlvbnMvbmdzc20tc2V0LWRhdGEtc291cmNlLXZhbHVlLmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcvRCxNQUFNLE9BQU8sNkJBQTJDLFNBQVEsMEJBQTBCO0lBQ3hGLFlBQ0UsR0FBVyxFQUNLLE1BQWtDLEVBQ2xDLEtBQWE7UUFFN0IsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSG5DLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQVE7SUFHL0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdzc21EYXRhU291cmNlVmFsdWVBY3Rpb24gfSBmcm9tICcuL25nc3NtLWRhdGEtc291cmNlLXZhbHVlLmFjdGlvbic7XG5pbXBvcnQgeyBOZ3NzbURhdGFBY3Rpb25UeXBlIH0gZnJvbSAnLi9uZ3NzbS1kYXRhLWFjdGlvbi10eXBlJztcbmltcG9ydCB7IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb248VERhdGEgPSBhbnk+IGV4dGVuZHMgTmdzc21EYXRhU291cmNlVmFsdWVBY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzOiBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU/OiBURGF0YVxuICApIHtcbiAgICBzdXBlcihOZ3NzbURhdGFBY3Rpb25UeXBlLnNldERhdGFTb3VyY2VWYWx1ZSwga2V5KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './is-ngssm-data-source-value-status.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLW5nc3NtLWRhdGEtc291cmNlLXZhbHVlLXN0YXR1cy5waXBlJztcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { selectNgssmDataSourceValue } from '../state';
3
+ import * as i0 from "@angular/core";
4
+ export class IsNgssmDataSourceValueStatusPipe {
5
+ transform(value, ...args) {
6
+ const key = args[0];
7
+ const status = args[1];
8
+ return selectNgssmDataSourceValue(value, key).status === status;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, isStandalone: true, name: "isNgssmDataSourceValueStatus" }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{
16
+ name: 'isNgssmDataSourceValueStatus',
17
+ standalone: true
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmdzc20tZGF0YS1zb3VyY2UtdmFsdWUtc3RhdHVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9jb21wb25lbnRzL2lzLW5nc3NtLWRhdGEtc291cmNlLXZhbHVlLXN0YXR1cy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBS3BELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNdEQsTUFBTSxPQUFPLGdDQUFnQztJQUNwQyxTQUFTLENBQUMsS0FBWSxFQUFFLEdBQUcsSUFBYztRQUM5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBK0IsQ0FBQztRQUNyRCxPQUFPLDBCQUEwQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDO0lBQ2xFLENBQUM7OEdBTFUsZ0NBQWdDOzRHQUFoQyxnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBSjVDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLDhCQUE4QjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbURhdGFTb3VyY2VWYWx1ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cycsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSXNOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1c1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogU3RhdGUsIC4uLmFyZ3M6IHN0cmluZ1tdKTogdW5rbm93biB7XG4gICAgY29uc3Qga2V5ID0gYXJnc1swXTtcbiAgICBjb25zdCBzdGF0dXMgPSBhcmdzWzFdIGFzIE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzO1xuICAgIHJldHVybiBzZWxlY3ROZ3NzbURhdGFTb3VyY2VWYWx1ZSh2YWx1ZSwga2V5KS5zdGF0dXMgPT09IHN0YXR1cztcbiAgfVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { Injectable, runInInjectionContext } from '@angular/core';
2
+ import { NgssmDataActionType, NgssmSetDataSourceValueAction } from '../actions';
3
+ import { selectNgssmDataState } from '../state';
4
+ import { NgssmDataSourceValueStatus } from '../model';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "ngssm-store";
7
+ export class DataLoadingEffect {
8
+ constructor(logger, injector) {
9
+ this.logger = logger;
10
+ this.injector = injector;
11
+ this.processedActions = [NgssmDataActionType.loadDataSourceValue];
12
+ }
13
+ processAction(store, state, action) {
14
+ if (action.type === NgssmDataActionType.loadDataSourceValue) {
15
+ const key = action.key;
16
+ const dataSource = selectNgssmDataState(state).dataSources[key];
17
+ if (!dataSource) {
18
+ this.logger.error(`No data source setup for key '${key}'`);
19
+ return;
20
+ }
21
+ const dataSourceValue = selectNgssmDataState(state).dataSourceValues[key];
22
+ if (dataSourceValue?.status !== NgssmDataSourceValueStatus.loading) {
23
+ this.logger.information(`Data source value for '${key}' is not in '${NgssmDataSourceValueStatus.loading}' status: '${dataSourceValue?.status}'`);
24
+ return;
25
+ }
26
+ runInInjectionContext(this.injector, () => {
27
+ dataSource.dataLoadingFunc(state, dataSourceValue.parameter).subscribe({
28
+ next: (value) => store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.loaded, value)),
29
+ error: (error) => {
30
+ this.logger.error(`Unable to load data for '${key}'`, error);
31
+ store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.error));
32
+ }
33
+ });
34
+ });
35
+ }
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataLoadingEffect, deps: [{ token: i1.Logger }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataLoadingEffect }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataLoadingEffect, decorators: [{
41
+ type: Injectable
42
+ }], ctorParameters: () => [{ type: i1.Logger }, { type: i0.EnvironmentInjector }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb2FkaW5nLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL2VmZmVjdHMvZGF0YS1sb2FkaW5nLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RixPQUFPLEVBQUUsbUJBQW1CLEVBQThCLDZCQUE2QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUd0RCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1UsTUFBYyxFQUNkLFFBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUp2QixxQkFBZ0IsR0FBYSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFLcEYsQ0FBQztJQUVHLGFBQWEsQ0FBQyxLQUFZLEVBQUUsS0FBWSxFQUFFLE1BQWM7UUFDN0QsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFO1lBQzNELE1BQU0sR0FBRyxHQUFJLE1BQXFDLENBQUMsR0FBRyxDQUFDO1lBQ3ZELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPO2FBQ1I7WUFFRCxNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxRSxJQUFJLGVBQWUsRUFBRSxNQUFNLEtBQUssMEJBQTBCLENBQUMsT0FBTyxFQUFFO2dCQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDckIsMEJBQTBCLEdBQUcsZ0JBQWdCLDBCQUEwQixDQUFDLE9BQU8sY0FBYyxlQUFlLEVBQUUsTUFBTSxHQUFHLENBQ3hILENBQUM7Z0JBQ0YsT0FBTzthQUNSO1lBRUQscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hDLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3JFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLDZCQUE2QixDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3ZILEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDN0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLDZCQUE2QixDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNqRyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzhHQW5DVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGFibGUsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFZmZlY3QsIFN0b3JlLCBTdGF0ZSwgQWN0aW9uLCBMb2dnZXIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IE5nc3NtRGF0YUFjdGlvblR5cGUsIE5nc3NtRGF0YVNvdXJjZVZhbHVlQWN0aW9uLCBOZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21EYXRhU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFMb2FkaW5nRWZmZWN0IGltcGxlbWVudHMgRWZmZWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW05nc3NtRGF0YUFjdGlvblR5cGUubG9hZERhdGFTb3VyY2VWYWx1ZV07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBwcml2YXRlIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yXG4gICkge31cblxuICBwdWJsaWMgcHJvY2Vzc0FjdGlvbihzdG9yZTogU3RvcmUsIHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IE5nc3NtRGF0YUFjdGlvblR5cGUubG9hZERhdGFTb3VyY2VWYWx1ZSkge1xuICAgICAgY29uc3Qga2V5ID0gKGFjdGlvbiBhcyBOZ3NzbURhdGFTb3VyY2VWYWx1ZUFjdGlvbikua2V5O1xuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlc1trZXldO1xuICAgICAgaWYgKCFkYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBObyBkYXRhIHNvdXJjZSBzZXR1cCBmb3Iga2V5ICcke2tleX0nYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YVNvdXJjZVZhbHVlID0gc2VsZWN0Tmdzc21EYXRhU3RhdGUoc3RhdGUpLmRhdGFTb3VyY2VWYWx1ZXNba2V5XTtcbiAgICAgIGlmIChkYXRhU291cmNlVmFsdWU/LnN0YXR1cyAhPT0gTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGluZykge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihcbiAgICAgICAgICBgRGF0YSBzb3VyY2UgdmFsdWUgZm9yICcke2tleX0nIGlzIG5vdCBpbiAnJHtOZ3NzbURhdGFTb3VyY2VWYWx1ZVN0YXR1cy5sb2FkaW5nfScgc3RhdHVzOiAnJHtkYXRhU291cmNlVmFsdWU/LnN0YXR1c30nYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgIGRhdGFTb3VyY2UuZGF0YUxvYWRpbmdGdW5jKHN0YXRlLCBkYXRhU291cmNlVmFsdWUucGFyYW1ldGVyKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4gc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IE5nc3NtU2V0RGF0YVNvdXJjZVZhbHVlQWN0aW9uKGtleSwgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGVkLCB2YWx1ZSkpLFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBVbmFibGUgdG8gbG9hZCBkYXRhIGZvciAnJHtrZXl9J2AsIGVycm9yKTtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBOZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbihrZXksIE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmVycm9yKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './data-loading.effect';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9lZmZlY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGEtbG9hZGluZy5lZmZlY3QnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './ngssm-data-source';
2
+ export * from './ngssm-data-source-value';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25nc3NtLWRhdGEtc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tZGF0YS1zb3VyY2UtdmFsdWUnO1xuIl19
@@ -0,0 +1,9 @@
1
+ export var NgssmDataSourceValueStatus;
2
+ (function (NgssmDataSourceValueStatus) {
3
+ NgssmDataSourceValueStatus["none"] = "none";
4
+ NgssmDataSourceValueStatus["notRegistered"] = "notRegistered";
5
+ NgssmDataSourceValueStatus["loading"] = "loading";
6
+ NgssmDataSourceValueStatus["loaded"] = "loaded";
7
+ NgssmDataSourceValueStatus["error"] = "error";
8
+ })(NgssmDataSourceValueStatus || (NgssmDataSourceValueStatus = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZGF0YS1zb3VyY2UtdmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9tb2RlbC9uZ3NzbS1kYXRhLXNvdXJjZS12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSwwQkFNWDtBQU5ELFdBQVksMEJBQTBCO0lBQ3BDLDJDQUFhLENBQUE7SUFDYiw2REFBK0IsQ0FBQTtJQUMvQixpREFBbUIsQ0FBQTtJQUNuQiwrQ0FBaUIsQ0FBQTtJQUNqQiw2Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVywwQkFBMEIsS0FBMUIsMEJBQTBCLFFBTXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5cbmV4cG9ydCBlbnVtIE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzIHtcbiAgbm9uZSA9ICdub25lJyxcbiAgbm90UmVnaXN0ZXJlZCA9ICdub3RSZWdpc3RlcmVkJyxcbiAgbG9hZGluZyA9ICdsb2FkaW5nJyxcbiAgbG9hZGVkID0gJ2xvYWRlZCcsXG4gIGVycm9yID0gJ2Vycm9yJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5nc3NtRGF0YVNvdXJjZVZhbHVlPFREYXRhID0gYW55LCBUUGFyYW1ldGVyID0gYW55PiB7XG4gIHN0YXR1czogTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXM7XG4gIHZhbHVlPzogVERhdGE7XG4gIHBhcmFtZXRlcj86IFRQYXJhbWV0ZXI7XG4gIGxhc3RMb2FkaW5nRGF0ZT86IERhdGVUaW1lO1xuICBkYXRhTGlmZXRpbWVJblNlY29uZHM/OiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { InjectionToken, inject, makeEnvironmentProviders } from '@angular/core';
2
+ import { Store } from 'ngssm-store';
3
+ import { NgssmLoadDataSourceValueAction } from '../actions';
4
+ export const NGSSM_DATA_SOURCE = new InjectionToken('NGSSM_DATA_SOURCE');
5
+ export const provideNgssmDataSource = (key, loadingFunc, dataLifetimeInSeconds) => {
6
+ return makeEnvironmentProviders([
7
+ {
8
+ provide: NGSSM_DATA_SOURCE,
9
+ useFactory: () => {
10
+ const dataSource = {
11
+ key,
12
+ dataLifetimeInSeconds,
13
+ dataLoadingFunc: loadingFunc
14
+ };
15
+ return dataSource;
16
+ },
17
+ multi: true
18
+ }
19
+ ]);
20
+ };
21
+ export const ngssmLoadDataSourceValue = (key, forceReload = false) => {
22
+ return () => {
23
+ inject(Store).dispatchAction(new NgssmLoadDataSourceValueAction(key, forceReload));
24
+ return true;
25
+ };
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9tb2RlbC9uZ3NzbS1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLGNBQWMsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkcsT0FBTyxFQUFTLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFZNUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsR0FBVyxFQUNYLFdBQWdELEVBQ2hELHFCQUE4QixFQUNSLEVBQUU7SUFDeEIsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixNQUFNLFVBQVUsR0FBdUM7b0JBQ3JELEdBQUc7b0JBQ0gscUJBQXFCO29CQUNyQixlQUFlLEVBQUUsV0FBVztpQkFDN0IsQ0FBQztnQkFDRixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsR0FBVyxFQUFFLGNBQXVCLEtBQUssRUFBbUIsRUFBRTtJQUNyRyxPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU3RhdGUsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgTmdzc21Mb2FkRGF0YVNvdXJjZVZhbHVlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdzc21EYXRhTG9hZGluZzxURGF0YSA9IGFueSwgVFBhcmFtZXRlciA9IGFueT4ge1xuICAoc3RhdGU6IFN0YXRlLCBwYXJhbWV0ZXI/OiBUUGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxURGF0YT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdzc21EYXRhU291cmNlPFREYXRhID0gYW55LCBUUGFyYW1ldGVyID0gYW55PiB7XG4gIGtleTogc3RyaW5nO1xuICBkYXRhTGlmZXRpbWVJblNlY29uZHM/OiBudW1iZXI7XG4gIGRhdGFMb2FkaW5nRnVuYzogTmdzc21EYXRhTG9hZGluZzxURGF0YSwgVFBhcmFtZXRlcj47XG59XG5cbmV4cG9ydCBjb25zdCBOR1NTTV9EQVRBX1NPVVJDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3NzbURhdGFTb3VyY2U+KCdOR1NTTV9EQVRBX1NPVVJDRScpO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZU5nc3NtRGF0YVNvdXJjZSA9IDxURGF0YSA9IGFueSwgVFBhcmFtZXRlciA9IGFueT4oXG4gIGtleTogc3RyaW5nLFxuICBsb2FkaW5nRnVuYzogTmdzc21EYXRhTG9hZGluZzxURGF0YSwgVFBhcmFtZXRlcj4sXG4gIGRhdGFMaWZldGltZUluU2Vjb25kcz86IG51bWJlclxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMgPT4ge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR1NTTV9EQVRBX1NPVVJDRSxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZTogTmdzc21EYXRhU291cmNlPFREYXRhLCBUUGFyYW1ldGVyPiA9IHtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgZGF0YUxpZmV0aW1lSW5TZWNvbmRzLFxuICAgICAgICAgIGRhdGFMb2FkaW5nRnVuYzogbG9hZGluZ0Z1bmNcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGFTb3VyY2U7XG4gICAgICB9LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0pO1xufTtcblxuZXhwb3J0IGNvbnN0IG5nc3NtTG9hZERhdGFTb3VyY2VWYWx1ZSA9IChrZXk6IHN0cmluZywgZm9yY2VSZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZSk6ICgoKSA9PiBib29sZWFuKSA9PiB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgaW5qZWN0KFN0b3JlKS5kaXNwYXRjaEFjdGlvbihuZXcgTmdzc21Mb2FkRGF0YVNvdXJjZVZhbHVlQWN0aW9uKGtleSwgZm9yY2VSZWxvYWQpKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn07XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { APP_INITIALIZER, Inject, Injectable, Optional, makeEnvironmentProviders } from '@angular/core';
2
+ import { Store, provideEffects, provideReducers } from 'ngssm-store';
3
+ import { NGSSM_DATA_SOURCE } from './model';
4
+ import { NgssmInitDataSourceValuesAction } from './actions';
5
+ import { DataSourceValueReducer, DataSourcesInitializationReducer } from './reducers';
6
+ import { DataLoadingEffect } from './effects';
7
+ import * as i0 from "@angular/core";
8
+ export class NgssmDataSourceCollection {
9
+ constructor(dataSources) {
10
+ this.dataSources = dataSources;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", 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.0.5", ngImport: i0, type: NgssmDataSourceCollection, providedIn: 'root' }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgssmDataSourceCollection, decorators: [{
16
+ type: Injectable,
17
+ args: [{
18
+ providedIn: 'root'
19
+ }]
20
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
21
+ type: Inject,
22
+ args: [NGSSM_DATA_SOURCE]
23
+ }, {
24
+ type: Optional
25
+ }] }] });
26
+ const initDataSourceValues = (store, dataSourceCollection) => {
27
+ return () => {
28
+ const dataSources = dataSourceCollection.dataSources ?? [];
29
+ if (dataSources.length > 0) {
30
+ store.dispatchAction(new NgssmInitDataSourceValuesAction(dataSources));
31
+ }
32
+ };
33
+ };
34
+ export const provideNgssmData = () => {
35
+ return makeEnvironmentProviders([
36
+ {
37
+ provide: APP_INITIALIZER,
38
+ useFactory: initDataSourceValues,
39
+ deps: [Store, NgssmDataSourceCollection],
40
+ multi: true
41
+ },
42
+ provideReducers(DataSourcesInitializationReducer, DataSourceValueReducer),
43
+ provideEffects(DataLoadingEffect)
44
+ ]);
45
+ };
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1uZ3NzbS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tZGF0YS9zcmMvbGliL25nc3NtLWRhdGEvcHJvdmlkZS1uZ3NzbS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlILE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0sU0FBUyxDQUFDO0FBQzdELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUs5QyxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQTBELFdBQThCO1FBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtJQUFHLENBQUM7OEdBRGpGLHlCQUF5QixrQkFDaEIsaUJBQWlCO2tIQUQxQix5QkFBeUIsY0FGeEIsTUFBTTs7MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBRWMsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7O0FBR2xELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFZLEVBQUUsb0JBQStDLEVBQWdCLEVBQUU7SUFDM0csT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzNELElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDMUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLCtCQUErQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUF5QixFQUFFO0lBQ3pELE9BQU8sd0JBQXdCLENBQUM7UUFDOUI7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztZQUN4QyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0QsZUFBZSxDQUFDLGdDQUFnQyxFQUFFLHNCQUFzQixDQUFDO1FBQ3pFLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztLQUNsQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEVudmlyb25tZW50UHJvdmlkZXJzLCBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3RvcmUsIHByb3ZpZGVFZmZlY3RzLCBwcm92aWRlUmVkdWNlcnMgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IE5HU1NNX0RBVEFfU09VUkNFLCBOZ3NzbURhdGFTb3VyY2UgfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7IE5nc3NtSW5pdERhdGFTb3VyY2VWYWx1ZXNBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVZhbHVlUmVkdWNlciwgRGF0YVNvdXJjZXNJbml0aWFsaXphdGlvblJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzJztcbmltcG9ydCB7IERhdGFMb2FkaW5nRWZmZWN0IH0gZnJvbSAnLi9lZmZlY3RzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21EYXRhU291cmNlQ29sbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdTU01fREFUQV9TT1VSQ0UpIEBPcHRpb25hbCgpIHB1YmxpYyBkYXRhU291cmNlczogTmdzc21EYXRhU291cmNlW10pIHt9XG59XG5cbmNvbnN0IGluaXREYXRhU291cmNlVmFsdWVzID0gKHN0b3JlOiBTdG9yZSwgZGF0YVNvdXJjZUNvbGxlY3Rpb246IE5nc3NtRGF0YVNvdXJjZUNvbGxlY3Rpb24pOiAoKCkgPT4gdm9pZCkgPT4ge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGNvbnN0IGRhdGFTb3VyY2VzID0gZGF0YVNvdXJjZUNvbGxlY3Rpb24uZGF0YVNvdXJjZXMgPz8gW107XG4gICAgaWYgKGRhdGFTb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBOZ3NzbUluaXREYXRhU291cmNlVmFsdWVzQWN0aW9uKGRhdGFTb3VyY2VzKSk7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVOZ3NzbURhdGEgPSAoKTogRW52aXJvbm1lbnRQcm92aWRlcnMgPT4ge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiBpbml0RGF0YVNvdXJjZVZhbHVlcyxcbiAgICAgIGRlcHM6IFtTdG9yZSwgTmdzc21EYXRhU291cmNlQ29sbGVjdGlvbl0sXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAgcHJvdmlkZVJlZHVjZXJzKERhdGFTb3VyY2VzSW5pdGlhbGl6YXRpb25SZWR1Y2VyLCBEYXRhU291cmNlVmFsdWVSZWR1Y2VyKSxcbiAgICBwcm92aWRlRWZmZWN0cyhEYXRhTG9hZGluZ0VmZmVjdClcbiAgXSk7XG59O1xuIl19
@@ -0,0 +1,6 @@
1
+ export * from './provide-ngssm-data';
2
+ export * from './actions';
3
+ export * from './state';
4
+ export * from './model';
5
+ export * from './components';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZS1uZ3NzbS1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DateTime } from 'luxon';
3
+ import { NgssmDataActionType } from '../actions';
4
+ import { selectNgssmDataState, updateNgssmDataState } from '../state';
5
+ import { NgssmDataSourceValueStatus } from '../model';
6
+ import * as i0 from "@angular/core";
7
+ export class DataSourceValueReducer {
8
+ constructor() {
9
+ this.processedActions = [NgssmDataActionType.loadDataSourceValue, NgssmDataActionType.setDataSourceValue];
10
+ }
11
+ updateState(state, action) {
12
+ switch (action.type) {
13
+ case NgssmDataActionType.loadDataSourceValue: {
14
+ const loadDataSourceValue = action;
15
+ const dataSourceValue = selectNgssmDataState(state).dataSourceValues[loadDataSourceValue.key];
16
+ if (!dataSourceValue) {
17
+ break;
18
+ }
19
+ let shouldReload = false;
20
+ if (dataSourceValue.status === NgssmDataSourceValueStatus.loaded) {
21
+ if (loadDataSourceValue.forceReload === true || !dataSourceValue.dataLifetimeInSeconds || !dataSourceValue.lastLoadingDate) {
22
+ shouldReload = true;
23
+ }
24
+ else {
25
+ const dataLifetime = DateTime.now().diff(dataSourceValue.lastLoadingDate, 'second');
26
+ if ((dataLifetime.toObject().seconds ?? 0) > dataSourceValue.dataLifetimeInSeconds) {
27
+ shouldReload = true;
28
+ }
29
+ }
30
+ }
31
+ else {
32
+ shouldReload = true;
33
+ }
34
+ if (shouldReload) {
35
+ return updateNgssmDataState(state, {
36
+ dataSourceValues: {
37
+ [loadDataSourceValue.key]: {
38
+ status: { $set: NgssmDataSourceValueStatus.loading }
39
+ }
40
+ }
41
+ });
42
+ }
43
+ break;
44
+ }
45
+ case NgssmDataActionType.setDataSourceValue: {
46
+ const ngssmSetDataSourceValueAction = action;
47
+ const dataSourceValue = selectNgssmDataState(state).dataSourceValues[ngssmSetDataSourceValueAction.key];
48
+ if (!dataSourceValue) {
49
+ break;
50
+ }
51
+ return updateNgssmDataState(state, {
52
+ dataSourceValues: {
53
+ [ngssmSetDataSourceValueAction.key]: {
54
+ status: { $set: ngssmSetDataSourceValueAction.status },
55
+ value: { $set: ngssmSetDataSourceValueAction.value },
56
+ lastLoadingDate: { $set: DateTime.now() }
57
+ }
58
+ }
59
+ });
60
+ }
61
+ }
62
+ return state;
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourceValueReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourceValueReducer }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourceValueReducer, decorators: [{
68
+ type: Injectable
69
+ }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtdmFsdWUucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL3JlZHVjZXJzL2RhdGEtc291cmNlLXZhbHVlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBSWpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBaUUsTUFBTSxZQUFZLENBQUM7QUFDaEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHdEQsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVrQixxQkFBZ0IsR0FBYSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLENBQUM7S0E0RGhJO0lBMURRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDbkIsS0FBSyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLG1CQUFtQixHQUFHLE1BQXdDLENBQUM7Z0JBQ3JFLE1BQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RixJQUFJLENBQUMsZUFBZSxFQUFFO29CQUNwQixNQUFNO2lCQUNQO2dCQUVELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFFekIsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLDBCQUEwQixDQUFDLE1BQU0sRUFBRTtvQkFDaEUsSUFBSSxtQkFBbUIsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRTt3QkFDMUgsWUFBWSxHQUFHLElBQUksQ0FBQztxQkFDckI7eUJBQU07d0JBQ0wsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO3dCQUNwRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMscUJBQXFCLEVBQUU7NEJBQ2xGLFlBQVksR0FBRyxJQUFJLENBQUM7eUJBQ3JCO3FCQUNGO2lCQUNGO3FCQUFNO29CQUNMLFlBQVksR0FBRyxJQUFJLENBQUM7aUJBQ3JCO2dCQUVELElBQUksWUFBWSxFQUFFO29CQUNoQixPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRTt3QkFDakMsZ0JBQWdCLEVBQUU7NEJBQ2hCLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0NBQ3pCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxPQUFPLEVBQUU7NkJBQ3JEO3lCQUNGO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxNQUFNO2FBQ1A7WUFFRCxLQUFLLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzNDLE1BQU0sNkJBQTZCLEdBQUcsTUFBdUMsQ0FBQztnQkFDOUUsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hHLElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQ3BCLE1BQU07aUJBQ1A7Z0JBRUQsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7b0JBQ2pDLGdCQUFnQixFQUFFO3dCQUNoQixDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUNuQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkJBQTZCLENBQUMsTUFBTSxFQUFFOzRCQUN0RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkJBQTZCLENBQUMsS0FBSyxFQUFFOzRCQUNwRCxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFO3lCQUMxQztxQkFDRjtpQkFDRixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQTVEVSxzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IE5nc3NtRGF0YUFjdGlvblR5cGUsIE5nc3NtTG9hZERhdGFTb3VyY2VWYWx1ZUFjdGlvbiwgTmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IHNlbGVjdE5nc3NtRGF0YVN0YXRlLCB1cGRhdGVOZ3NzbURhdGFTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZVZhbHVlUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbTmdzc21EYXRhQWN0aW9uVHlwZS5sb2FkRGF0YVNvdXJjZVZhbHVlLCBOZ3NzbURhdGFBY3Rpb25UeXBlLnNldERhdGFTb3VyY2VWYWx1ZV07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbURhdGFBY3Rpb25UeXBlLmxvYWREYXRhU291cmNlVmFsdWU6IHtcbiAgICAgICAgY29uc3QgbG9hZERhdGFTb3VyY2VWYWx1ZSA9IGFjdGlvbiBhcyBOZ3NzbUxvYWREYXRhU291cmNlVmFsdWVBY3Rpb247XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VWYWx1ZSA9IHNlbGVjdE5nc3NtRGF0YVN0YXRlKHN0YXRlKS5kYXRhU291cmNlVmFsdWVzW2xvYWREYXRhU291cmNlVmFsdWUua2V5XTtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlVmFsdWUpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzaG91bGRSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoZGF0YVNvdXJjZVZhbHVlLnN0YXR1cyA9PT0gTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubG9hZGVkKSB7XG4gICAgICAgICAgaWYgKGxvYWREYXRhU291cmNlVmFsdWUuZm9yY2VSZWxvYWQgPT09IHRydWUgfHwgIWRhdGFTb3VyY2VWYWx1ZS5kYXRhTGlmZXRpbWVJblNlY29uZHMgfHwgIWRhdGFTb3VyY2VWYWx1ZS5sYXN0TG9hZGluZ0RhdGUpIHtcbiAgICAgICAgICAgIHNob3VsZFJlbG9hZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFMaWZldGltZSA9IERhdGVUaW1lLm5vdygpLmRpZmYoZGF0YVNvdXJjZVZhbHVlLmxhc3RMb2FkaW5nRGF0ZSwgJ3NlY29uZCcpO1xuICAgICAgICAgICAgaWYgKChkYXRhTGlmZXRpbWUudG9PYmplY3QoKS5zZWNvbmRzID8/IDApID4gZGF0YVNvdXJjZVZhbHVlLmRhdGFMaWZldGltZUluU2Vjb25kcykge1xuICAgICAgICAgICAgICBzaG91bGRSZWxvYWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzaG91bGRSZWxvYWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNob3VsZFJlbG9hZCkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVZhbHVlczoge1xuICAgICAgICAgICAgICBbbG9hZERhdGFTb3VyY2VWYWx1ZS5rZXldOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiB7ICRzZXQ6IE5nc3NtRGF0YVNvdXJjZVZhbHVlU3RhdHVzLmxvYWRpbmcgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbURhdGFBY3Rpb25UeXBlLnNldERhdGFTb3VyY2VWYWx1ZToge1xuICAgICAgICBjb25zdCBuZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbjtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZVZhbHVlID0gc2VsZWN0Tmdzc21EYXRhU3RhdGUoc3RhdGUpLmRhdGFTb3VyY2VWYWx1ZXNbbmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb24ua2V5XTtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlVmFsdWUpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXM6IHtcbiAgICAgICAgICAgIFtuZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbi5rZXldOiB7XG4gICAgICAgICAgICAgIHN0YXR1czogeyAkc2V0OiBuZ3NzbVNldERhdGFTb3VyY2VWYWx1ZUFjdGlvbi5zdGF0dXMgfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHsgJHNldDogbmdzc21TZXREYXRhU291cmNlVmFsdWVBY3Rpb24udmFsdWUgfSxcbiAgICAgICAgICAgICAgbGFzdExvYWRpbmdEYXRlOiB7ICRzZXQ6IERhdGVUaW1lLm5vdygpIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NgssmDataActionType } from '../actions';
3
+ import { NgssmDataSourceValueStatus } from '../model';
4
+ import { updateNgssmDataState } from '../state';
5
+ import * as i0 from "@angular/core";
6
+ export class DataSourcesInitializationReducer {
7
+ constructor() {
8
+ this.processedActions = [NgssmDataActionType.initDataSourceValues];
9
+ }
10
+ updateState(state, action) {
11
+ if (action.type === NgssmDataActionType.initDataSourceValues) {
12
+ const initDataSourceValues = action;
13
+ const dataSourceValues = {};
14
+ const dataSources = {};
15
+ initDataSourceValues.dataSources.forEach((dataSource) => {
16
+ dataSourceValues[dataSource.key] = {
17
+ status: NgssmDataSourceValueStatus.none
18
+ };
19
+ if (dataSource.dataLifetimeInSeconds) {
20
+ dataSourceValues[dataSource.key].dataLifetimeInSeconds = dataSource.dataLifetimeInSeconds;
21
+ }
22
+ dataSources[dataSource.key] = dataSource;
23
+ });
24
+ return updateNgssmDataState(state, {
25
+ dataSourceValues: { $merge: dataSourceValues },
26
+ dataSources: { $merge: dataSources }
27
+ });
28
+ }
29
+ return state;
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourcesInitializationReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourcesInitializationReducer }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourcesInitializationReducer, decorators: [{
35
+ type: Injectable
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2VzLWluaXRpYWxpemF0aW9uLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9yZWR1Y2Vycy9kYXRhLXNvdXJjZXMtaW5pdGlhbGl6YXRpb24ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBbUMsTUFBTSxZQUFZLENBQUM7QUFDbEYsT0FBTyxFQUF5QywwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2hELE1BQU0sT0FBTyxnQ0FBZ0M7SUFEN0M7UUFFa0IscUJBQWdCLEdBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBMkJ6RjtJQXpCUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFO1lBQzVELE1BQU0sb0JBQW9CLEdBQUcsTUFBeUMsQ0FBQztZQUN2RSxNQUFNLGdCQUFnQixHQUE0QyxFQUFFLENBQUM7WUFDckUsTUFBTSxXQUFXLEdBQXVDLEVBQUUsQ0FBQztZQUMzRCxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3RELGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDakMsTUFBTSxFQUFFLDBCQUEwQixDQUFDLElBQUk7aUJBQ3hDLENBQUM7Z0JBRUYsSUFBSSxVQUFVLENBQUMscUJBQXFCLEVBQUU7b0JBQ3BDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUM7aUJBQzNGO2dCQUVELFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFO2dCQUM5QyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO2FBQ3JDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQTNCVSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21EYXRhQWN0aW9uVHlwZSwgTmdzc21Jbml0RGF0YVNvdXJjZVZhbHVlc0FjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgTmdzc21EYXRhU291cmNlLCBOZ3NzbURhdGFTb3VyY2VWYWx1ZSwgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyB1cGRhdGVOZ3NzbURhdGFTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VzSW5pdGlhbGl6YXRpb25SZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtOZ3NzbURhdGFBY3Rpb25UeXBlLmluaXREYXRhU291cmNlVmFsdWVzXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IE5nc3NtRGF0YUFjdGlvblR5cGUuaW5pdERhdGFTb3VyY2VWYWx1ZXMpIHtcbiAgICAgIGNvbnN0IGluaXREYXRhU291cmNlVmFsdWVzID0gYWN0aW9uIGFzIE5nc3NtSW5pdERhdGFTb3VyY2VWYWx1ZXNBY3Rpb247XG4gICAgICBjb25zdCBkYXRhU291cmNlVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IE5nc3NtRGF0YVNvdXJjZVZhbHVlIH0gPSB7fTtcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2VzOiB7IFtrZXk6IHN0cmluZ106IE5nc3NtRGF0YVNvdXJjZSB9ID0ge307XG4gICAgICBpbml0RGF0YVNvdXJjZVZhbHVlcy5kYXRhU291cmNlcy5mb3JFYWNoKChkYXRhU291cmNlKSA9PiB7XG4gICAgICAgIGRhdGFTb3VyY2VWYWx1ZXNbZGF0YVNvdXJjZS5rZXldID0ge1xuICAgICAgICAgIHN0YXR1czogTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubm9uZVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChkYXRhU291cmNlLmRhdGFMaWZldGltZUluU2Vjb25kcykge1xuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZXNbZGF0YVNvdXJjZS5rZXldLmRhdGFMaWZldGltZUluU2Vjb25kcyA9IGRhdGFTb3VyY2UuZGF0YUxpZmV0aW1lSW5TZWNvbmRzO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YVNvdXJjZXNbZGF0YVNvdXJjZS5rZXldID0gZGF0YVNvdXJjZTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdXBkYXRlTmdzc21EYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgZGF0YVNvdXJjZVZhbHVlczogeyAkbWVyZ2U6IGRhdGFTb3VyY2VWYWx1ZXMgfSxcbiAgICAgICAgZGF0YVNvdXJjZXM6IHsgJG1lcmdlOiBkYXRhU291cmNlcyB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './data-sources-initialization.reducer';
2
+ export * from './data-source-value.reducer';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9yZWR1Y2Vycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGEtc291cmNlcy1pbml0aWFsaXphdGlvbi5yZWR1Y2VyJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1zb3VyY2UtdmFsdWUucmVkdWNlcic7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './ngssm-data.state';
2
+ export * from './selectors';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1kYXRhL3NyYy9saWIvbmdzc20tZGF0YS9zdGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1kYXRhLnN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0b3JzJztcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { __decorate } from "tslib";
2
+ import update from 'immutability-helper';
3
+ import { NgSsmFeatureState } from 'ngssm-store';
4
+ export const selectNgssmDataState = (state) => state[NgssmDataStateSpecification.featureStateKey];
5
+ export const updateNgssmDataState = (state, command) => update(state, {
6
+ [NgssmDataStateSpecification.featureStateKey]: command
7
+ });
8
+ let NgssmDataStateSpecification = class NgssmDataStateSpecification {
9
+ static { this.featureStateKey = 'ngssm-data-state'; }
10
+ static { this.initialState = {
11
+ dataSourceValues: {},
12
+ dataSources: {}
13
+ }; }
14
+ };
15
+ NgssmDataStateSpecification = __decorate([
16
+ NgSsmFeatureState({
17
+ featureStateKey: NgssmDataStateSpecification.featureStateKey,
18
+ initialState: NgssmDataStateSpecification.initialState
19
+ })
20
+ ], NgssmDataStateSpecification);
21
+ export { NgssmDataStateSpecification };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZGF0YS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL2xpYi9uZ3NzbS1kYXRhL3N0YXRlL25nc3NtLWRhdGEuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sTUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFHdkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFZLEVBQWtCLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsZUFBZSxDQUFtQixDQUFDO0FBRTNJLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBWSxFQUFFLE9BQW9DLEVBQVMsRUFBRSxDQUNoRyxNQUFNLENBQUMsS0FBSyxFQUFFO0lBQ1osQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPO0NBQ3ZELENBQUMsQ0FBQztBQVdFLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO2FBQ2Ysb0JBQWUsR0FBRyxrQkFBa0IsQUFBckIsQ0FBc0I7YUFDckMsaUJBQVksR0FBbUI7UUFDcEQsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixXQUFXLEVBQUUsRUFBRTtLQUNoQixBQUhrQyxDQUdqQzs7QUFMUywyQkFBMkI7SUFKdkMsaUJBQWlCLENBQUM7UUFDakIsZUFBZSxFQUFFLDJCQUEyQixDQUFDLGVBQWU7UUFDNUQsWUFBWSxFQUFFLDJCQUEyQixDQUFDLFlBQVk7S0FDdkQsQ0FBQztHQUNXLDJCQUEyQixDQU12QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1cGRhdGUsIHsgU3BlYyB9IGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuXG5pbXBvcnQgeyBOZ1NzbUZlYXR1cmVTdGF0ZSwgU3RhdGUgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5pbXBvcnQgeyBOZ3NzbURhdGFTb3VyY2UsIE5nc3NtRGF0YVNvdXJjZVZhbHVlIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Tmdzc21EYXRhU3RhdGUgPSAoc3RhdGU6IFN0YXRlKTogTmdzc21EYXRhU3RhdGUgPT4gc3RhdGVbTmdzc21EYXRhU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV0gYXMgTmdzc21EYXRhU3RhdGU7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVOZ3NzbURhdGFTdGF0ZSA9IChzdGF0ZTogU3RhdGUsIGNvbW1hbmQ6IFNwZWM8Tmdzc21EYXRhU3RhdGUsIG5ldmVyPik6IFN0YXRlID0+XG4gIHVwZGF0ZShzdGF0ZSwge1xuICAgIFtOZ3NzbURhdGFTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5XTogY29tbWFuZFxuICB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3NzbURhdGFTdGF0ZSB7XG4gIGRhdGFTb3VyY2VWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogTmdzc21EYXRhU291cmNlVmFsdWUgfTtcbiAgZGF0YVNvdXJjZXM6IHsgW2tleTogc3RyaW5nXTogTmdzc21EYXRhU291cmNlIH07XG59XG5cbkBOZ1NzbUZlYXR1cmVTdGF0ZSh7XG4gIGZlYXR1cmVTdGF0ZUtleTogTmdzc21EYXRhU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleSxcbiAgaW5pdGlhbFN0YXRlOiBOZ3NzbURhdGFTdGF0ZVNwZWNpZmljYXRpb24uaW5pdGlhbFN0YXRlXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtRGF0YVN0YXRlU3BlY2lmaWNhdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZmVhdHVyZVN0YXRlS2V5ID0gJ25nc3NtLWRhdGEtc3RhdGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGluaXRpYWxTdGF0ZTogTmdzc21EYXRhU3RhdGUgPSB7XG4gICAgZGF0YVNvdXJjZVZhbHVlczoge30sXG4gICAgZGF0YVNvdXJjZXM6IHt9XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { NgssmDataSourceValueStatus } from '../model';
2
+ import { selectNgssmDataState } from './ngssm-data.state';
3
+ export const selectNgssmDataSourceValue = (state, key) => {
4
+ return (selectNgssmDataState(state).dataSourceValues[key] ?? {
5
+ status: NgssmDataSourceValueStatus.notRegistered
6
+ });
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tZGF0YS9zcmMvbGliL25nc3NtLWRhdGEvc3RhdGUvc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBd0IsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsS0FBWSxFQUNaLEdBQVcsRUFDa0MsRUFBRTtJQUMvQyxPQUFPLENBQ0wsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUk7UUFDbkQsTUFBTSxFQUFFLDBCQUEwQixDQUFDLGFBQWE7S0FDakQsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5pbXBvcnQgeyBOZ3NzbURhdGFTb3VyY2VWYWx1ZSwgTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbURhdGFTdGF0ZSB9IGZyb20gJy4vbmdzc20tZGF0YS5zdGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3ROZ3NzbURhdGFTb3VyY2VWYWx1ZSA9IDxURGF0YVR5cGUgPSBhbnksIFRQYXJhbWV0ZXIgPSBhbnk+KFxuICBzdGF0ZTogU3RhdGUsXG4gIGtleTogc3RyaW5nXG4pOiBOZ3NzbURhdGFTb3VyY2VWYWx1ZTxURGF0YVR5cGUsIFRQYXJhbWV0ZXI+ID0+IHtcbiAgcmV0dXJuIChcbiAgICBzZWxlY3ROZ3NzbURhdGFTdGF0ZShzdGF0ZSkuZGF0YVNvdXJjZVZhbHVlc1trZXldID8/IHtcbiAgICAgIHN0YXR1czogTmdzc21EYXRhU291cmNlVmFsdWVTdGF0dXMubm90UmVnaXN0ZXJlZFxuICAgIH1cbiAgKTtcbn07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL25nc3NtLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of ngssm-data
3
+ */
4
+ export * from './lib/ngssm-data/public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWRhdGEvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3NzbS1kYXRhXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmdzc20tZGF0YS9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,302 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, makeEnvironmentProviders, inject, Injectable, runInInjectionContext, Inject, Optional, APP_INITIALIZER, Pipe } from '@angular/core';
3
+ import * as i1 from 'ngssm-store';
4
+ import { Store, NgSsmFeatureState, provideReducers, provideEffects } from 'ngssm-store';
5
+ import { __decorate } from 'tslib';
6
+ import update from 'immutability-helper';
7
+ import { DateTime } from 'luxon';
8
+
9
+ var NgssmDataActionType;
10
+ (function (NgssmDataActionType) {
11
+ NgssmDataActionType["initDataSourceValues"] = "[NgssmDataActionType] initDataSourceValues";
12
+ NgssmDataActionType["loadDataSourceValue"] = "[NgssmDataActionType] loadDataSourceValue";
13
+ NgssmDataActionType["setDataSourceParameter"] = "[NgssmDataActionType] setDataSourceParameter";
14
+ NgssmDataActionType["clearDataSourceValue"] = "[NgssmDataActionType] clearDataSourceValue";
15
+ NgssmDataActionType["setDataSourceValue"] = "[NgssmDataActionType] setDataSourceValue";
16
+ })(NgssmDataActionType || (NgssmDataActionType = {}));
17
+
18
+ class NgssmDataSourceValueAction {
19
+ constructor(type, key) {
20
+ this.type = type;
21
+ this.key = key;
22
+ }
23
+ }
24
+
25
+ class NgssmLoadDataSourceValueAction extends NgssmDataSourceValueAction {
26
+ constructor(key, forceReload) {
27
+ super(NgssmDataActionType.loadDataSourceValue, key);
28
+ this.forceReload = forceReload;
29
+ }
30
+ }
31
+
32
+ class NgssmInitDataSourceValuesAction {
33
+ constructor(dataSources) {
34
+ this.dataSources = dataSources;
35
+ this.type = NgssmDataActionType.initDataSourceValues;
36
+ }
37
+ }
38
+
39
+ class NgssmSetDataSourceValueAction extends NgssmDataSourceValueAction {
40
+ constructor(key, status, value) {
41
+ super(NgssmDataActionType.setDataSourceValue, key);
42
+ this.status = status;
43
+ this.value = value;
44
+ }
45
+ }
46
+
47
+ const NGSSM_DATA_SOURCE = new InjectionToken('NGSSM_DATA_SOURCE');
48
+ const provideNgssmDataSource = (key, loadingFunc, dataLifetimeInSeconds) => {
49
+ return makeEnvironmentProviders([
50
+ {
51
+ provide: NGSSM_DATA_SOURCE,
52
+ useFactory: () => {
53
+ const dataSource = {
54
+ key,
55
+ dataLifetimeInSeconds,
56
+ dataLoadingFunc: loadingFunc
57
+ };
58
+ return dataSource;
59
+ },
60
+ multi: true
61
+ }
62
+ ]);
63
+ };
64
+ const ngssmLoadDataSourceValue = (key, forceReload = false) => {
65
+ return () => {
66
+ inject(Store).dispatchAction(new NgssmLoadDataSourceValueAction(key, forceReload));
67
+ return true;
68
+ };
69
+ };
70
+
71
+ var NgssmDataSourceValueStatus;
72
+ (function (NgssmDataSourceValueStatus) {
73
+ NgssmDataSourceValueStatus["none"] = "none";
74
+ NgssmDataSourceValueStatus["notRegistered"] = "notRegistered";
75
+ NgssmDataSourceValueStatus["loading"] = "loading";
76
+ NgssmDataSourceValueStatus["loaded"] = "loaded";
77
+ NgssmDataSourceValueStatus["error"] = "error";
78
+ })(NgssmDataSourceValueStatus || (NgssmDataSourceValueStatus = {}));
79
+
80
+ const selectNgssmDataState = (state) => state[NgssmDataStateSpecification.featureStateKey];
81
+ const updateNgssmDataState = (state, command) => update(state, {
82
+ [NgssmDataStateSpecification.featureStateKey]: command
83
+ });
84
+ let NgssmDataStateSpecification = class NgssmDataStateSpecification {
85
+ static { this.featureStateKey = 'ngssm-data-state'; }
86
+ static { this.initialState = {
87
+ dataSourceValues: {},
88
+ dataSources: {}
89
+ }; }
90
+ };
91
+ NgssmDataStateSpecification = __decorate([
92
+ NgSsmFeatureState({
93
+ featureStateKey: NgssmDataStateSpecification.featureStateKey,
94
+ initialState: NgssmDataStateSpecification.initialState
95
+ })
96
+ ], NgssmDataStateSpecification);
97
+
98
+ const selectNgssmDataSourceValue = (state, key) => {
99
+ return (selectNgssmDataState(state).dataSourceValues[key] ?? {
100
+ status: NgssmDataSourceValueStatus.notRegistered
101
+ });
102
+ };
103
+
104
+ class DataSourcesInitializationReducer {
105
+ constructor() {
106
+ this.processedActions = [NgssmDataActionType.initDataSourceValues];
107
+ }
108
+ updateState(state, action) {
109
+ if (action.type === NgssmDataActionType.initDataSourceValues) {
110
+ const initDataSourceValues = action;
111
+ const dataSourceValues = {};
112
+ const dataSources = {};
113
+ initDataSourceValues.dataSources.forEach((dataSource) => {
114
+ dataSourceValues[dataSource.key] = {
115
+ status: NgssmDataSourceValueStatus.none
116
+ };
117
+ if (dataSource.dataLifetimeInSeconds) {
118
+ dataSourceValues[dataSource.key].dataLifetimeInSeconds = dataSource.dataLifetimeInSeconds;
119
+ }
120
+ dataSources[dataSource.key] = dataSource;
121
+ });
122
+ return updateNgssmDataState(state, {
123
+ dataSourceValues: { $merge: dataSourceValues },
124
+ dataSources: { $merge: dataSources }
125
+ });
126
+ }
127
+ return state;
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourcesInitializationReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
130
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourcesInitializationReducer }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourcesInitializationReducer, decorators: [{
133
+ type: Injectable
134
+ }] });
135
+
136
+ class DataSourceValueReducer {
137
+ constructor() {
138
+ this.processedActions = [NgssmDataActionType.loadDataSourceValue, NgssmDataActionType.setDataSourceValue];
139
+ }
140
+ updateState(state, action) {
141
+ switch (action.type) {
142
+ case NgssmDataActionType.loadDataSourceValue: {
143
+ const loadDataSourceValue = action;
144
+ const dataSourceValue = selectNgssmDataState(state).dataSourceValues[loadDataSourceValue.key];
145
+ if (!dataSourceValue) {
146
+ break;
147
+ }
148
+ let shouldReload = false;
149
+ if (dataSourceValue.status === NgssmDataSourceValueStatus.loaded) {
150
+ if (loadDataSourceValue.forceReload === true || !dataSourceValue.dataLifetimeInSeconds || !dataSourceValue.lastLoadingDate) {
151
+ shouldReload = true;
152
+ }
153
+ else {
154
+ const dataLifetime = DateTime.now().diff(dataSourceValue.lastLoadingDate, 'second');
155
+ if ((dataLifetime.toObject().seconds ?? 0) > dataSourceValue.dataLifetimeInSeconds) {
156
+ shouldReload = true;
157
+ }
158
+ }
159
+ }
160
+ else {
161
+ shouldReload = true;
162
+ }
163
+ if (shouldReload) {
164
+ return updateNgssmDataState(state, {
165
+ dataSourceValues: {
166
+ [loadDataSourceValue.key]: {
167
+ status: { $set: NgssmDataSourceValueStatus.loading }
168
+ }
169
+ }
170
+ });
171
+ }
172
+ break;
173
+ }
174
+ case NgssmDataActionType.setDataSourceValue: {
175
+ const ngssmSetDataSourceValueAction = action;
176
+ const dataSourceValue = selectNgssmDataState(state).dataSourceValues[ngssmSetDataSourceValueAction.key];
177
+ if (!dataSourceValue) {
178
+ break;
179
+ }
180
+ return updateNgssmDataState(state, {
181
+ dataSourceValues: {
182
+ [ngssmSetDataSourceValueAction.key]: {
183
+ status: { $set: ngssmSetDataSourceValueAction.status },
184
+ value: { $set: ngssmSetDataSourceValueAction.value },
185
+ lastLoadingDate: { $set: DateTime.now() }
186
+ }
187
+ }
188
+ });
189
+ }
190
+ }
191
+ return state;
192
+ }
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourceValueReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
194
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourceValueReducer }); }
195
+ }
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataSourceValueReducer, decorators: [{
197
+ type: Injectable
198
+ }] });
199
+
200
+ class DataLoadingEffect {
201
+ constructor(logger, injector) {
202
+ this.logger = logger;
203
+ this.injector = injector;
204
+ this.processedActions = [NgssmDataActionType.loadDataSourceValue];
205
+ }
206
+ processAction(store, state, action) {
207
+ if (action.type === NgssmDataActionType.loadDataSourceValue) {
208
+ const key = action.key;
209
+ const dataSource = selectNgssmDataState(state).dataSources[key];
210
+ if (!dataSource) {
211
+ this.logger.error(`No data source setup for key '${key}'`);
212
+ return;
213
+ }
214
+ const dataSourceValue = selectNgssmDataState(state).dataSourceValues[key];
215
+ if (dataSourceValue?.status !== NgssmDataSourceValueStatus.loading) {
216
+ this.logger.information(`Data source value for '${key}' is not in '${NgssmDataSourceValueStatus.loading}' status: '${dataSourceValue?.status}'`);
217
+ return;
218
+ }
219
+ runInInjectionContext(this.injector, () => {
220
+ dataSource.dataLoadingFunc(state, dataSourceValue.parameter).subscribe({
221
+ next: (value) => store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.loaded, value)),
222
+ error: (error) => {
223
+ this.logger.error(`Unable to load data for '${key}'`, error);
224
+ store.dispatchAction(new NgssmSetDataSourceValueAction(key, NgssmDataSourceValueStatus.error));
225
+ }
226
+ });
227
+ });
228
+ }
229
+ }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataLoadingEffect, deps: [{ token: i1.Logger }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
231
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataLoadingEffect }); }
232
+ }
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: DataLoadingEffect, decorators: [{
234
+ type: Injectable
235
+ }], ctorParameters: () => [{ type: i1.Logger }, { type: i0.EnvironmentInjector }] });
236
+
237
+ class NgssmDataSourceCollection {
238
+ constructor(dataSources) {
239
+ this.dataSources = dataSources;
240
+ }
241
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgssmDataSourceCollection, deps: [{ token: NGSSM_DATA_SOURCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
242
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgssmDataSourceCollection, providedIn: 'root' }); }
243
+ }
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgssmDataSourceCollection, decorators: [{
245
+ type: Injectable,
246
+ args: [{
247
+ providedIn: 'root'
248
+ }]
249
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
250
+ type: Inject,
251
+ args: [NGSSM_DATA_SOURCE]
252
+ }, {
253
+ type: Optional
254
+ }] }] });
255
+ const initDataSourceValues = (store, dataSourceCollection) => {
256
+ return () => {
257
+ const dataSources = dataSourceCollection.dataSources ?? [];
258
+ if (dataSources.length > 0) {
259
+ store.dispatchAction(new NgssmInitDataSourceValuesAction(dataSources));
260
+ }
261
+ };
262
+ };
263
+ const provideNgssmData = () => {
264
+ return makeEnvironmentProviders([
265
+ {
266
+ provide: APP_INITIALIZER,
267
+ useFactory: initDataSourceValues,
268
+ deps: [Store, NgssmDataSourceCollection],
269
+ multi: true
270
+ },
271
+ provideReducers(DataSourcesInitializationReducer, DataSourceValueReducer),
272
+ provideEffects(DataLoadingEffect)
273
+ ]);
274
+ };
275
+
276
+ class IsNgssmDataSourceValueStatusPipe {
277
+ transform(value, ...args) {
278
+ const key = args[0];
279
+ const status = args[1];
280
+ return selectNgssmDataSourceValue(value, key).status === status;
281
+ }
282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
283
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, isStandalone: true, name: "isNgssmDataSourceValueStatus" }); }
284
+ }
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IsNgssmDataSourceValueStatusPipe, decorators: [{
286
+ type: Pipe,
287
+ args: [{
288
+ name: 'isNgssmDataSourceValueStatus',
289
+ standalone: true
290
+ }]
291
+ }] });
292
+
293
+ /*
294
+ * Public API Surface of ngssm-data
295
+ */
296
+
297
+ /**
298
+ * Generated bundle index. Do not edit.
299
+ */
300
+
301
+ export { IsNgssmDataSourceValueStatusPipe, NGSSM_DATA_SOURCE, NgssmDataActionType, NgssmDataSourceCollection, NgssmDataSourceValueAction, NgssmDataSourceValueStatus, NgssmDataStateSpecification, NgssmInitDataSourceValuesAction, NgssmLoadDataSourceValueAction, NgssmSetDataSourceValueAction, ngssmLoadDataSourceValue, provideNgssmData, provideNgssmDataSource, selectNgssmDataSourceValue, selectNgssmDataState, updateNgssmDataState };
302
+ //# sourceMappingURL=ngssm-data.mjs.map
@@ -0,0 +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-init-data-source-values.action.ts","../../../projects/ngssm-data/src/lib/ngssm-data/actions/ngssm-set-data-source-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-initialization.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/public-api.ts","../../../projects/ngssm-data/src/ngssm-data.ts"],"sourcesContent":["export enum NgssmDataActionType {\n initDataSourceValues = '[NgssmDataActionType] initDataSourceValues',\n loadDataSourceValue = '[NgssmDataActionType] loadDataSourceValue',\n setDataSourceParameter = '[NgssmDataActionType] setDataSourceParameter',\n clearDataSourceValue = '[NgssmDataActionType] clearDataSourceValue',\n setDataSourceValue = '[NgssmDataActionType] setDataSourceValue'\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';\n\nexport class NgssmLoadDataSourceValueAction extends NgssmDataSourceValueAction {\n constructor(\n key: string,\n public readonly forceReload?: boolean\n ) {\n super(NgssmDataActionType.loadDataSourceValue, key);\n }\n}\n","import { Action } from 'ngssm-store';\n\nimport { NgssmDataActionType } from './ngssm-data-action-type';\nimport { NgssmDataSource } from '../model';\n\nexport class NgssmInitDataSourceValuesAction implements Action {\n public readonly type: string = NgssmDataActionType.initDataSourceValues;\n\n constructor(public readonly dataSources: NgssmDataSource[]) {}\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 { 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): 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 NgssmDataSourceValue<TData = any, TParameter = any> {\n status: NgssmDataSourceValueStatus;\n value?: TData;\n parameter?: TParameter;\n lastLoadingDate?: DateTime;\n dataLifetimeInSeconds?: number;\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 { 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","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } from 'ngssm-store';\n\nimport { NgssmDataActionType, NgssmInitDataSourceValuesAction } from '../actions';\nimport { NgssmDataSource, NgssmDataSourceValue, NgssmDataSourceValueStatus } from '../model';\nimport { updateNgssmDataState } from '../state';\n\n@Injectable()\nexport class DataSourcesInitializationReducer implements Reducer {\n public readonly processedActions: string[] = [NgssmDataActionType.initDataSourceValues];\n\n public updateState(state: State, action: Action): State {\n if (action.type === NgssmDataActionType.initDataSourceValues) {\n const initDataSourceValues = action as NgssmInitDataSourceValuesAction;\n const dataSourceValues: { [key: string]: NgssmDataSourceValue } = {};\n const dataSources: { [key: string]: NgssmDataSource } = {};\n initDataSourceValues.dataSources.forEach((dataSource) => {\n dataSourceValues[dataSource.key] = {\n status: NgssmDataSourceValueStatus.none\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 { NgssmDataActionType, NgssmLoadDataSourceValueAction, NgssmSetDataSourceValueAction } from '../actions';\nimport { selectNgssmDataState, updateNgssmDataState } from '../state';\nimport { NgssmDataSourceValueStatus } from '../model';\n\n@Injectable()\nexport class DataSourceValueReducer implements Reducer {\n public readonly processedActions: string[] = [NgssmDataActionType.loadDataSourceValue, NgssmDataActionType.setDataSourceValue];\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 if (dataSourceValue.status === NgssmDataSourceValueStatus.loaded) {\n if (loadDataSourceValue.forceReload === true || !dataSourceValue.dataLifetimeInSeconds || !dataSourceValue.lastLoadingDate) {\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 return updateNgssmDataState(state, {\n dataSourceValues: {\n [loadDataSourceValue.key]: {\n status: { $set: NgssmDataSourceValueStatus.loading }\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\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 { NgssmDataActionType, NgssmDataSourceValueAction, NgssmSetDataSourceValueAction } from '../actions';\nimport { selectNgssmDataState } from '../state';\nimport { NgssmDataSourceValueStatus } from '../model';\n\n@Injectable()\nexport class DataLoadingEffect implements Effect {\n public readonly processedActions: string[] = [NgssmDataActionType.loadDataSourceValue];\n\n constructor(\n private logger: Logger,\n private injector: EnvironmentInjector\n ) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n if (action.type === NgssmDataActionType.loadDataSourceValue) {\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 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 }\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 { NgssmInitDataSourceValuesAction } from './actions';\nimport { DataSourceValueReducer, DataSourcesInitializationReducer } from './reducers';\nimport { DataLoadingEffect } from './effects';\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 NgssmInitDataSourceValuesAction(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(DataSourcesInitializationReducer, 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[]): unknown {\n const key = args[0];\n const status = args[1] as NgssmDataSourceValueStatus;\n return selectNgssmDataSourceValue(value, key).status === status;\n }\n}\n","/*\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":";;;;;;;;IAAY,oBAMX;AAND,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,4CAAmE,CAAA;AACnE,IAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,2CAAiE,CAAA;AACjE,IAAA,mBAAA,CAAA,wBAAA,CAAA,GAAA,8CAAuE,CAAA;AACvE,IAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,4CAAmE,CAAA;AACnE,IAAA,mBAAA,CAAA,oBAAA,CAAA,GAAA,0CAA+D,CAAA;AACjE,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,GAM9B,EAAA,CAAA,CAAA;;MCJY,0BAA0B,CAAA;IACrC,WACkB,CAAA,IAAY,EACZ,GAAW,EAAA;QADX,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;KACzB;AACL;;ACJK,MAAO,8BAA+B,SAAQ,0BAA0B,CAAA;IAC5E,WACE,CAAA,GAAW,EACK,WAAqB,EAAA;AAErC,QAAA,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAFpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAU;KAGtC;AACF;;MCLY,+BAA+B,CAAA;AAG1C,IAAA,WAAA,CAA4B,WAA8B,EAAA;QAA9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;AAF1C,QAAA,IAAA,CAAA,IAAI,GAAW,mBAAmB,CAAC,oBAAoB,CAAC;KAEV;AAC/D;;ACLK,MAAO,6BAA2C,SAAQ,0BAA0B,CAAA;AACxF,IAAA,WAAA,CACE,GAAW,EACK,MAAkC,EAClC,KAAa,EAAA;AAE7B,QAAA,KAAK,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAHnC,IAAM,CAAA,MAAA,GAAN,MAAM,CAA4B;QAClC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;KAG9B;AACF;;MCIY,iBAAiB,GAAG,IAAI,cAAc,CAAkB,mBAAmB,EAAE;AAE7E,MAAA,sBAAsB,GAAG,CACpC,GAAW,EACX,WAAgD,EAChD,qBAA8B,KACN;AACxB,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,MAAK;AACf,gBAAA,MAAM,UAAU,GAAuC;oBACrD,GAAG;oBACH,qBAAqB;AACrB,oBAAA,eAAe,EAAE,WAAW;iBAC7B,CAAC;AACF,gBAAA,OAAO,UAAU,CAAC;aACnB;AACD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,CAAC,CAAC;AACL,EAAE;AAEW,MAAA,wBAAwB,GAAG,CAAC,GAAW,EAAE,WAAA,GAAuB,KAAK,KAAqB;AACrG,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,8BAA8B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AACnF,QAAA,OAAO,IAAI,CAAC;AACd,KAAC,CAAC;AACJ;;IC1CY,2BAMX;AAND,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,0BAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,0BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,0BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,0BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EANW,0BAA0B,KAA1B,0BAA0B,GAMrC,EAAA,CAAA,CAAA;;ACHM,MAAM,oBAAoB,GAAG,CAAC,KAAY,KAAqB,KAAK,CAAC,2BAA2B,CAAC,eAAe,EAAoB;AAEpI,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAE,OAAoC,KACrF,MAAM,CAAC,KAAK,EAAE;AACZ,IAAA,CAAC,2BAA2B,CAAC,eAAe,GAAG,OAAO;AACvD,CAAA,EAAE;AAWQ,IAAA,2BAA2B,GAAjC,MAAM,2BAA2B,CAAA;aACf,IAAe,CAAA,eAAA,GAAG,kBAAH,CAAsB,EAAA;AACrC,IAAA,SAAA,IAAA,CAAA,YAAY,GAAmB;AACpD,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,WAAW,EAAE,EAAE;AAChB,KAHkC,CAGjC,EAAA;;AALS,2BAA2B,GAAA,UAAA,CAAA;AAJvC,IAAA,iBAAiB,CAAC;QACjB,eAAe,EAAE,2BAA2B,CAAC,eAAe;QAC5D,YAAY,EAAE,2BAA2B,CAAC,YAAY;KACvD,CAAC;AACW,CAAA,EAAA,2BAA2B,CAMvC;;MCvBY,0BAA0B,GAAG,CACxC,KAAY,EACZ,GAAW,KACoC;IAC/C,QACE,oBAAoB,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI;QACnD,MAAM,EAAE,0BAA0B,CAAC,aAAa;AACjD,KAAA,EACD;AACJ;;MCJa,gCAAgC,CAAA;AAD7C,IAAA,WAAA,GAAA;AAEkB,QAAA,IAAA,CAAA,gBAAgB,GAAa,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;AA2BzF,KAAA;IAzBQ,WAAW,CAAC,KAAY,EAAE,MAAc,EAAA;AAC7C,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,oBAAoB,EAAE;YAC5D,MAAM,oBAAoB,GAAG,MAAyC,CAAC;YACvE,MAAM,gBAAgB,GAA4C,EAAE,CAAC;YACrE,MAAM,WAAW,GAAuC,EAAE,CAAC;YAC3D,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;AACtD,gBAAA,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;oBACjC,MAAM,EAAE,0BAA0B,CAAC,IAAI;iBACxC,CAAC;gBAEF,IAAI,UAAU,CAAC,qBAAqB,EAAE;oBACpC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAC;AAC3F,iBAAA;AAED,gBAAA,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAC3C,aAAC,CAAC,CAAC;YAEH,OAAO,oBAAoB,CAAC,KAAK,EAAE;AACjC,gBAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE;AAC9C,gBAAA,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AACrC,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;8GA3BU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAhC,gCAAgC,EAAA,CAAA,CAAA,EAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C,UAAU;;;MCGE,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAEkB,IAAgB,CAAA,gBAAA,GAAa,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AA4DhI,KAAA;IA1DQ,WAAW,CAAC,KAAY,EAAE,MAAc,EAAA;QAC7C,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,mBAAmB,CAAC,mBAAmB,EAAE;gBAC5C,MAAM,mBAAmB,GAAG,MAAwC,CAAC;AACrE,gBAAA,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9F,IAAI,CAAC,eAAe,EAAE;oBACpB,MAAM;AACP,iBAAA;gBAED,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,gBAAA,IAAI,eAAe,CAAC,MAAM,KAAK,0BAA0B,CAAC,MAAM,EAAE;AAChE,oBAAA,IAAI,mBAAmB,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,qBAAqB,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;wBAC1H,YAAY,GAAG,IAAI,CAAC;AACrB,qBAAA;AAAM,yBAAA;AACL,wBAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AACpF,wBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,qBAAqB,EAAE;4BAClF,YAAY,GAAG,IAAI,CAAC;AACrB,yBAAA;AACF,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,YAAY,GAAG,IAAI,CAAC;AACrB,iBAAA;AAED,gBAAA,IAAI,YAAY,EAAE;oBAChB,OAAO,oBAAoB,CAAC,KAAK,EAAE;AACjC,wBAAA,gBAAgB,EAAE;AAChB,4BAAA,CAAC,mBAAmB,CAAC,GAAG,GAAG;AACzB,gCAAA,MAAM,EAAE,EAAE,IAAI,EAAE,0BAA0B,CAAC,OAAO,EAAE;AACrD,6BAAA;AACF,yBAAA;AACF,qBAAA,CAAC,CAAC;AACJ,iBAAA;gBAED,MAAM;AACP,aAAA;AAED,YAAA,KAAK,mBAAmB,CAAC,kBAAkB,EAAE;gBAC3C,MAAM,6BAA6B,GAAG,MAAuC,CAAC;AAC9E,gBAAA,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;gBACxG,IAAI,CAAC,eAAe,EAAE;oBACpB,MAAM;AACP,iBAAA;gBAED,OAAO,oBAAoB,CAAC,KAAK,EAAE;AACjC,oBAAA,gBAAgB,EAAE;AAChB,wBAAA,CAAC,6BAA6B,CAAC,GAAG,GAAG;AACnC,4BAAA,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,CAAC,MAAM,EAAE;AACtD,4BAAA,KAAK,EAAE,EAAE,IAAI,EAAE,6BAA6B,CAAC,KAAK,EAAE;4BACpD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE;AAC1C,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;8GA5DU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;MCDE,iBAAiB,CAAA;IAG5B,WACU,CAAA,MAAc,EACd,QAA6B,EAAA;QAD7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAqB;AAJvB,QAAA,IAAA,CAAA,gBAAgB,GAAa,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;KAKnF;AAEG,IAAA,aAAa,CAAC,KAAY,EAAE,KAAY,EAAE,MAAc,EAAA;AAC7D,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,mBAAmB,EAAE;AAC3D,YAAA,MAAM,GAAG,GAAI,MAAqC,CAAC,GAAG,CAAC;YACvD,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAiC,8BAAA,EAAA,GAAG,CAAG,CAAA,CAAA,CAAC,CAAC;gBAC3D,OAAO;AACR,aAAA;YAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC1E,YAAA,IAAI,eAAe,EAAE,MAAM,KAAK,0BAA0B,CAAC,OAAO,EAAE;AAClE,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CACrB,0BAA0B,GAAG,CAAA,aAAA,EAAgB,0BAA0B,CAAC,OAAO,CAAc,WAAA,EAAA,eAAe,EAAE,MAAM,CAAA,CAAA,CAAG,CACxH,CAAC;gBACF,OAAO;AACR,aAAA;AAED,YAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;gBACxC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;oBACrE,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,CAAC,IAAI,6BAA6B,CAAC,GAAG,EAAE,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvH,oBAAA,KAAK,EAAE,CAAC,KAAK,KAAI;wBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA4B,yBAAA,EAAA,GAAG,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;AAC7D,wBAAA,KAAK,CAAC,cAAc,CAAC,IAAI,6BAA6B,CAAC,GAAG,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;qBAChG;AACF,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;8GAnCU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MCIE,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAA0D,WAA8B,EAAA;QAA9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;KAAI;AADjF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAChB,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAD1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAEc,MAAM;2BAAC,iBAAiB,CAAA;;0BAAG,QAAQ;;AAGlD,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAE,oBAA+C,KAAkB;AAC3G,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,IAAI,EAAE,CAAC;AAC3D,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,KAAK,CAAC,cAAc,CAAC,IAAI,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE,SAAA;AACH,KAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,MAA2B;AACzD,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,oBAAoB;AAChC,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,yBAAyB,CAAC;AACxC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACD,QAAA,eAAe,CAAC,gCAAgC,EAAE,sBAAsB,CAAC;QACzE,cAAc,CAAC,iBAAiB,CAAC;AAClC,KAAA,CAAC,CAAC;AACL;;MCzBa,gCAAgC,CAAA;AACpC,IAAA,SAAS,CAAC,KAAY,EAAE,GAAG,IAAc,EAAA;AAC9C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAA+B,CAAC;QACrD,OAAO,0BAA0B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;KACjE;8GALU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,8BAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,8BAA8B;AACpC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACVD;;AAEG;;ACFH;;AAEG;;;;"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="ngssm-data" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ export * from './ngssm-data-action-type';
2
+ export * from './ngssm-data-source-value.action';
3
+ export * from './ngssm-load-data-source-value.action';
4
+ export * from './ngssm-init-data-source-values.action';
5
+ export * from './ngssm-set-data-source-value.action';
@@ -0,0 +1,7 @@
1
+ export declare enum NgssmDataActionType {
2
+ initDataSourceValues = "[NgssmDataActionType] initDataSourceValues",
3
+ loadDataSourceValue = "[NgssmDataActionType] loadDataSourceValue",
4
+ setDataSourceParameter = "[NgssmDataActionType] setDataSourceParameter",
5
+ clearDataSourceValue = "[NgssmDataActionType] clearDataSourceValue",
6
+ setDataSourceValue = "[NgssmDataActionType] setDataSourceValue"
7
+ }
@@ -0,0 +1,6 @@
1
+ import { Action } from 'ngssm-store';
2
+ export declare class NgssmDataSourceValueAction implements Action {
3
+ readonly type: string;
4
+ readonly key: string;
5
+ constructor(type: string, key: string);
6
+ }
@@ -0,0 +1,7 @@
1
+ import { Action } from 'ngssm-store';
2
+ import { NgssmDataSource } from '../model';
3
+ export declare class NgssmInitDataSourceValuesAction implements Action {
4
+ readonly dataSources: NgssmDataSource[];
5
+ readonly type: string;
6
+ constructor(dataSources: NgssmDataSource[]);
7
+ }
@@ -0,0 +1,5 @@
1
+ import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';
2
+ export declare class NgssmLoadDataSourceValueAction extends NgssmDataSourceValueAction {
3
+ readonly forceReload?: boolean | undefined;
4
+ constructor(key: string, forceReload?: boolean | undefined);
5
+ }
@@ -0,0 +1,7 @@
1
+ import { NgssmDataSourceValueAction } from './ngssm-data-source-value.action';
2
+ import { NgssmDataSourceValueStatus } from '../model';
3
+ export declare class NgssmSetDataSourceValueAction<TData = any> extends NgssmDataSourceValueAction {
4
+ readonly status: NgssmDataSourceValueStatus;
5
+ readonly value?: TData | undefined;
6
+ constructor(key: string, status: NgssmDataSourceValueStatus, value?: TData | undefined);
7
+ }
@@ -0,0 +1 @@
1
+ export * from './is-ngssm-data-source-value-status.pipe';
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { State } from 'ngssm-store';
3
+ import * as i0 from "@angular/core";
4
+ export declare class IsNgssmDataSourceValueStatusPipe implements PipeTransform {
5
+ transform(value: State, ...args: string[]): unknown;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsNgssmDataSourceValueStatusPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsNgssmDataSourceValueStatusPipe, "isNgssmDataSourceValueStatus", true>;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { EnvironmentInjector } from '@angular/core';
2
+ import { Effect, Store, State, Action, Logger } from 'ngssm-store';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DataLoadingEffect implements Effect {
5
+ private logger;
6
+ private injector;
7
+ readonly processedActions: string[];
8
+ constructor(logger: Logger, injector: EnvironmentInjector);
9
+ processAction(store: Store, state: State, action: Action): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataLoadingEffect, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<DataLoadingEffect>;
12
+ }
@@ -0,0 +1 @@
1
+ export * from './data-loading.effect';
@@ -0,0 +1,2 @@
1
+ export * from './ngssm-data-source';
2
+ export * from './ngssm-data-source-value';
@@ -0,0 +1,15 @@
1
+ import { DateTime } from 'luxon';
2
+ export declare enum NgssmDataSourceValueStatus {
3
+ none = "none",
4
+ notRegistered = "notRegistered",
5
+ loading = "loading",
6
+ loaded = "loaded",
7
+ error = "error"
8
+ }
9
+ export interface NgssmDataSourceValue<TData = any, TParameter = any> {
10
+ status: NgssmDataSourceValueStatus;
11
+ value?: TData;
12
+ parameter?: TParameter;
13
+ lastLoadingDate?: DateTime;
14
+ dataLifetimeInSeconds?: number;
15
+ }
@@ -0,0 +1,14 @@
1
+ import { EnvironmentProviders, InjectionToken } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { State } from 'ngssm-store';
4
+ export interface NgssmDataLoading<TData = any, TParameter = any> {
5
+ (state: State, parameter?: TParameter): Observable<TData>;
6
+ }
7
+ export interface NgssmDataSource<TData = any, TParameter = any> {
8
+ key: string;
9
+ dataLifetimeInSeconds?: number;
10
+ dataLoadingFunc: NgssmDataLoading<TData, TParameter>;
11
+ }
12
+ export declare const NGSSM_DATA_SOURCE: InjectionToken<NgssmDataSource<any, any>>;
13
+ export declare const provideNgssmDataSource: <TData = any, TParameter = any>(key: string, loadingFunc: NgssmDataLoading<TData, TParameter>, dataLifetimeInSeconds?: number) => EnvironmentProviders;
14
+ export declare const ngssmLoadDataSourceValue: (key: string, forceReload?: boolean) => (() => boolean);
@@ -0,0 +1,10 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { NgssmDataSource } from './model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NgssmDataSourceCollection {
5
+ dataSources: NgssmDataSource[];
6
+ constructor(dataSources: NgssmDataSource[]);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgssmDataSourceCollection, [{ optional: true; }]>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<NgssmDataSourceCollection>;
9
+ }
10
+ export declare const provideNgssmData: () => EnvironmentProviders;
@@ -0,0 +1,5 @@
1
+ export * from './provide-ngssm-data';
2
+ export * from './actions';
3
+ export * from './state';
4
+ export * from './model';
5
+ export * from './components';
@@ -0,0 +1,8 @@
1
+ import { Reducer, State, Action } from 'ngssm-store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DataSourceValueReducer implements Reducer {
4
+ readonly processedActions: string[];
5
+ updateState(state: State, action: Action): State;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceValueReducer, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<DataSourceValueReducer>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { Reducer, State, Action } from 'ngssm-store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DataSourcesInitializationReducer implements Reducer {
4
+ readonly processedActions: string[];
5
+ updateState(state: State, action: Action): State;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataSourcesInitializationReducer, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<DataSourcesInitializationReducer>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './data-sources-initialization.reducer';
2
+ export * from './data-source-value.reducer';
@@ -0,0 +1,2 @@
1
+ export * from './ngssm-data.state';
2
+ export * from './selectors';
@@ -0,0 +1,17 @@
1
+ import { Spec } from 'immutability-helper';
2
+ import { State } from 'ngssm-store';
3
+ import { NgssmDataSource, NgssmDataSourceValue } from '../model';
4
+ export declare const selectNgssmDataState: (state: State) => NgssmDataState;
5
+ export declare const updateNgssmDataState: (state: State, command: Spec<NgssmDataState, never>) => State;
6
+ export interface NgssmDataState {
7
+ dataSourceValues: {
8
+ [key: string]: NgssmDataSourceValue;
9
+ };
10
+ dataSources: {
11
+ [key: string]: NgssmDataSource;
12
+ };
13
+ }
14
+ export declare class NgssmDataStateSpecification {
15
+ static readonly featureStateKey = "ngssm-data-state";
16
+ static readonly initialState: NgssmDataState;
17
+ }
@@ -0,0 +1,3 @@
1
+ import { State } from 'ngssm-store';
2
+ import { NgssmDataSourceValue } from '../model';
3
+ export declare const selectNgssmDataSourceValue: <TDataType = any, TParameter = any>(state: State, key: string) => NgssmDataSourceValue<TDataType, TParameter>;
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "ngssm-data",
3
+ "version": "17.0.3",
4
+ "description": "NgSsm - Library used to facilitate the management of data get from remote service or computed locally.",
5
+ "author": "Lion Marc",
6
+ "license": "MIT",
7
+ "peerDependencies": {
8
+ "@angular/common": "^17.0.0",
9
+ "@angular/core": "^17.0.0",
10
+ "ngssm-store": ">=17.0.0"
11
+ },
12
+ "dependencies": {
13
+ "tslib": "^2.3.0"
14
+ },
15
+ "sideEffects": false,
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/LionMarc/ng-simple-state-management",
19
+ "directory": "projects/ngssm-data"
20
+ },
21
+ "module": "fesm2022/ngssm-data.mjs",
22
+ "typings": "index.d.ts",
23
+ "exports": {
24
+ "./package.json": {
25
+ "default": "./package.json"
26
+ },
27
+ ".": {
28
+ "types": "./index.d.ts",
29
+ "esm2022": "./esm2022/ngssm-data.mjs",
30
+ "esm": "./esm2022/ngssm-data.mjs",
31
+ "default": "./fesm2022/ngssm-data.mjs"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/ngssm-data/public-api';