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.
- package/README.md +3 -0
- package/esm2022/lib/ngssm-data/actions/index.mjs +6 -0
- package/esm2022/lib/ngssm-data/actions/ngssm-data-action-type.mjs +9 -0
- package/esm2022/lib/ngssm-data/actions/ngssm-data-source-value.action.mjs +7 -0
- package/esm2022/lib/ngssm-data/actions/ngssm-init-data-source-values.action.mjs +8 -0
- package/esm2022/lib/ngssm-data/actions/ngssm-load-data-source-value.action.mjs +9 -0
- package/esm2022/lib/ngssm-data/actions/ngssm-set-data-source-value.action.mjs +10 -0
- package/esm2022/lib/ngssm-data/components/index.mjs +2 -0
- package/esm2022/lib/ngssm-data/components/is-ngssm-data-source-value-status.pipe.mjs +20 -0
- package/esm2022/lib/ngssm-data/effects/data-loading.effect.mjs +43 -0
- package/esm2022/lib/ngssm-data/effects/index.mjs +2 -0
- package/esm2022/lib/ngssm-data/model/index.mjs +3 -0
- package/esm2022/lib/ngssm-data/model/ngssm-data-source-value.mjs +9 -0
- package/esm2022/lib/ngssm-data/model/ngssm-data-source.mjs +27 -0
- package/esm2022/lib/ngssm-data/provide-ngssm-data.mjs +46 -0
- package/esm2022/lib/ngssm-data/public-api.mjs +6 -0
- package/esm2022/lib/ngssm-data/reducers/data-source-value.reducer.mjs +70 -0
- package/esm2022/lib/ngssm-data/reducers/data-sources-initialization.reducer.mjs +37 -0
- package/esm2022/lib/ngssm-data/reducers/index.mjs +3 -0
- package/esm2022/lib/ngssm-data/state/index.mjs +3 -0
- package/esm2022/lib/ngssm-data/state/ngssm-data.state.mjs +22 -0
- package/esm2022/lib/ngssm-data/state/selectors.mjs +8 -0
- package/esm2022/ngssm-data.mjs +5 -0
- package/esm2022/public-api.mjs +5 -0
- package/fesm2022/ngssm-data.mjs +302 -0
- package/fesm2022/ngssm-data.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/ngssm-data/actions/index.d.ts +5 -0
- package/lib/ngssm-data/actions/ngssm-data-action-type.d.ts +7 -0
- package/lib/ngssm-data/actions/ngssm-data-source-value.action.d.ts +6 -0
- package/lib/ngssm-data/actions/ngssm-init-data-source-values.action.d.ts +7 -0
- package/lib/ngssm-data/actions/ngssm-load-data-source-value.action.d.ts +5 -0
- package/lib/ngssm-data/actions/ngssm-set-data-source-value.action.d.ts +7 -0
- package/lib/ngssm-data/components/index.d.ts +1 -0
- package/lib/ngssm-data/components/is-ngssm-data-source-value-status.pipe.d.ts +8 -0
- package/lib/ngssm-data/effects/data-loading.effect.d.ts +12 -0
- package/lib/ngssm-data/effects/index.d.ts +1 -0
- package/lib/ngssm-data/model/index.d.ts +2 -0
- package/lib/ngssm-data/model/ngssm-data-source-value.d.ts +15 -0
- package/lib/ngssm-data/model/ngssm-data-source.d.ts +14 -0
- package/lib/ngssm-data/provide-ngssm-data.d.ts +10 -0
- package/lib/ngssm-data/public-api.d.ts +5 -0
- package/lib/ngssm-data/reducers/data-source-value.reducer.d.ts +8 -0
- package/lib/ngssm-data/reducers/data-sources-initialization.reducer.d.ts +8 -0
- package/lib/ngssm-data/reducers/index.d.ts +2 -0
- package/lib/ngssm-data/state/index.d.ts +2 -0
- package/lib/ngssm-data/state/ngssm-data.state.d.ts +17 -0
- package/lib/ngssm-data/state/selectors.d.ts +3 -0
- package/package.json +34 -0
- package/public-api.d.ts +1 -0
package/README.md
ADDED
|
@@ -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":"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"}
|
package/index.d.ts
ADDED
|
@@ -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,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,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,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,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
|
+
}
|
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
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/ngssm-data/public-api';
|