ngssm-store 17.3.2 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/esm2022/caching/src/reducers/cached-item.reducer.mjs +3 -3
  2. package/esm2022/lib/actions/index.mjs +4 -0
  3. package/esm2022/lib/actions/ngssm-register-feature-state.action.mjs +9 -0
  4. package/esm2022/lib/actions/ngssm-store-action-type.mjs +6 -0
  5. package/esm2022/lib/actions/ngssm-unregister-feature-state.action.mjs +8 -0
  6. package/esm2022/lib/feature-state/feature-state-specification.mjs +3 -0
  7. package/esm2022/lib/feature-state/feature-state.reducer.mjs +32 -0
  8. package/esm2022/lib/feature-state/index.mjs +5 -0
  9. package/esm2022/lib/feature-state/provide-feature-state.mjs +21 -0
  10. package/esm2022/lib/feature-state/provide-ngssm-feature-state.directive.mjs +34 -0
  11. package/esm2022/lib/logging/console-appender.mjs +3 -3
  12. package/esm2022/lib/logging/logger.mjs +3 -3
  13. package/esm2022/lib/ngssm-component.mjs +3 -3
  14. package/esm2022/lib/provide-ngssm-store.mjs +7 -0
  15. package/esm2022/lib/state.mjs +1 -1
  16. package/esm2022/lib/store.mjs +4 -4
  17. package/esm2022/public-api.mjs +4 -2
  18. package/esm2022/visibility/src/components/hide-element.directive.mjs +3 -3
  19. package/esm2022/visibility/src/components/is-element-visible.pipe.mjs +3 -3
  20. package/esm2022/visibility/src/components/show-element.directive.mjs +3 -3
  21. package/esm2022/visibility/src/components/toggle-element-visibility.directive.mjs +3 -3
  22. package/esm2022/visibility/src/components/visibility-toggle-group/visibility-toggle-group.component.mjs +3 -3
  23. package/esm2022/visibility/src/reducers/visibility.reducer.mjs +3 -3
  24. package/fesm2022/ngssm-store-caching.mjs +3 -3
  25. package/fesm2022/ngssm-store-visibility.mjs +18 -18
  26. package/fesm2022/ngssm-store.mjs +115 -13
  27. package/fesm2022/ngssm-store.mjs.map +1 -1
  28. package/lib/actions/index.d.ts +3 -0
  29. package/lib/actions/ngssm-register-feature-state.action.d.ts +7 -0
  30. package/lib/actions/ngssm-store-action-type.d.ts +4 -0
  31. package/lib/actions/ngssm-unregister-feature-state.action.d.ts +6 -0
  32. package/lib/feature-state/feature-state-specification.d.ts +6 -0
  33. package/lib/feature-state/feature-state.reducer.d.ts +10 -0
  34. package/lib/feature-state/index.d.ts +4 -0
  35. package/lib/feature-state/provide-feature-state.d.ts +2 -0
  36. package/lib/feature-state/provide-ngssm-feature-state.directive.d.ts +12 -0
  37. package/lib/provide-ngssm-store.d.ts +2 -0
  38. package/lib/state.d.ts +1 -1
  39. package/lib/store.d.ts +1 -1
  40. package/package.json +1 -1
  41. package/public-api.d.ts +3 -1
  42. package/esm2022/lib/feature-state-specification.mjs +0 -2
  43. package/lib/feature-state-specification.d.ts +0 -6
@@ -40,10 +40,10 @@ export class CachedItemReducer {
40
40
  }
41
41
  return state;
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CachedItemReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CachedItemReducer }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CachedItemReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CachedItemReducer }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CachedItemReducer, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CachedItemReducer, decorators: [{
47
47
  type: Injectable
48
48
  }] });
49
49
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWl0ZW0ucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL2NhY2hpbmcvc3JjL3JlZHVjZXJzL2NhY2hlZC1pdGVtLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQThDLE1BQU0sWUFBWSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRSxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR3hELE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFa0IscUJBQWdCLEdBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUM7S0F1QzdIO0lBckNRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBNkIsQ0FBQztnQkFDMUQsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ2xGLE1BQU0sVUFBVSxHQUFlO3dCQUM3QixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTt3QkFDL0IsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVO3FCQUNsQyxDQUFDO29CQUNGLE9BQU8sdUJBQXVCLENBQUMsS0FBSyxFQUFFO3dCQUNwQyxNQUFNLEVBQUU7NEJBQ04sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7eUJBQzFEO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxFQUFFO29CQUNwQyxNQUFNLEVBQUU7d0JBQ04sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7cUJBQ2hGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxLQUFLLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLE1BQU0scUJBQXFCLEdBQUcsTUFBK0IsQ0FBQztnQkFDOUQsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsYUFBYSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3BGLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBRUQsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUU7b0JBQ3BDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxFQUFFO2lCQUMxRCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F2Q1UsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IE5nc3NtQ2FjaGluZ0FjdGlvblR5cGUsIFNldENhY2hlZEl0ZW1BY3Rpb24sIFVuc2V0Q2FjaGVkSXRlbUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21DYWNoZWRJdGVtLCB1cGRhdGVOZ3NzbUNhY2hpbmdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IENhY2hlZEl0ZW0sIENhY2hlZEl0ZW1TdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZWRJdGVtUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbTmdzc21DYWNoaW5nQWN0aW9uVHlwZS5zZXRDYWNoZWRJdGVtLCBOZ3NzbUNhY2hpbmdBY3Rpb25UeXBlLnVuc2V0Q2FjaGVkSXRlbV07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbUNhY2hpbmdBY3Rpb25UeXBlLnNldENhY2hlZEl0ZW06IHtcbiAgICAgICAgY29uc3Qgc2V0Q2FjaGVkSXRlbUFjdGlvbiA9IGFjdGlvbiBhcyBTZXRDYWNoZWRJdGVtQWN0aW9uO1xuICAgICAgICBpZiAoc2VsZWN0Tmdzc21DYWNoZWRJdGVtKHN0YXRlLCBzZXRDYWNoZWRJdGVtQWN0aW9uLmNhY2hlZEl0ZW1LZXkpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCBjYWNoZWRJdGVtOiBDYWNoZWRJdGVtID0ge1xuICAgICAgICAgICAgc3RhdHVzOiBDYWNoZWRJdGVtU3RhdHVzLm5vdFNldCxcbiAgICAgICAgICAgIC4uLnNldENhY2hlZEl0ZW1BY3Rpb24uY2FjaGVkSXRlbVxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtQ2FjaGluZ1N0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgICBjYWNoZXM6IHtcbiAgICAgICAgICAgICAgW3NldENhY2hlZEl0ZW1BY3Rpb24uY2FjaGVkSXRlbUtleV06IHsgJHNldDogY2FjaGVkSXRlbSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21DYWNoaW5nU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBjYWNoZXM6IHtcbiAgICAgICAgICAgIFtzZXRDYWNoZWRJdGVtQWN0aW9uLmNhY2hlZEl0ZW1LZXldOiB7ICRtZXJnZTogc2V0Q2FjaGVkSXRlbUFjdGlvbi5jYWNoZWRJdGVtIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtQ2FjaGluZ0FjdGlvblR5cGUudW5zZXRDYWNoZWRJdGVtOiB7XG4gICAgICAgIGNvbnN0IHVuc2V0Q2FjaGVkSXRlbUFjdGlvbiA9IGFjdGlvbiBhcyBVbnNldENhY2hlZEl0ZW1BY3Rpb247XG4gICAgICAgIGlmIChzZWxlY3ROZ3NzbUNhY2hlZEl0ZW0oc3RhdGUsIHVuc2V0Q2FjaGVkSXRlbUFjdGlvbi5jYWNoZWRJdGVtS2V5KSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtQ2FjaGluZ1N0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgY2FjaGVzOiB7ICR1bnNldDogW3Vuc2V0Q2FjaGVkSXRlbUFjdGlvbi5jYWNoZWRJdGVtS2V5XSB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './ngssm-store-action-type';
2
+ export * from './ngssm-register-feature-state.action';
3
+ export * from './ngssm-unregister-feature-state.action';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25nc3NtLXN0b3JlLWFjdGlvbi10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tcmVnaXN0ZXItZmVhdHVyZS1zdGF0ZS5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS11bnJlZ2lzdGVyLWZlYXR1cmUtc3RhdGUuYWN0aW9uJztcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { NgssmStoreActionType } from './ngssm-store-action-type';
2
+ export class NgssmRegisterFeatureStateAction {
3
+ constructor(featureStateKey, initialValue) {
4
+ this.featureStateKey = featureStateKey;
5
+ this.initialValue = initialValue;
6
+ this.type = NgssmStoreActionType.registerFeatureState;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVnaXN0ZXItZmVhdHVyZS1zdGF0ZS5hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL2FjdGlvbnMvbmdzc20tcmVnaXN0ZXItZmVhdHVyZS1zdGF0ZS5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsTUFBTSxPQUFPLCtCQUErQjtJQUcxQyxZQUNrQixlQUF1QixFQUN2QixZQUFvQjtRQURwQixvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUp0QixTQUFJLEdBQVcsb0JBQW9CLENBQUMsb0JBQW9CLENBQUM7SUFLdEUsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7IE5nc3NtU3RvcmVBY3Rpb25UeXBlIH0gZnJvbSAnLi9uZ3NzbS1zdG9yZS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBOZ3NzbVJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IE5nc3NtU3RvcmVBY3Rpb25UeXBlLnJlZ2lzdGVyRmVhdHVyZVN0YXRlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmZWF0dXJlU3RhdGVLZXk6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbFZhbHVlOiBvYmplY3RcbiAgKSB7fVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ export var NgssmStoreActionType;
2
+ (function (NgssmStoreActionType) {
3
+ NgssmStoreActionType["registerFeatureState"] = "[NgssmStoreActionType] registerFeatureState";
4
+ NgssmStoreActionType["unregisterFeatureState"] = "[NgssmStoreActionType] unregisterFeatureState";
5
+ })(NgssmStoreActionType || (NgssmStoreActionType = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tc3RvcmUtYWN0aW9uLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL2FjdGlvbnMvbmdzc20tc3RvcmUtYWN0aW9uLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBR1g7QUFIRCxXQUFZLG9CQUFvQjtJQUM5Qiw0RkFBb0UsQ0FBQTtJQUNwRSxnR0FBd0UsQ0FBQTtBQUMxRSxDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE5nc3NtU3RvcmVBY3Rpb25UeXBlIHtcbiAgcmVnaXN0ZXJGZWF0dXJlU3RhdGUgPSAnW05nc3NtU3RvcmVBY3Rpb25UeXBlXSByZWdpc3RlckZlYXR1cmVTdGF0ZScsXG4gIHVucmVnaXN0ZXJGZWF0dXJlU3RhdGUgPSAnW05nc3NtU3RvcmVBY3Rpb25UeXBlXSB1bnJlZ2lzdGVyRmVhdHVyZVN0YXRlJ1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { NgssmStoreActionType } from './ngssm-store-action-type';
2
+ export class NgssmUnregisterFeatureStateAction {
3
+ constructor(featureStateKey) {
4
+ this.featureStateKey = featureStateKey;
5
+ this.type = NgssmStoreActionType.unregisterFeatureState;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tdW5yZWdpc3Rlci1mZWF0dXJlLXN0YXRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9saWIvYWN0aW9ucy9uZ3NzbS11bnJlZ2lzdGVyLWZlYXR1cmUtc3RhdGUuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE1BQU0sT0FBTyxpQ0FBaUM7SUFHNUMsWUFBNEIsZUFBdUI7UUFBdkIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFGbkMsU0FBSSxHQUFXLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDO0lBRXJCLENBQUM7Q0FDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb24nO1xuaW1wb3J0IHsgTmdzc21TdG9yZUFjdGlvblR5cGUgfSBmcm9tICcuL25nc3NtLXN0b3JlLWFjdGlvbi10eXBlJztcblxuZXhwb3J0IGNsYXNzIE5nc3NtVW5yZWdpc3RlckZlYXR1cmVTdGF0ZUFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBOZ3NzbVN0b3JlQWN0aW9uVHlwZS51bnJlZ2lzdGVyRmVhdHVyZVN0YXRlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBmZWF0dXJlU3RhdGVLZXk6IHN0cmluZykge31cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const NGSSM_COMPONENT_WITH_FEATURE_STATE = new InjectionToken('NGSSM_COMPONENT_WITH_FEATURE_STATE');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1zdGF0ZS1zcGVjaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9mZWF0dXJlLXN0YXRlL2ZlYXR1cmUtc3RhdGUtc3BlY2lmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTy9DLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUE0QixvQ0FBb0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9uIHtcbiAgcmVhZG9ubHkgZmVhdHVyZVN0YXRlS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGluaXRpYWxTdGF0ZTogb2JqZWN0O1xufVxuXG5leHBvcnQgY29uc3QgTkdTU01fQ09NUE9ORU5UX1dJVEhfRkVBVFVSRV9TVEFURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9uPignTkdTU01fQ09NUE9ORU5UX1dJVEhfRkVBVFVSRV9TVEFURScpO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@angular/core';
2
+ import update from 'immutability-helper';
3
+ import { NgssmStoreActionType } from '../actions';
4
+ import * as i0 from "@angular/core";
5
+ export class FeatureStateReducer {
6
+ constructor() {
7
+ this.processedActions = [NgssmStoreActionType.registerFeatureState, NgssmStoreActionType.unregisterFeatureState];
8
+ }
9
+ updateState(state, action) {
10
+ switch (action.type) {
11
+ case NgssmStoreActionType.registerFeatureState: {
12
+ const registerFeatureStateAction = action;
13
+ return update(state, {
14
+ [registerFeatureStateAction.featureStateKey]: { $set: registerFeatureStateAction.initialValue }
15
+ });
16
+ }
17
+ case NgssmStoreActionType.unregisterFeatureState: {
18
+ const unregisterFeatureStateAction = action;
19
+ return update(state, {
20
+ $unset: [unregisterFeatureStateAction.featureStateKey]
21
+ });
22
+ }
23
+ }
24
+ return state;
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FeatureStateReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FeatureStateReducer }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FeatureStateReducer, decorators: [{
30
+ type: Injectable
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1zdGF0ZS5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9mZWF0dXJlLXN0YXRlL2ZlYXR1cmUtc3RhdGUucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBR3pDLE9BQU8sRUFBbUMsb0JBQW9CLEVBQXFDLE1BQU0sWUFBWSxDQUFDOztBQUt0SCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRWtCLHFCQUFnQixHQUFhLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQXFCdkk7SUFuQlEsV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLDBCQUEwQixHQUFHLE1BQXlDLENBQUM7Z0JBQzdFLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRTtvQkFDbkIsQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxZQUFZLEVBQUU7aUJBQ2hHLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxLQUFLLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztnQkFDakQsTUFBTSw0QkFBNEIsR0FBRyxNQUEyQyxDQUFDO2dCQUNqRixPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUU7b0JBQ25CLE1BQU0sRUFBRSxDQUFDLDRCQUE0QixDQUFDLGVBQWUsQ0FBQztpQkFDdkQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBckJVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdXBkYXRlIGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuXG5pbXBvcnQgeyBSZWR1Y2VyIH0gZnJvbSAnLi4vcmVkdWNlcic7XG5pbXBvcnQgeyBOZ3NzbVJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uLCBOZ3NzbVN0b3JlQWN0aW9uVHlwZSwgTmdzc21VbnJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RhdGVSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtOZ3NzbVN0b3JlQWN0aW9uVHlwZS5yZWdpc3RlckZlYXR1cmVTdGF0ZSwgTmdzc21TdG9yZUFjdGlvblR5cGUudW5yZWdpc3RlckZlYXR1cmVTdGF0ZV07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbVN0b3JlQWN0aW9uVHlwZS5yZWdpc3RlckZlYXR1cmVTdGF0ZToge1xuICAgICAgICBjb25zdCByZWdpc3RlckZlYXR1cmVTdGF0ZUFjdGlvbiA9IGFjdGlvbiBhcyBOZ3NzbVJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlKHN0YXRlLCB7XG4gICAgICAgICAgW3JlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uLmZlYXR1cmVTdGF0ZUtleV06IHsgJHNldDogcmVnaXN0ZXJGZWF0dXJlU3RhdGVBY3Rpb24uaW5pdGlhbFZhbHVlIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21TdG9yZUFjdGlvblR5cGUudW5yZWdpc3RlckZlYXR1cmVTdGF0ZToge1xuICAgICAgICBjb25zdCB1bnJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtVW5yZWdpc3RlckZlYXR1cmVTdGF0ZUFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShzdGF0ZSwge1xuICAgICAgICAgICR1bnNldDogW3VucmVnaXN0ZXJGZWF0dXJlU3RhdGVBY3Rpb24uZmVhdHVyZVN0YXRlS2V5XVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './feature-state-specification';
2
+ export * from './provide-feature-state';
3
+ export * from './provide-ngssm-feature-state.directive';
4
+ export * from './feature-state.reducer';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL2ZlYXR1cmUtc3RhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1zdGF0ZS1zcGVjaWZpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZS1mZWF0dXJlLXN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZS1uZ3NzbS1mZWF0dXJlLXN0YXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtc3RhdGUucmVkdWNlcic7XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
2
+ import { Store } from '../store';
3
+ import { NgssmRegisterFeatureStateAction } from '../actions';
4
+ const registerFeatureState = (featureStateKey, initialValue) => {
5
+ return (store) => {
6
+ return () => {
7
+ store.dispatchAction(new NgssmRegisterFeatureStateAction(featureStateKey, initialValue));
8
+ };
9
+ };
10
+ };
11
+ export const provideNgssmFeatureState = (featureStateKey, initialValue) => {
12
+ return makeEnvironmentProviders([
13
+ {
14
+ provide: APP_INITIALIZER,
15
+ useFactory: registerFeatureState(featureStateKey, initialValue),
16
+ multi: true,
17
+ deps: [Store]
18
+ }
19
+ ]);
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1mZWF0dXJlLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9mZWF0dXJlLXN0YXRlL3Byb3ZpZGUtZmVhdHVyZS1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF3Qix3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3RCxNQUFNLG9CQUFvQixHQUFHLENBQUMsZUFBdUIsRUFBRSxZQUFvQixFQUFFLEVBQUU7SUFDN0UsT0FBTyxDQUFDLEtBQVksRUFBZ0IsRUFBRTtRQUNwQyxPQUFPLEdBQUcsRUFBRTtZQUNWLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLGVBQXVCLEVBQUUsWUFBb0IsRUFBd0IsRUFBRTtJQUM5RyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7WUFDL0QsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDZDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3NzbVJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5cbmNvbnN0IHJlZ2lzdGVyRmVhdHVyZVN0YXRlID0gKGZlYXR1cmVTdGF0ZUtleTogc3RyaW5nLCBpbml0aWFsVmFsdWU6IG9iamVjdCkgPT4ge1xuICByZXR1cm4gKHN0b3JlOiBTdG9yZSk6ICgoKSA9PiB2b2lkKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBOZ3NzbVJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uKGZlYXR1cmVTdGF0ZUtleSwgaW5pdGlhbFZhbHVlKSk7XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlTmdzc21GZWF0dXJlU3RhdGUgPSAoZmVhdHVyZVN0YXRlS2V5OiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogb2JqZWN0KTogRW52aXJvbm1lbnRQcm92aWRlcnMgPT4ge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiByZWdpc3RlckZlYXR1cmVTdGF0ZShmZWF0dXJlU3RhdGVLZXksIGluaXRpYWxWYWx1ZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIGRlcHM6IFtTdG9yZV1cbiAgICB9XG4gIF0pO1xufTtcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Directive, Inject } from '@angular/core';
2
+ import { NgssmRegisterFeatureStateAction, NgssmUnregisterFeatureStateAction } from '../actions';
3
+ import { NGSSM_COMPONENT_WITH_FEATURE_STATE } from './feature-state-specification';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../store";
6
+ // export interface ComponentWithFeatureState {
7
+ // featureStateKey: string;
8
+ // initialValue: object;
9
+ // }
10
+ // export const NGSSM_COMPONENT_WITH_FEATURE_STATE = new InjectionToken<ComponentWithFeatureState>('NGSSM_COMPONENT_WITH_FEATURE_STATE');
11
+ export class ProvideNgssmFeatureStateDirective {
12
+ constructor(component, store) {
13
+ this.component = component;
14
+ this.store = store;
15
+ this.store.dispatchAction(new NgssmRegisterFeatureStateAction(this.component.featureStateKey, this.component.initialState));
16
+ }
17
+ ngOnDestroy() {
18
+ this.store.dispatchAction(new NgssmUnregisterFeatureStateAction(this.component.featureStateKey));
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ProvideNgssmFeatureStateDirective, deps: [{ token: NGSSM_COMPONENT_WITH_FEATURE_STATE }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ProvideNgssmFeatureStateDirective, isStandalone: true, selector: "[provideNgssmFeatureState]", ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ProvideNgssmFeatureStateDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ // eslint-disable-next-line @angular-eslint/directive-selector
27
+ selector: '[provideNgssmFeatureState]',
28
+ standalone: true
29
+ }]
30
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
31
+ type: Inject,
32
+ args: [NGSSM_COMPONENT_WITH_FEATURE_STATE]
33
+ }] }, { type: i1.Store }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1uZ3NzbS1mZWF0dXJlLXN0YXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9saWIvZmVhdHVyZS1zdGF0ZS9wcm92aWRlLW5nc3NtLWZlYXR1cmUtc3RhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUc3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEcsT0FBTyxFQUE2QixrQ0FBa0MsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFFOUcsK0NBQStDO0FBQy9DLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsSUFBSTtBQUVKLHlJQUF5STtBQU96SSxNQUFNLE9BQU8saUNBQWlDO0lBQzVDLFlBQ3NELFNBQW9DLEVBQ2hGLEtBQVk7UUFEZ0MsY0FBUyxHQUFULFNBQVMsQ0FBMkI7UUFDaEYsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUVwQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLCtCQUErQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5SCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDOzhHQVZVLGlDQUFpQyxrQkFFbEMsa0NBQWtDO2tHQUZqQyxpQ0FBaUM7OzJGQUFqQyxpQ0FBaUM7a0JBTDdDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUdJLE1BQU07MkJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIEluamVjdGlvblRva2VuLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3NzbVJlZ2lzdGVyRmVhdHVyZVN0YXRlQWN0aW9uLCBOZ3NzbVVucmVnaXN0ZXJGZWF0dXJlU3RhdGVBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb24sIE5HU1NNX0NPTVBPTkVOVF9XSVRIX0ZFQVRVUkVfU1RBVEUgfSBmcm9tICcuL2ZlYXR1cmUtc3RhdGUtc3BlY2lmaWNhdGlvbic7XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50V2l0aEZlYXR1cmVTdGF0ZSB7XG4vLyAgIGZlYXR1cmVTdGF0ZUtleTogc3RyaW5nO1xuLy8gICBpbml0aWFsVmFsdWU6IG9iamVjdDtcbi8vIH1cblxuLy8gZXhwb3J0IGNvbnN0IE5HU1NNX0NPTVBPTkVOVF9XSVRIX0ZFQVRVUkVfU1RBVEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcG9uZW50V2l0aEZlYXR1cmVTdGF0ZT4oJ05HU1NNX0NPTVBPTkVOVF9XSVRIX0ZFQVRVUkVfU1RBVEUnKTtcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3Byb3ZpZGVOZ3NzbUZlYXR1cmVTdGF0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFByb3ZpZGVOZ3NzbUZlYXR1cmVTdGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTkdTU01fQ09NUE9ORU5UX1dJVEhfRkVBVFVSRV9TVEFURSkgcHJpdmF0ZSBjb21wb25lbnQ6IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb24sXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmVcbiAgKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgTmdzc21SZWdpc3RlckZlYXR1cmVTdGF0ZUFjdGlvbih0aGlzLmNvbXBvbmVudC5mZWF0dXJlU3RhdGVLZXksIHRoaXMuY29tcG9uZW50LmluaXRpYWxTdGF0ZSkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IE5nc3NtVW5yZWdpc3RlckZlYXR1cmVTdGF0ZUFjdGlvbih0aGlzLmNvbXBvbmVudC5mZWF0dXJlU3RhdGVLZXkpKTtcbiAgfVxufVxuIl19
@@ -32,10 +32,10 @@ export class ConsoleAppender {
32
32
  stop() {
33
33
  this.stopEvent$.next(true);
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ConsoleAppender, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ConsoleAppender, providedIn: 'root' }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleAppender, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleAppender, providedIn: 'root' }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ConsoleAppender, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleAppender, decorators: [{
39
39
  type: Injectable,
40
40
  args: [{
41
41
  providedIn: 'root'
@@ -25,10 +25,10 @@ export class Logger {
25
25
  payload
26
26
  });
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Logger, providedIn: 'root' }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Logger, providedIn: 'root' }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Logger, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Logger, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{
34
34
  providedIn: 'root'
@@ -23,10 +23,10 @@ export class NgSsmComponent {
23
23
  dispatchActionType(actionType) {
24
24
  this.store.dispatchActionType(actionType);
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgSsmComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: NgSsmComponent, ngImport: i0 }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgSsmComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
27
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: NgSsmComponent, ngImport: i0 }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgSsmComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgSsmComponent, decorators: [{
30
30
  type: Directive,
31
31
  args: [{}]
32
32
  }], ctorParameters: () => [{ type: i1.Store }] });
@@ -0,0 +1,7 @@
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
+ import { provideReducers } from './reducer';
3
+ import { FeatureStateReducer } from './feature-state';
4
+ export const provideNgssmStore = () => {
5
+ return makeEnvironmentProviders([provideReducers(FeatureStateReducer)]);
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1uZ3NzbS1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9saWIvcHJvdmlkZS1uZ3NzbS1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBeUIsRUFBRTtJQUMxRCxPQUFPLHdCQUF3QixDQUFDLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgcHJvdmlkZVJlZHVjZXJzIH0gZnJvbSAnLi9yZWR1Y2VyJztcbmltcG9ydCB7IEZlYXR1cmVTdGF0ZVJlZHVjZXIgfSBmcm9tICcuL2ZlYXR1cmUtc3RhdGUnO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZU5nc3NtU3RvcmUgPSAoKTogRW52aXJvbm1lbnRQcm92aWRlcnMgPT4ge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtwcm92aWRlUmVkdWNlcnMoRmVhdHVyZVN0YXRlUmVkdWNlcildKTtcbn07XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgW2tleTogc3RyaW5nXTogb2JqZWN0O1xufVxuIl19
@@ -117,10 +117,10 @@ export class Store {
117
117
  });
118
118
  }
119
119
  }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Store, deps: [{ token: i1.Logger }, { token: NGSSM_REDUCER, optional: true }, { token: NGSSM_EFFECT, optional: true }, { token: NGSSM_STATE_INITIALIZER, optional: true }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
121
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Store, providedIn: 'root' }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Store, deps: [{ token: i1.Logger }, { token: NGSSM_REDUCER, optional: true }, { token: NGSSM_EFFECT, optional: true }, { token: NGSSM_STATE_INITIALIZER, optional: true }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
121
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Store, providedIn: 'root' }); }
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Store, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Store, decorators: [{
124
124
  type: Injectable,
125
125
  args: [{
126
126
  providedIn: 'root'
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
141
141
  }, {
142
142
  type: Optional
143
143
  }] }, { type: i0.EnvironmentInjector }] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFLekMsT0FBTyxFQUFFLGFBQWEsRUFBVyxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR2hGLE1BQU0sMEJBQTBCLEdBQWdDLEVBQUUsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGFBQXdDLEVBQUUsRUFBRTtJQUM1RSxPQUFPLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDeEIsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUtGLE1BQU0sT0FBTyxLQUFLO0lBT2hCLFlBQ1UsTUFBYyxFQUNhLFFBQW1CLEVBQ3BCLE9BQWlCLEVBQ04sWUFBZ0MsRUFDckUsUUFBNkI7UUFKN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUlkLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBWHRCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUN6QyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUMzQiwwQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNyRCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztR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QUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgU2lnbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB1cGRhdGUgZnJvbSAnaW1tdXRhYmlsaXR5LWhlbHBlcic7XG5cbmltcG9ydCB7IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb24gfSBmcm9tICcuL2ZlYXR1cmUtc3RhdGUtc3BlY2lmaWNhdGlvbic7XG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgTkdTU01fUkVEVUNFUiwgUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlcic7XG5pbXBvcnQgeyBFZmZlY3QsIE5HU1NNX0VGRkVDVCB9IGZyb20gJy4vZWZmZWN0JztcbmltcG9ydCB7IE5HU1NNX1NUQVRFX0lOSVRJQUxJWkVSLCBTdGF0ZUluaXRpYWxpemVyIH0gZnJvbSAnLi9zdGF0ZS1pbml0aWFsaXplcic7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG5jb25zdCBmZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9uczogRmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbltdID0gW107XG5leHBvcnQgY29uc3QgTmdTc21GZWF0dXJlU3RhdGUgPSAoc3BlY2lmaWNhdGlvbjogRmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbikgPT4ge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0KSA9PiB7XG4gICAgZmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbnMucHVzaChzcGVjaWZpY2F0aW9uKTtcbiAgfTtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGF0ZT4oe30pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvblF1ZXVlOiBBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZHVjZXJzUGVyQWN0aW9uVHlwZSA9IG5ldyBNYXA8c3RyaW5nLCBSZWR1Y2VyW10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWZmZWN0c1BlckFjdGlvblR5cGUgPSBuZXcgTWFwPHN0cmluZywgRWZmZWN0W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlU2lnbmFsID0gc2lnbmFsPFN0YXRlPih7fSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBASW5qZWN0KE5HU1NNX1JFRFVDRVIpIEBPcHRpb25hbCgpIHJlZHVjZXJzOiBSZWR1Y2VyW10sXG4gICAgQEluamVjdChOR1NTTV9FRkZFQ1QpIEBPcHRpb25hbCgpIGVmZmVjdHM6IEVmZmVjdFtdLFxuICAgIEBJbmplY3QoTkdTU01fU1RBVEVfSU5JVElBTElaRVIpIEBPcHRpb25hbCgpIGluaXRpYWxpemVyczogU3RhdGVJbml0aWFsaXplcltdLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3JcbiAgKSB7XG4gICAgdGhpcy5fc3RhdGUkLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuX3N0YXRlU2lnbmFsLnNldCh2YWx1ZSkpO1xuICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLT4gc3RhdGUgaW5pdGlhbGl6YXRpb24uLi4nKTtcbiAgICBsZXQgc3RhdGUgPSB0aGlzLl9zdGF0ZSQuZ2V0VmFsdWUoKTtcbiAgICBzdGF0ZSA9IGZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb25zLnJlZHVjZSgocCwgYykgPT4gdXBkYXRlKHAsIHsgW2MuZmVhdHVyZVN0YXRlS2V5XTogeyAkc2V0OiBjLmluaXRpYWxTdGF0ZSB9IH0pLCBzdGF0ZSk7XG5cbiAgICAoaW5pdGlhbGl6ZXJzID8/IFtdKS5mb3JFYWNoKChpbml0aWFsaXplcikgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oJ1tTdG9yZV0gLS0tLS0tPiBjYWxsaW5nIGluaXRpYWxpemVyJywgaW5pdGlhbGl6ZXIpO1xuICAgICAgc3RhdGUgPSBpbml0aWFsaXplci5pbml0aWFsaXplU3RhdGUoc3RhdGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoc3RhdGUpO1xuXG4gICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtTdG9yZV0gLS0tPiBpbml0aWFsaXphdGlvbiBvZiAkeyhyZWR1Y2VycyA/PyBbXSkubGVuZ3RofSByZWR1Y2Vycy4uLmApO1xuICAgIChyZWR1Y2VycyA/PyBbXSkuZm9yRWFjaCgocmVkdWNlcikgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oJ1tTdG9yZV0gLS0tLS0tPiBpbml0aWFsaXphdGlvbiBvZiAnLCByZWR1Y2VyKTtcbiAgICAgIHJlZHVjZXIucHJvY2Vzc2VkQWN0aW9ucy5mb3JFYWNoKChwcm9jZXNzZWRBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVSZWR1Y2VyczogUmVkdWNlcltdID0gdGhpcy5yZWR1Y2Vyc1BlckFjdGlvblR5cGUuZ2V0KHByb2Nlc3NlZEFjdGlvbikgPz8gW107XG4gICAgICAgIGlmIChzdG9yZVJlZHVjZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMucmVkdWNlcnNQZXJBY3Rpb25UeXBlLnNldChwcm9jZXNzZWRBY3Rpb24sIHN0b3JlUmVkdWNlcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcmVSZWR1Y2Vycy5wdXNoKHJlZHVjZXIpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihgW1N0b3JlXSAtLS0+IGluaXRpYWxpemF0aW9uIG9mICR7KGVmZmVjdHMgPz8gW10pLmxlbmd0aH0gZWZmZWN0cy4uLmApO1xuICAgIChlZmZlY3RzID8/IFtdKS5mb3JFYWNoKChlZmZlY3QpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLS0tLT4gaW5pdGlhbGl6YXRpb24gb2YgJywgZWZmZWN0KTtcbiAgICAgIGVmZmVjdC5wcm9jZXNzZWRBY3Rpb25zLmZvckVhY2goKHByb2Nlc3NlZEFjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZWRFZmZlY3RzOiBFZmZlY3RbXSA9IHRoaXMuZWZmZWN0c1BlckFjdGlvblR5cGUuZ2V0KHByb2Nlc3NlZEFjdGlvbikgPz8gW107XG4gICAgICAgIGlmIChzdG9yZWRFZmZlY3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuZWZmZWN0c1BlckFjdGlvblR5cGUuc2V0KHByb2Nlc3NlZEFjdGlvbiwgc3RvcmVkRWZmZWN0cyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdG9yZWRFZmZlY3RzLnB1c2goZWZmZWN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSQoKTogT2JzZXJ2YWJsZTxTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IFNpZ25hbDxTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZVNpZ25hbC5hc1JlYWRvbmx5KCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvblF1ZXVlLnB1c2goYWN0aW9uKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgQWN0aW9uIG9mIHR5cGUgJyR7YWN0aW9uLnR5cGV9JyBhZGRlZCB0byB0aGUgcXVldWUgPT4gJHt0aGlzLmFjdGlvblF1ZXVlLmxlbmd0aH0gcGVuZGluZyBhY3Rpb25zYCwgYWN0aW9uKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJvY2Vzc05leHRBY3Rpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb25UeXBlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oeyB0eXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzTmV4dEFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0QWN0aW9uID0gdGhpcy5hY3Rpb25RdWV1ZS5zaGlmdCgpO1xuICAgIGlmICghbmV4dEFjdGlvbikge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1twcm9jZXNzTmV4dEFjdGlvbl0gTm8gYWN0aW9uIHRvIHByb2Nlc3MnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihgW3Byb2Nlc3NOZXh0QWN0aW9uXSBTdGFydCBwcm9jZXNzaW5nIGFjdGlvbiAnJHtuZXh0QWN0aW9uLnR5cGV9Li4uYCwgbmV4dEFjdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVkdWNlcnMgPSB0aGlzLnJlZHVjZXJzUGVyQWN0aW9uVHlwZS5nZXQobmV4dEFjdGlvbi50eXBlKSA/PyBbXTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbU3RvcmVdICR7cmVkdWNlcnMubGVuZ3RofSByZWR1Y2VycyBmb3VuZCB0byBwcm9jZXNzIHRoZSBhY3Rpb24gJHtuZXh0QWN0aW9uLnR5cGV9YCwgcmVkdWNlcnMpO1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5fc3RhdGUkLmdldFZhbHVlKCk7XG4gICAgICBjb25zdCB1cGRhdGVkU3RhdGUgPSByZWR1Y2Vycy5yZWR1Y2UoKHAsIGMpID0+IGMudXBkYXRlU3RhdGUocCwgbmV4dEFjdGlvbiksIGN1cnJlbnRTdGF0ZSk7XG5cbiAgICAgIGlmICh1cGRhdGVkU3RhdGUgIT09IGN1cnJlbnRTdGF0ZSkge1xuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh1cGRhdGVkU3RhdGUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlZmZlY3RzID0gdGhpcy5lZmZlY3RzUGVyQWN0aW9uVHlwZS5nZXQobmV4dEFjdGlvbi50eXBlKSA/PyBbXTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbU3RvcmVdICR7ZWZmZWN0cy5sZW5ndGh9IGVmZmVjdHMgZm91bmQgdG8gcHJvY2VzcyB0aGUgYWN0aW9uICR7bmV4dEFjdGlvbi50eXBlfWAsIGVmZmVjdHMpO1xuICAgICAgZWZmZWN0cy5mb3JFYWNoKChlZmZlY3QpID0+IHtcbiAgICAgICAgaWYgKGVmZmVjdC5pc0Z1bmMgPT09IHRydWUpIHtcbiAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gdGhpcy5ydW5FZmZlY3QoZWZmZWN0LCB1cGRhdGVkU3RhdGUsIG5leHRBY3Rpb24pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJ1bkVmZmVjdChlZmZlY3QsIHVwZGF0ZWRTdGF0ZSwgbmV4dEFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGFjdGlvbiAke25leHRBY3Rpb24udHlwZX1gLCB7XG4gICAgICAgIGVycm9yLFxuICAgICAgICBhY3Rpb246IG5leHRBY3Rpb25cbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihgW3Byb2Nlc3NOZXh0QWN0aW9uXSBhY3Rpb24gJyR7bmV4dEFjdGlvbi50eXBlfSBwcm9jZXNzZWQuYCwgbmV4dEFjdGlvbik7XG5cbiAgICAgIC8vIFNob3VsZCBub3QgYmUgdXNlZnVsLkJ1dCwganVzdCBpbiBjYXNlLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByb2Nlc3NOZXh0QWN0aW9uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcnVuRWZmZWN0KGVmZmVjdDogRWZmZWN0LCB1cGRhdGVkU3RhdGU6IFN0YXRlLCBuZXh0QWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0cnkge1xuICAgICAgZWZmZWN0LnByb2Nlc3NBY3Rpb24odGhpcywgdXBkYXRlZFN0YXRlLCBuZXh0QWN0aW9uKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYFVuYWJsZSB0byBwcm9jZXNzIGFjdGlvbiAke25leHRBY3Rpb24udHlwZX0gYnkgZWZmZWN0ICR7ZWZmZWN0fWAsIHtcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGFjdGlvbjogbmV4dEFjdGlvbixcbiAgICAgICAgcHJvY2Vzc29yOiBlZmZlY3RcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFLekMsT0FBTyxFQUFFLGFBQWEsRUFBVyxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR2hGLE1BQU0sMEJBQTBCLEdBQWdDLEVBQUUsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGFBQXdDLEVBQUUsRUFBRTtJQUM1RSxPQUFPLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDeEIsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUtGLE1BQU0sT0FBTyxLQUFLO0lBT2hCLFlBQ1UsTUFBYyxFQUNhLFFBQW1CLEVBQ3BCLE9BQWlCLEVBQ04sWUFBZ0MsRUFDckUsUUFBNkI7UUFKN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUlkLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBWHRCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUN6QyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUMzQiwwQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNyRCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztR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QUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgU2lnbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB1cGRhdGUgZnJvbSAnaW1tdXRhYmlsaXR5LWhlbHBlcic7XG5cbmltcG9ydCB7IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb24gfSBmcm9tICcuL2ZlYXR1cmUtc3RhdGUnO1xuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IE5HU1NNX1JFRFVDRVIsIFJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXInO1xuaW1wb3J0IHsgRWZmZWN0LCBOR1NTTV9FRkZFQ1QgfSBmcm9tICcuL2VmZmVjdCc7XG5pbXBvcnQgeyBOR1NTTV9TVEFURV9JTklUSUFMSVpFUiwgU3RhdGVJbml0aWFsaXplciB9IGZyb20gJy4vc3RhdGUtaW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnLi9sb2dnaW5nJztcblxuY29uc3QgZmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbnM6IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb25bXSA9IFtdO1xuZXhwb3J0IGNvbnN0IE5nU3NtRmVhdHVyZVN0YXRlID0gKHNwZWNpZmljYXRpb246IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb24pID0+IHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCkgPT4ge1xuICAgIGZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb25zLnB1c2goc3BlY2lmaWNhdGlvbik7XG4gIH07XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RhdGU+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25RdWV1ZTogQWN0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWR1Y2Vyc1BlckFjdGlvblR5cGUgPSBuZXcgTWFwPHN0cmluZywgUmVkdWNlcltdPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVmZmVjdHNQZXJBY3Rpb25UeXBlID0gbmV3IE1hcDxzdHJpbmcsIEVmZmVjdFtdPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZVNpZ25hbCA9IHNpZ25hbDxTdGF0ZT4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgQEluamVjdChOR1NTTV9SRURVQ0VSKSBAT3B0aW9uYWwoKSByZWR1Y2VyczogUmVkdWNlcltdLFxuICAgIEBJbmplY3QoTkdTU01fRUZGRUNUKSBAT3B0aW9uYWwoKSBlZmZlY3RzOiBFZmZlY3RbXSxcbiAgICBASW5qZWN0KE5HU1NNX1NUQVRFX0lOSVRJQUxJWkVSKSBAT3B0aW9uYWwoKSBpbml0aWFsaXplcnM6IFN0YXRlSW5pdGlhbGl6ZXJbXSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yXG4gICkge1xuICAgIHRoaXMuX3N0YXRlJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLl9zdGF0ZVNpZ25hbC5zZXQodmFsdWUpKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbignW1N0b3JlXSAtLS0+IHN0YXRlIGluaXRpYWxpemF0aW9uLi4uJyk7XG4gICAgbGV0IHN0YXRlID0gdGhpcy5fc3RhdGUkLmdldFZhbHVlKCk7XG4gICAgc3RhdGUgPSBmZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9ucy5yZWR1Y2UoKHAsIGMpID0+IHVwZGF0ZShwLCB7IFtjLmZlYXR1cmVTdGF0ZUtleV06IHsgJHNldDogYy5pbml0aWFsU3RhdGUgfSB9KSwgc3RhdGUpO1xuXG4gICAgKGluaXRpYWxpemVycyA/PyBbXSkuZm9yRWFjaCgoaW5pdGlhbGl6ZXIpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLS0tLT4gY2FsbGluZyBpbml0aWFsaXplcicsIGluaXRpYWxpemVyKTtcbiAgICAgIHN0YXRlID0gaW5pdGlhbGl6ZXIuaW5pdGlhbGl6ZVN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHN0YXRlKTtcblxuICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKGBbU3RvcmVdIC0tLT4gaW5pdGlhbGl6YXRpb24gb2YgJHsocmVkdWNlcnMgPz8gW10pLmxlbmd0aH0gcmVkdWNlcnMuLi5gKTtcbiAgICAocmVkdWNlcnMgPz8gW10pLmZvckVhY2goKHJlZHVjZXIpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLS0tLT4gaW5pdGlhbGl6YXRpb24gb2YgJywgcmVkdWNlcik7XG4gICAgICByZWR1Y2VyLnByb2Nlc3NlZEFjdGlvbnMuZm9yRWFjaCgocHJvY2Vzc2VkQWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JlUmVkdWNlcnM6IFJlZHVjZXJbXSA9IHRoaXMucmVkdWNlcnNQZXJBY3Rpb25UeXBlLmdldChwcm9jZXNzZWRBY3Rpb24pID8/IFtdO1xuICAgICAgICBpZiAoc3RvcmVSZWR1Y2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLnJlZHVjZXJzUGVyQWN0aW9uVHlwZS5zZXQocHJvY2Vzc2VkQWN0aW9uLCBzdG9yZVJlZHVjZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3JlUmVkdWNlcnMucHVzaChyZWR1Y2VyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtTdG9yZV0gLS0tPiBpbml0aWFsaXphdGlvbiBvZiAkeyhlZmZlY3RzID8/IFtdKS5sZW5ndGh9IGVmZmVjdHMuLi5gKTtcbiAgICAoZWZmZWN0cyA/PyBbXSkuZm9yRWFjaCgoZWZmZWN0KSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbignW1N0b3JlXSAtLS0tLS0+IGluaXRpYWxpemF0aW9uIG9mICcsIGVmZmVjdCk7XG4gICAgICBlZmZlY3QucHJvY2Vzc2VkQWN0aW9ucy5mb3JFYWNoKChwcm9jZXNzZWRBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVkRWZmZWN0czogRWZmZWN0W10gPSB0aGlzLmVmZmVjdHNQZXJBY3Rpb25UeXBlLmdldChwcm9jZXNzZWRBY3Rpb24pID8/IFtdO1xuICAgICAgICBpZiAoc3RvcmVkRWZmZWN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmVmZmVjdHNQZXJBY3Rpb25UeXBlLnNldChwcm9jZXNzZWRBY3Rpb24sIHN0b3JlZEVmZmVjdHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcmVkRWZmZWN0cy5wdXNoKGVmZmVjdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8U3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpOiBTaWduYWw8U3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVTaWduYWwuYXNSZWFkb25seSgpO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb25RdWV1ZS5wdXNoKGFjdGlvbik7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEFjdGlvbiBvZiB0eXBlICcke2FjdGlvbi50eXBlfScgYWRkZWQgdG8gdGhlIHF1ZXVlID0+ICR7dGhpcy5hY3Rpb25RdWV1ZS5sZW5ndGh9IHBlbmRpbmcgYWN0aW9uc2AsIGFjdGlvbik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByb2Nlc3NOZXh0QWN0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKHsgdHlwZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc05leHRBY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dEFjdGlvbiA9IHRoaXMuYWN0aW9uUXVldWUuc2hpZnQoKTtcbiAgICBpZiAoIW5leHRBY3Rpb24pIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdbcHJvY2Vzc05leHRBY3Rpb25dIE5vIGFjdGlvbiB0byBwcm9jZXNzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtwcm9jZXNzTmV4dEFjdGlvbl0gU3RhcnQgcHJvY2Vzc2luZyBhY3Rpb24gJyR7bmV4dEFjdGlvbi50eXBlfS4uLmAsIG5leHRBY3Rpb24pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZHVjZXJzID0gdGhpcy5yZWR1Y2Vyc1BlckFjdGlvblR5cGUuZ2V0KG5leHRBY3Rpb24udHlwZSkgPz8gW107XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW1N0b3JlXSAke3JlZHVjZXJzLmxlbmd0aH0gcmVkdWNlcnMgZm91bmQgdG8gcHJvY2VzcyB0aGUgYWN0aW9uICR7bmV4dEFjdGlvbi50eXBlfWAsIHJlZHVjZXJzKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgdXBkYXRlZFN0YXRlID0gcmVkdWNlcnMucmVkdWNlKChwLCBjKSA9PiBjLnVwZGF0ZVN0YXRlKHAsIG5leHRBY3Rpb24pLCBjdXJyZW50U3RhdGUpO1xuXG4gICAgICBpZiAodXBkYXRlZFN0YXRlICE9PSBjdXJyZW50U3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQodXBkYXRlZFN0YXRlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWZmZWN0cyA9IHRoaXMuZWZmZWN0c1BlckFjdGlvblR5cGUuZ2V0KG5leHRBY3Rpb24udHlwZSkgPz8gW107XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW1N0b3JlXSAke2VmZmVjdHMubGVuZ3RofSBlZmZlY3RzIGZvdW5kIHRvIHByb2Nlc3MgdGhlIGFjdGlvbiAke25leHRBY3Rpb24udHlwZX1gLCBlZmZlY3RzKTtcbiAgICAgIGVmZmVjdHMuZm9yRWFjaCgoZWZmZWN0KSA9PiB7XG4gICAgICAgIGlmIChlZmZlY3QuaXNGdW5jID09PSB0cnVlKSB7XG4gICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHRoaXMucnVuRWZmZWN0KGVmZmVjdCwgdXBkYXRlZFN0YXRlLCBuZXh0QWN0aW9uKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5ydW5FZmZlY3QoZWZmZWN0LCB1cGRhdGVkU3RhdGUsIG5leHRBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEVycm9yIHdoZW4gcHJvY2Vzc2luZyBhY3Rpb24gJHtuZXh0QWN0aW9uLnR5cGV9YCwge1xuICAgICAgICBlcnJvcixcbiAgICAgICAgYWN0aW9uOiBuZXh0QWN0aW9uXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtwcm9jZXNzTmV4dEFjdGlvbl0gYWN0aW9uICcke25leHRBY3Rpb24udHlwZX0gcHJvY2Vzc2VkLmAsIG5leHRBY3Rpb24pO1xuXG4gICAgICAvLyBTaG91bGQgbm90IGJlIHVzZWZ1bC5CdXQsIGp1c3QgaW4gY2FzZS5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9jZXNzTmV4dEFjdGlvbigpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJ1bkVmZmVjdChlZmZlY3Q6IEVmZmVjdCwgdXBkYXRlZFN0YXRlOiBTdGF0ZSwgbmV4dEFjdGlvbjogQWN0aW9uKSB7XG4gICAgdHJ5IHtcbiAgICAgIGVmZmVjdC5wcm9jZXNzQWN0aW9uKHRoaXMsIHVwZGF0ZWRTdGF0ZSwgbmV4dEFjdGlvbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBVbmFibGUgdG8gcHJvY2VzcyBhY3Rpb24gJHtuZXh0QWN0aW9uLnR5cGV9IGJ5IGVmZmVjdCAke2VmZmVjdH1gLCB7XG4gICAgICAgIGVycm9yLFxuICAgICAgICBhY3Rpb246IG5leHRBY3Rpb24sXG4gICAgICAgIHByb2Nlc3NvcjogZWZmZWN0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -6,8 +6,10 @@ export * from './lib/state';
6
6
  export * from './lib/action';
7
7
  export * from './lib/reducer';
8
8
  export * from './lib/effect';
9
- export * from './lib/feature-state-specification';
9
+ export * from './lib/feature-state';
10
10
  export * from './lib/ngssm-component';
11
11
  export * from './lib/state-initializer';
12
12
  export * from './lib/logging';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nc3NtLXN0b3JlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWZmZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmUtc3RhdGUtc3BlY2lmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3NzbS1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUtaW5pdGlhbGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nZ2luZyc7XG4iXX0=
13
+ export * from './lib/actions';
14
+ export * from './lib/provide-ngssm-store';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmdzc20tc3RvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmVhdHVyZS1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3NzbS1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUtaW5pdGlhbGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nZ2luZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3ZpZGUtbmdzc20tc3RvcmUnO1xuIl19
@@ -13,10 +13,10 @@ export class HideElementDirective {
13
13
  this.store.dispatchAction(new HideElementAction(elementKey));
14
14
  }
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HideElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: HideElementDirective, isStandalone: true, selector: "[hideElement]", inputs: { key: ["hideElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HideElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: HideElementDirective, isStandalone: true, selector: "[hideElement]", inputs: { key: ["hideElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HideElementDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HideElementDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -5,10 +5,10 @@ export class IsElementVisiblePipe {
5
5
  transform(value, ...args) {
6
6
  return selectNgssmVisibilityState(value).elements[args[0]] === true;
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsElementVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: IsElementVisiblePipe, isStandalone: true, name: "isElementVisible" }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IsElementVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: IsElementVisiblePipe, isStandalone: true, name: "isElementVisible" }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsElementVisiblePipe, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IsElementVisiblePipe, decorators: [{
12
12
  type: Pipe,
13
13
  args: [{
14
14
  name: 'isElementVisible',
@@ -13,10 +13,10 @@ export class ShowElementDirective {
13
13
  this.store.dispatchAction(new ShowElementAction(elementKey));
14
14
  }
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ShowElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: ShowElementDirective, isStandalone: true, selector: "[showElement]", inputs: { key: ["showElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ShowElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ShowElementDirective, isStandalone: true, selector: "[showElement]", inputs: { key: ["showElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ShowElementDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ShowElementDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -13,10 +13,10 @@ export class ToggleElementVisibilityDirective {
13
13
  this.store.dispatchAction(new ToggleElementVisibilityAction(elementKey));
14
14
  }
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ToggleElementVisibilityDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: ToggleElementVisibilityDirective, isStandalone: true, selector: "[toggleElementVisibility]", inputs: { key: ["toggleElementVisibility", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleElementVisibilityDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ToggleElementVisibilityDirective, isStandalone: true, selector: "[toggleElementVisibility]", inputs: { key: ["toggleElementVisibility", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ToggleElementVisibilityDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleElementVisibilityDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -14,10 +14,10 @@ export class VisibilityToggleGroupComponent extends NgSsmComponent {
14
14
  this.items = [];
15
15
  this.hideMultipleSelectionIndicator = false;
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityToggleGroupComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.0", type: VisibilityToggleGroupComponent, isStandalone: true, selector: "ngssm-visibility-toggle-group", inputs: { items: "items", hideMultipleSelectionIndicator: ["hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] }, usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [multiple]=\"true\" [hideMultipleSelectionIndicator]=\"hideMultipleSelectionIndicator\">\n <mat-button-toggle *ngFor=\"let item of items\" [toggleElementVisibility]=\"item.key\"\n [checked]=\"store.state() | isElementVisible:item.key\" [id]=\"item.key\">\n {{item.label}}\n </mat-button-toggle>\n</mat-button-toggle-group>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: ToggleElementVisibilityDirective, selector: "[toggleElementVisibility]", inputs: ["toggleElementVisibility"] }, { kind: "pipe", type: IsElementVisiblePipe, name: "isElementVisible" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityToggleGroupComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.1", type: VisibilityToggleGroupComponent, isStandalone: true, selector: "ngssm-visibility-toggle-group", inputs: { items: "items", hideMultipleSelectionIndicator: ["hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] }, usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [multiple]=\"true\" [hideMultipleSelectionIndicator]=\"hideMultipleSelectionIndicator\">\n <mat-button-toggle *ngFor=\"let item of items\" [toggleElementVisibility]=\"item.key\"\n [checked]=\"store.state() | isElementVisible:item.key\" [id]=\"item.key\">\n {{item.label}}\n </mat-button-toggle>\n</mat-button-toggle-group>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: ToggleElementVisibilityDirective, selector: "[toggleElementVisibility]", inputs: ["toggleElementVisibility"] }, { kind: "pipe", type: IsElementVisiblePipe, name: "isElementVisible" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityToggleGroupComponent, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityToggleGroupComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'ngssm-visibility-toggle-group', standalone: true, imports: [CommonModule, MatButtonToggleModule, ToggleElementVisibilityDirective, IsElementVisiblePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-button-toggle-group [multiple]=\"true\" [hideMultipleSelectionIndicator]=\"hideMultipleSelectionIndicator\">\n <mat-button-toggle *ngFor=\"let item of items\" [toggleElementVisibility]=\"item.key\"\n [checked]=\"store.state() | isElementVisible:item.key\" [id]=\"item.key\">\n {{item.label}}\n </mat-button-toggle>\n</mat-button-toggle-group>" }]
23
23
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { items: [{
@@ -74,10 +74,10 @@ export class VisibilityReducer {
74
74
  elements: elementsCommand
75
75
  });
76
76
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
78
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityReducer }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
78
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityReducer }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityReducer, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityReducer, decorators: [{
81
81
  type: Injectable
82
82
  }] });
83
83
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvdmlzaWJpbGl0eS9zcmMvcmVkdWNlcnMvdmlzaWJpbGl0eS5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUdMLHlCQUF5QixFQUcxQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2xGLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFa0IscUJBQWdCLEdBQWE7WUFDM0MseUJBQXlCLENBQUMsdUJBQXVCO1lBQ2pELHlCQUF5QixDQUFDLFdBQVc7WUFDckMseUJBQXlCLENBQUMsV0FBVztZQUNyQyx5QkFBeUIsQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQztLQTRFSDtJQTFFUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sc0JBQXNCLEdBQUcsTUFBdUMsQ0FBQztnQkFDdkUsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzNGLE9BQU8sMEJBQTBCLENBQUMsS0FBSyxFQUFFO3dCQUN2QyxRQUFRLEVBQUU7NEJBQ1IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7eUJBQ3JEO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFD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LEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLDBCQUEwQixDQUFDLEtBQUssRUFBRTtZQUN2QyxRQUFRLEVBQUUsZUFBZTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWpGVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3BlYyB9IGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuXG5pbXBvcnQgeyBSZWR1Y2VyLCBTdGF0ZSwgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQge1xuICBEZWZpbmVFbGVtZW50c0dyb3VwQWN0aW9uLFxuICBIaWRlRWxlbWVudEFjdGlvbixcbiAgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZSxcbiAgU2hvd0VsZW1lbnRBY3Rpb24sXG4gIFRvZ2dsZUVsZW1lbnRWaXNpYmlsaXR5QWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0Tmdzc21WaXNpYmlsaXR5U3RhdGUsIHVwZGF0ZU5nc3NtVmlzaWJpbGl0eVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eVJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIE5nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGUudG9nZ2xlRWxlbWVudFZpc2liaWxpdHksXG4gICAgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS5zaG93RWxlbWVudCxcbiAgICBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLmhpZGVFbGVtZW50LFxuICAgIE5nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGUuZGVmaW5lRWxlbWVudHNHcm91cFxuICBdO1xuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS50b2dnbGVFbGVtZW50VmlzaWJpbGl0eToge1xuICAgICAgICBjb25zdCB0b2dnbGVWaXNpYmlsaXR5QWN0aW9uID0gYWN0aW9uIGFzIFRvZ2dsZUVsZW1lbnRWaXNpYmlsaXR5QWN0aW9uO1xuICAgICAgICBpZiAoc2VsZWN0Tmdzc21WaXNpYmlsaXR5U3RhdGUoc3RhdGUpLmVsZW1lbnRzW3RvZ2dsZVZpc2liaWxpdHlBY3Rpb24uZWxlbWVudEtleV0gPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21WaXNpYmlsaXR5U3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgICAgICAgIFt0b2dnbGVWaXNpYmlsaXR5QWN0aW9uLmVsZW1lbnRLZXldOiB7ICRzZXQ6IGZhbHNlIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNldEVsZW1lbnRWaXNpYmxlKHN0YXRlLCB0b2dnbGVWaXNpYmlsaXR5QWN0aW9uLmVsZW1lbnRLZXkpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE5nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGUuc2hvd0VsZW1lbnQ6IHtcbiAgICAgICAgY29uc3Qgc2hvd0FjdGlvbiA9IGFjdGlvbiBhcyBTaG93RWxlbWVudEFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0RWxlbWVudFZpc2libGUoc3RhdGUsIHNob3dBY3Rpb24uZWxlbWVudEtleSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS5oaWRlRWxlbWVudDoge1xuICAgICAgICBjb25zdCBoaWRlQWN0aW9uID0gYWN0aW9uIGFzIEhpZGVFbGVtZW50QWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlTmdzc21WaXNpYmlsaXR5U3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBlbGVtZW50czoge1xuICAgICAgICAgICAgW2hpZGVBY3Rpb24uZWxlbWVudEtleV06IHsgJHNldDogZmFsc2UgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS5kZWZpbmVFbGVtZW50c0dyb3VwOiB7XG4gICAgICAgIGNvbnN0IGRlZmluZUVsZW1lbnRzR3JvdXBBY3Rpb24gPSBhY3Rpb24gYXMgRGVmaW5lRWxlbWVudHNHcm91cEFjdGlvbjtcbiAgICAgICAgY29uc3Qga2V5cyA9IFsuLi5kZWZpbmVFbGVtZW50c0dyb3VwQWN0aW9uLmVsZW1lbnRLZXlzXTtcbiAgICAgICAga2V5cy5zb3J0KCk7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwRXhpc3RzKGtleXMsIHNlbGVjdE5nc3NtVmlzaWJpbGl0eVN0YXRlKHN0YXRlKS5lbGVtZW50c0dyb3VwcykpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVZpc2liaWxpdHlTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIGVsZW1lbnRzR3JvdXBzOiB7ICRwdXNoOiBba2V5c10gfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBwcml2YXRlIGdyb3VwRXhpc3RzKGtleXM6IHN0cmluZ1tdLCBncm91cHM6IHN0cmluZ1tdW10pOiBib29sZWFuIHtcbiAgICBjb25zdCBpbmRleCA9IGdyb3Vwcy5maW5kSW5kZXgoKGdyb3VwKSA9PiB7XG4gICAgICBncm91cC5sZW5ndGggPT09IGtleXMubGVuZ3RoICYmIGdyb3VwLmZpbmRJbmRleCgoaywgaSkgPT4gayAhPT0ga2V5c1tpXSkgPT09IC0xO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gIH1cblxuICBwcml2YXRlIGdldEVsZW1lbnRzS2V5c0dyb3VwZWRXaXRoKGtleTogc3RyaW5nLCBncm91cHM6IHN0cmluZ1tdW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qga2V5cyA9IGdyb3Vwcy5maWx0ZXIoKGcpID0+IGcuaW5jbHVkZXMoa2V5KSkuZmxhdE1hcCgoZykgPT4gZyk7XG4gICAgY29uc3QgZGlzdGluY3RLZXlzID0gbmV3IFNldDxzdHJpbmc+KGtleXMpO1xuICAgIGRpc3RpbmN0S2V5cy5kZWxldGUoa2V5KTtcbiAgICByZXR1cm4gWy4uLmRpc3RpbmN0S2V5c107XG4gIH1cblxuICBwcml2YXRlIHNldEVsZW1lbnRWaXNpYmxlKHN0YXRlOiBTdGF0ZSwga2V5OiBzdHJpbmcpOiBTdGF0ZSB7XG4gICAgY29uc3QgZWxlbWVudHNDb21tYW5kOiBTcGVjPHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9LCBuZXZlcj4gPSB7XG4gICAgICBba2V5XTogeyAkc2V0OiB0cnVlIH1cbiAgICB9O1xuXG4gICAgY29uc3QgYXNzb2NpYXRlZEVsZW1lbnRzID0gdGhpcy5nZXRFbGVtZW50c0tleXNHcm91cGVkV2l0aChrZXksIHNlbGVjdE5nc3NtVmlzaWJpbGl0eVN0YXRlKHN0YXRlKS5lbGVtZW50c0dyb3Vwcyk7XG4gICAgYXNzb2NpYXRlZEVsZW1lbnRzLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICBlbGVtZW50c0NvbW1hbmRbZWxdID0geyAkc2V0OiBmYWxzZSB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZU5nc3NtVmlzaWJpbGl0eVN0YXRlKHN0YXRlLCB7XG4gICAgICBlbGVtZW50czogZWxlbWVudHNDb21tYW5kXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -89,10 +89,10 @@ class CachedItemReducer {
89
89
  }
90
90
  return state;
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CachedItemReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
93
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CachedItemReducer }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CachedItemReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CachedItemReducer }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CachedItemReducer, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CachedItemReducer, decorators: [{
96
96
  type: Injectable
97
97
  }] });
98
98
 
@@ -135,10 +135,10 @@ class VisibilityReducer {
135
135
  elements: elementsCommand
136
136
  });
137
137
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
139
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityReducer }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
139
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityReducer }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityReducer, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityReducer, decorators: [{
142
142
  type: Injectable
143
143
  }] });
144
144
 
@@ -157,10 +157,10 @@ class ToggleElementVisibilityDirective {
157
157
  this.store.dispatchAction(new ToggleElementVisibilityAction(elementKey));
158
158
  }
159
159
  }
160
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ToggleElementVisibilityDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
161
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: ToggleElementVisibilityDirective, isStandalone: true, selector: "[toggleElementVisibility]", inputs: { key: ["toggleElementVisibility", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleElementVisibilityDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
161
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ToggleElementVisibilityDirective, isStandalone: true, selector: "[toggleElementVisibility]", inputs: { key: ["toggleElementVisibility", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
162
162
  }
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ToggleElementVisibilityDirective, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleElementVisibilityDirective, decorators: [{
164
164
  type: Directive,
165
165
  args: [{
166
166
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -179,10 +179,10 @@ class IsElementVisiblePipe {
179
179
  transform(value, ...args) {
180
180
  return selectNgssmVisibilityState(value).elements[args[0]] === true;
181
181
  }
182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsElementVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
183
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: IsElementVisiblePipe, isStandalone: true, name: "isElementVisible" }); }
182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IsElementVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
183
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: IsElementVisiblePipe, isStandalone: true, name: "isElementVisible" }); }
184
184
  }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IsElementVisiblePipe, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IsElementVisiblePipe, decorators: [{
186
186
  type: Pipe,
187
187
  args: [{
188
188
  name: 'isElementVisible',
@@ -201,10 +201,10 @@ class ShowElementDirective {
201
201
  this.store.dispatchAction(new ShowElementAction(elementKey));
202
202
  }
203
203
  }
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ShowElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
205
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: ShowElementDirective, isStandalone: true, selector: "[showElement]", inputs: { key: ["showElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ShowElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
205
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ShowElementDirective, isStandalone: true, selector: "[showElement]", inputs: { key: ["showElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
206
206
  }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ShowElementDirective, decorators: [{
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ShowElementDirective, decorators: [{
208
208
  type: Directive,
209
209
  args: [{
210
210
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -230,10 +230,10 @@ class HideElementDirective {
230
230
  this.store.dispatchAction(new HideElementAction(elementKey));
231
231
  }
232
232
  }
233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HideElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
234
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: HideElementDirective, isStandalone: true, selector: "[hideElement]", inputs: { key: ["hideElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HideElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
234
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: HideElementDirective, isStandalone: true, selector: "[hideElement]", inputs: { key: ["hideElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
235
235
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HideElementDirective, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HideElementDirective, decorators: [{
237
237
  type: Directive,
238
238
  args: [{
239
239
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -254,10 +254,10 @@ class VisibilityToggleGroupComponent extends NgSsmComponent {
254
254
  this.items = [];
255
255
  this.hideMultipleSelectionIndicator = false;
256
256
  }
257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityToggleGroupComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
258
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.0", type: VisibilityToggleGroupComponent, isStandalone: true, selector: "ngssm-visibility-toggle-group", inputs: { items: "items", hideMultipleSelectionIndicator: ["hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] }, usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [multiple]=\"true\" [hideMultipleSelectionIndicator]=\"hideMultipleSelectionIndicator\">\n <mat-button-toggle *ngFor=\"let item of items\" [toggleElementVisibility]=\"item.key\"\n [checked]=\"store.state() | isElementVisible:item.key\" [id]=\"item.key\">\n {{item.label}}\n </mat-button-toggle>\n</mat-button-toggle-group>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: ToggleElementVisibilityDirective, selector: "[toggleElementVisibility]", inputs: ["toggleElementVisibility"] }, { kind: "pipe", type: IsElementVisiblePipe, name: "isElementVisible" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityToggleGroupComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.1", type: VisibilityToggleGroupComponent, isStandalone: true, selector: "ngssm-visibility-toggle-group", inputs: { items: "items", hideMultipleSelectionIndicator: ["hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] }, usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [multiple]=\"true\" [hideMultipleSelectionIndicator]=\"hideMultipleSelectionIndicator\">\n <mat-button-toggle *ngFor=\"let item of items\" [toggleElementVisibility]=\"item.key\"\n [checked]=\"store.state() | isElementVisible:item.key\" [id]=\"item.key\">\n {{item.label}}\n </mat-button-toggle>\n</mat-button-toggle-group>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: ToggleElementVisibilityDirective, selector: "[toggleElementVisibility]", inputs: ["toggleElementVisibility"] }, { kind: "pipe", type: IsElementVisiblePipe, name: "isElementVisible" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VisibilityToggleGroupComponent, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VisibilityToggleGroupComponent, decorators: [{
261
261
  type: Component,
262
262
  args: [{ selector: 'ngssm-visibility-toggle-group', standalone: true, imports: [CommonModule, MatButtonToggleModule, ToggleElementVisibilityDirective, IsElementVisiblePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-button-toggle-group [multiple]=\"true\" [hideMultipleSelectionIndicator]=\"hideMultipleSelectionIndicator\">\n <mat-button-toggle *ngFor=\"let item of items\" [toggleElementVisibility]=\"item.key\"\n [checked]=\"store.state() | isElementVisible:item.key\" [id]=\"item.key\">\n {{item.label}}\n </mat-button-toggle>\n</mat-button-toggle-group>" }]
263
263
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { items: [{
@@ -67,10 +67,10 @@ class Logger {
67
67
  payload
68
68
  });
69
69
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Logger, providedIn: 'root' }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Logger, providedIn: 'root' }); }
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Logger, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Logger, decorators: [{
74
74
  type: Injectable,
75
75
  args: [{
76
76
  providedIn: 'root'
@@ -106,10 +106,10 @@ class ConsoleAppender {
106
106
  stop() {
107
107
  this.stopEvent$.next(true);
108
108
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ConsoleAppender, deps: [{ token: Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
110
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ConsoleAppender, providedIn: 'root' }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleAppender, deps: [{ token: Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
110
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleAppender, providedIn: 'root' }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ConsoleAppender, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleAppender, decorators: [{
113
113
  type: Injectable,
114
114
  args: [{
115
115
  providedIn: 'root'
@@ -248,10 +248,10 @@ class Store {
248
248
  });
249
249
  }
250
250
  }
251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Store, deps: [{ token: Logger }, { token: NGSSM_REDUCER, optional: true }, { token: NGSSM_EFFECT, optional: true }, { token: NGSSM_STATE_INITIALIZER, optional: true }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
252
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Store, providedIn: 'root' }); }
251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Store, deps: [{ token: Logger }, { token: NGSSM_REDUCER, optional: true }, { token: NGSSM_EFFECT, optional: true }, { token: NGSSM_STATE_INITIALIZER, optional: true }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
252
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Store, providedIn: 'root' }); }
253
253
  }
254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: Store, decorators: [{
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Store, decorators: [{
255
255
  type: Injectable,
256
256
  args: [{
257
257
  providedIn: 'root'
@@ -273,6 +273,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
273
273
  type: Optional
274
274
  }] }, { type: i0.EnvironmentInjector }] });
275
275
 
276
+ const NGSSM_COMPONENT_WITH_FEATURE_STATE = new InjectionToken('NGSSM_COMPONENT_WITH_FEATURE_STATE');
277
+
278
+ var NgssmStoreActionType;
279
+ (function (NgssmStoreActionType) {
280
+ NgssmStoreActionType["registerFeatureState"] = "[NgssmStoreActionType] registerFeatureState";
281
+ NgssmStoreActionType["unregisterFeatureState"] = "[NgssmStoreActionType] unregisterFeatureState";
282
+ })(NgssmStoreActionType || (NgssmStoreActionType = {}));
283
+
284
+ class NgssmRegisterFeatureStateAction {
285
+ constructor(featureStateKey, initialValue) {
286
+ this.featureStateKey = featureStateKey;
287
+ this.initialValue = initialValue;
288
+ this.type = NgssmStoreActionType.registerFeatureState;
289
+ }
290
+ }
291
+
292
+ class NgssmUnregisterFeatureStateAction {
293
+ constructor(featureStateKey) {
294
+ this.featureStateKey = featureStateKey;
295
+ this.type = NgssmStoreActionType.unregisterFeatureState;
296
+ }
297
+ }
298
+
299
+ const registerFeatureState = (featureStateKey, initialValue) => {
300
+ return (store) => {
301
+ return () => {
302
+ store.dispatchAction(new NgssmRegisterFeatureStateAction(featureStateKey, initialValue));
303
+ };
304
+ };
305
+ };
306
+ const provideNgssmFeatureState = (featureStateKey, initialValue) => {
307
+ return makeEnvironmentProviders([
308
+ {
309
+ provide: APP_INITIALIZER,
310
+ useFactory: registerFeatureState(featureStateKey, initialValue),
311
+ multi: true,
312
+ deps: [Store]
313
+ }
314
+ ]);
315
+ };
316
+
317
+ // export interface ComponentWithFeatureState {
318
+ // featureStateKey: string;
319
+ // initialValue: object;
320
+ // }
321
+ // export const NGSSM_COMPONENT_WITH_FEATURE_STATE = new InjectionToken<ComponentWithFeatureState>('NGSSM_COMPONENT_WITH_FEATURE_STATE');
322
+ class ProvideNgssmFeatureStateDirective {
323
+ constructor(component, store) {
324
+ this.component = component;
325
+ this.store = store;
326
+ this.store.dispatchAction(new NgssmRegisterFeatureStateAction(this.component.featureStateKey, this.component.initialState));
327
+ }
328
+ ngOnDestroy() {
329
+ this.store.dispatchAction(new NgssmUnregisterFeatureStateAction(this.component.featureStateKey));
330
+ }
331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ProvideNgssmFeatureStateDirective, deps: [{ token: NGSSM_COMPONENT_WITH_FEATURE_STATE }, { token: Store }], target: i0.ɵɵFactoryTarget.Directive }); }
332
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ProvideNgssmFeatureStateDirective, isStandalone: true, selector: "[provideNgssmFeatureState]", ngImport: i0 }); }
333
+ }
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ProvideNgssmFeatureStateDirective, decorators: [{
335
+ type: Directive,
336
+ args: [{
337
+ // eslint-disable-next-line @angular-eslint/directive-selector
338
+ selector: '[provideNgssmFeatureState]',
339
+ standalone: true
340
+ }]
341
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
342
+ type: Inject,
343
+ args: [NGSSM_COMPONENT_WITH_FEATURE_STATE]
344
+ }] }, { type: Store }] });
345
+
346
+ class FeatureStateReducer {
347
+ constructor() {
348
+ this.processedActions = [NgssmStoreActionType.registerFeatureState, NgssmStoreActionType.unregisterFeatureState];
349
+ }
350
+ updateState(state, action) {
351
+ switch (action.type) {
352
+ case NgssmStoreActionType.registerFeatureState: {
353
+ const registerFeatureStateAction = action;
354
+ return update(state, {
355
+ [registerFeatureStateAction.featureStateKey]: { $set: registerFeatureStateAction.initialValue }
356
+ });
357
+ }
358
+ case NgssmStoreActionType.unregisterFeatureState: {
359
+ const unregisterFeatureStateAction = action;
360
+ return update(state, {
361
+ $unset: [unregisterFeatureStateAction.featureStateKey]
362
+ });
363
+ }
364
+ }
365
+ return state;
366
+ }
367
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FeatureStateReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
368
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FeatureStateReducer }); }
369
+ }
370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FeatureStateReducer, decorators: [{
371
+ type: Injectable
372
+ }] });
373
+
276
374
  class NgSsmComponent {
277
375
  constructor(store) {
278
376
  this.store = store;
@@ -294,14 +392,18 @@ class NgSsmComponent {
294
392
  dispatchActionType(actionType) {
295
393
  this.store.dispatchActionType(actionType);
296
394
  }
297
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgSsmComponent, deps: [{ token: Store }], target: i0.ɵɵFactoryTarget.Directive }); }
298
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: NgSsmComponent, ngImport: i0 }); }
395
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgSsmComponent, deps: [{ token: Store }], target: i0.ɵɵFactoryTarget.Directive }); }
396
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: NgSsmComponent, ngImport: i0 }); }
299
397
  }
300
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgSsmComponent, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgSsmComponent, decorators: [{
301
399
  type: Directive,
302
400
  args: [{}]
303
401
  }], ctorParameters: () => [{ type: Store }] });
304
402
 
403
+ const provideNgssmStore = () => {
404
+ return makeEnvironmentProviders([provideReducers(FeatureStateReducer)]);
405
+ };
406
+
305
407
  /*
306
408
  * Public API Surface of ngssm-store
307
409
  */
@@ -310,5 +412,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
310
412
  * Generated bundle index. Do not edit.
311
413
  */
312
414
 
313
- export { ConsoleAppender, LogLevel, Logger, NGSSM_CONSOLE_APPENDER_NAME, NGSSM_EFFECT, NGSSM_REDUCER, NGSSM_STATE_INITIALIZER, NgSsmComponent, NgSsmFeatureState, Store, provideConsoleAppender, provideEffect, provideEffectFunc, provideEffects, provideReducer, provideReducers, startConsoleAppenderFactory };
415
+ export { ConsoleAppender, FeatureStateReducer, LogLevel, Logger, NGSSM_COMPONENT_WITH_FEATURE_STATE, NGSSM_CONSOLE_APPENDER_NAME, NGSSM_EFFECT, NGSSM_REDUCER, NGSSM_STATE_INITIALIZER, NgSsmComponent, NgSsmFeatureState, NgssmRegisterFeatureStateAction, NgssmStoreActionType, NgssmUnregisterFeatureStateAction, ProvideNgssmFeatureStateDirective, Store, provideConsoleAppender, provideEffect, provideEffectFunc, provideEffects, provideNgssmFeatureState, provideNgssmStore, provideReducer, provideReducers, startConsoleAppenderFactory };
314
416
  //# sourceMappingURL=ngssm-store.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-store.mjs","sources":["../../../projects/ngssm-store/src/lib/reducer.ts","../../../projects/ngssm-store/src/lib/effect.ts","../../../projects/ngssm-store/src/lib/state-initializer.ts","../../../projects/ngssm-store/src/lib/logging/log-level.ts","../../../projects/ngssm-store/src/lib/logging/logger.ts","../../../projects/ngssm-store/src/lib/logging/console-appender.ts","../../../projects/ngssm-store/src/lib/logging/provide-console-appender.ts","../../../projects/ngssm-store/src/lib/store.ts","../../../projects/ngssm-store/src/lib/ngssm-component.ts","../../../projects/ngssm-store/src/public-api.ts","../../../projects/ngssm-store/src/ngssm-store.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\n\nexport interface Reducer {\n processedActions: string[];\n updateState(state: State, action: Action): State;\n}\n\nexport const NGSSM_REDUCER = new InjectionToken<Reducer>('NGSSM_REDUCER');\n\nexport const provideReducer = (reducer: Type<any>): EnvironmentProviders => {\n return makeEnvironmentProviders([{ provide: NGSSM_REDUCER, useClass: reducer, multi: true }]);\n};\n\nexport const provideReducers = (...reducers: Type<any>[]): EnvironmentProviders => {\n return makeEnvironmentProviders(reducers.map((reducer) => ({ provide: NGSSM_REDUCER, useClass: reducer, multi: true })));\n};\n","import { EnvironmentProviders, InjectionToken, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\nexport interface Effect {\n processedActions: string[];\n processAction(store: Store, state: State, action: Action): void;\n isFunc?: boolean;\n}\n\nexport const NGSSM_EFFECT = new InjectionToken<Effect>('NGSSM_EFFECT');\n\nexport const provideEffect = (effect: Type<any>): EnvironmentProviders => {\n return makeEnvironmentProviders([{ provide: NGSSM_EFFECT, useClass: effect, multi: true }]);\n};\n\nexport const provideEffects = (...effects: Type<any>[]): EnvironmentProviders => {\n return makeEnvironmentProviders(effects.map((effect) => ({ provide: NGSSM_EFFECT, useClass: effect, multi: true })));\n};\n\nexport interface EffectFunc {\n (state: State, action: Action): void;\n}\n\nexport const provideEffectFunc = (actionType: string, effectFunc: EffectFunc): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: NGSSM_EFFECT,\n useFactory: () => {\n const effect: Effect = {\n processedActions: [actionType],\n processAction: (_, state, action) => effectFunc(state, action),\n isFunc: true\n };\n return effect;\n },\n multi: true\n }\n ]);\n};\n","import { InjectionToken } from '@angular/core';\nimport { State } from './state';\n\nexport interface StateInitializer {\n initializeState(state: State): State;\n}\n\nexport const NGSSM_STATE_INITIALIZER = new InjectionToken<StateInitializer>('NGSSM_STATE_INITIALIZER');\n","export enum LogLevel {\n debug = 'Debug',\n information = 'Information',\n error = 'Error'\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { LogEvent } from './log-event';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Logger {\n private readonly _logEvents$ = new Subject<LogEvent>();\n\n public get logEvents$(): Observable<LogEvent> {\n return this._logEvents$.asObservable();\n }\n\n public debug(message: string, payload?: any): void {\n this.log(LogLevel.debug, message, payload);\n }\n\n public information(message: string, payload?: any): void {\n this.log(LogLevel.information, message, payload);\n }\n\n public error(message: string, payload?: any): void {\n this.log(LogLevel.error, message, payload);\n }\n\n public log(level: LogLevel, message: string, payload?: any): void {\n this._logEvents$.next({\n level,\n message,\n payload\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Logger } from './logger';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsoleAppender {\n private readonly stopEvent$ = new Subject<boolean>();\n\n constructor(private logger: Logger) {}\n\n public start(contextName?: string): void {\n this.logger.logEvents$.pipe(takeUntil(this.stopEvent$)).subscribe((logEvent) => {\n let logFunction: any;\n switch (logEvent.level) {\n case LogLevel.error:\n logFunction = console.error;\n break;\n\n default:\n logFunction = console.log;\n break;\n }\n\n const now = new Date().toLocaleString();\n const prefix = contextName ? `[${contextName}] ` : '';\n\n if (logEvent.payload) {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`, logEvent.payload);\n } else {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`);\n }\n });\n }\n\n public stop(): void {\n this.stopEvent$.next(true);\n }\n}\n","import { APP_INITIALIZER, EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { ConsoleAppender } from './console-appender';\n\nexport const NGSSM_CONSOLE_APPENDER_NAME = new InjectionToken<string>('NGSSM_CONSOLE_APPENDER_NAME');\n\nexport const startConsoleAppenderFactory = (name: string, consoleAppender: ConsoleAppender): (() => void) => {\n return () => {\n consoleAppender.start(name);\n };\n};\n\nexport const provideConsoleAppender = (name: string): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: NGSSM_CONSOLE_APPENDER_NAME,\n useValue: name\n },\n {\n provide: APP_INITIALIZER,\n useFactory: startConsoleAppenderFactory,\n deps: [NGSSM_CONSOLE_APPENDER_NAME, ConsoleAppender],\n multi: true\n }\n ]);\n};\n","import { EnvironmentInjector, Inject, Injectable, Optional, Signal, runInInjectionContext, signal } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport update from 'immutability-helper';\n\nimport { FeatureStateSpecification } from './feature-state-specification';\nimport { State } from './state';\nimport { Action } from './action';\nimport { NGSSM_REDUCER, Reducer } from './reducer';\nimport { Effect, NGSSM_EFFECT } from './effect';\nimport { NGSSM_STATE_INITIALIZER, StateInitializer } from './state-initializer';\nimport { Logger } from './logging';\n\nconst featureStateSpecifications: FeatureStateSpecification[] = [];\nexport const NgSsmFeatureState = (specification: FeatureStateSpecification) => {\n return (target: object) => {\n featureStateSpecifications.push(specification);\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Store {\n private readonly _state$ = new BehaviorSubject<State>({});\n private readonly actionQueue: Action[] = [];\n private readonly reducersPerActionType = new Map<string, Reducer[]>();\n private readonly effectsPerActionType = new Map<string, Effect[]>();\n private readonly _stateSignal = signal<State>({});\n\n constructor(\n private logger: Logger,\n @Inject(NGSSM_REDUCER) @Optional() reducers: Reducer[],\n @Inject(NGSSM_EFFECT) @Optional() effects: Effect[],\n @Inject(NGSSM_STATE_INITIALIZER) @Optional() initializers: StateInitializer[],\n private injector: EnvironmentInjector\n ) {\n this._state$.subscribe((value) => this._stateSignal.set(value));\n this.logger.information('[Store] ---> state initialization...');\n let state = this._state$.getValue();\n state = featureStateSpecifications.reduce((p, c) => update(p, { [c.featureStateKey]: { $set: c.initialState } }), state);\n\n (initializers ?? []).forEach((initializer) => {\n this.logger.information('[Store] ------> calling initializer', initializer);\n state = initializer.initializeState(state);\n });\n\n this._state$.next(state);\n\n this.logger.information(`[Store] ---> initialization of ${(reducers ?? []).length} reducers...`);\n (reducers ?? []).forEach((reducer) => {\n this.logger.information('[Store] ------> initialization of ', reducer);\n reducer.processedActions.forEach((processedAction) => {\n const storeReducers: Reducer[] = this.reducersPerActionType.get(processedAction) ?? [];\n if (storeReducers.length === 0) {\n this.reducersPerActionType.set(processedAction, storeReducers);\n }\n\n storeReducers.push(reducer);\n });\n });\n\n this.logger.information(`[Store] ---> initialization of ${(effects ?? []).length} effects...`);\n (effects ?? []).forEach((effect) => {\n this.logger.information('[Store] ------> initialization of ', effect);\n effect.processedActions.forEach((processedAction) => {\n const storedEffects: Effect[] = this.effectsPerActionType.get(processedAction) ?? [];\n if (storedEffects.length === 0) {\n this.effectsPerActionType.set(processedAction, storedEffects);\n }\n\n storedEffects.push(effect);\n });\n });\n }\n\n public get state$(): Observable<State> {\n return this._state$.asObservable();\n }\n\n public get state(): Signal<State> {\n return this._stateSignal.asReadonly();\n }\n\n public dispatchAction(action: Action): void {\n this.actionQueue.push(action);\n this.logger.debug(`Action of type '${action.type}' added to the queue => ${this.actionQueue.length} pending actions`, action);\n setTimeout(() => this.processNextAction());\n }\n\n public dispatchActionType(type: string): void {\n this.dispatchAction({ type });\n }\n\n private processNextAction(): void {\n const nextAction = this.actionQueue.shift();\n if (!nextAction) {\n this.logger.debug('[processNextAction] No action to process');\n return;\n }\n\n this.logger.information(`[processNextAction] Start processing action '${nextAction.type}...`, nextAction);\n\n try {\n const reducers = this.reducersPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${reducers.length} reducers found to process the action ${nextAction.type}`, reducers);\n const currentState = this._state$.getValue();\n const updatedState = reducers.reduce((p, c) => c.updateState(p, nextAction), currentState);\n\n if (updatedState !== currentState) {\n this._state$.next(updatedState);\n }\n\n const effects = this.effectsPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${effects.length} effects found to process the action ${nextAction.type}`, effects);\n effects.forEach((effect) => {\n if (effect.isFunc === true) {\n runInInjectionContext(this.injector, () => this.runEffect(effect, updatedState, nextAction));\n } else {\n this.runEffect(effect, updatedState, nextAction);\n }\n });\n } catch (error) {\n this.logger.error(`Error when processing action ${nextAction.type}`, {\n error,\n action: nextAction\n });\n } finally {\n this.logger.information(`[processNextAction] action '${nextAction.type} processed.`, nextAction);\n\n // Should not be useful.But, just in case.\n setTimeout(() => this.processNextAction());\n }\n }\n\n private runEffect(effect: Effect, updatedState: State, nextAction: Action) {\n try {\n effect.processAction(this, updatedState, nextAction);\n } catch (error) {\n this.logger.error(`Unable to process action ${nextAction.type} by effect ${effect}`, {\n error,\n action: nextAction,\n processor: effect\n });\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { map, Observable, Subject, distinctUntilChanged, takeUntil } from 'rxjs';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\n@Directive({})\nexport class NgSsmComponent implements OnDestroy {\n private readonly _unsubscribeAll$ = new Subject<void>();\n\n constructor(protected store: Store) {}\n\n protected get unsubscribeAll$(): Observable<void> {\n return this._unsubscribeAll$.asObservable();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public watch<T>(selector: (state: State) => T): Observable<T> {\n return this.store.state$.pipe(\n map((state) => selector(state)),\n distinctUntilChanged(),\n takeUntil(this.unsubscribeAll$)\n );\n }\n\n public dispatchAction(action: Action): void {\n this.store.dispatchAction(action);\n }\n\n public dispatchActionType(actionType: string): void {\n this.store.dispatchActionType(actionType);\n }\n}\n","/*\n * Public API Surface of ngssm-store\n */\n\nexport * from './lib/store';\nexport * from './lib/state';\nexport * from './lib/action';\nexport * from './lib/reducer';\nexport * from './lib/effect';\nexport * from './lib/feature-state-specification';\nexport * from './lib/ngssm-component';\nexport * from './lib/state-initializer';\nexport * from './lib/logging';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.Logger","i1.Store"],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-store.mjs","sources":["../../../projects/ngssm-store/src/lib/reducer.ts","../../../projects/ngssm-store/src/lib/effect.ts","../../../projects/ngssm-store/src/lib/state-initializer.ts","../../../projects/ngssm-store/src/lib/logging/log-level.ts","../../../projects/ngssm-store/src/lib/logging/logger.ts","../../../projects/ngssm-store/src/lib/logging/console-appender.ts","../../../projects/ngssm-store/src/lib/logging/provide-console-appender.ts","../../../projects/ngssm-store/src/lib/store.ts","../../../projects/ngssm-store/src/lib/feature-state/feature-state-specification.ts","../../../projects/ngssm-store/src/lib/actions/ngssm-store-action-type.ts","../../../projects/ngssm-store/src/lib/actions/ngssm-register-feature-state.action.ts","../../../projects/ngssm-store/src/lib/actions/ngssm-unregister-feature-state.action.ts","../../../projects/ngssm-store/src/lib/feature-state/provide-feature-state.ts","../../../projects/ngssm-store/src/lib/feature-state/provide-ngssm-feature-state.directive.ts","../../../projects/ngssm-store/src/lib/feature-state/feature-state.reducer.ts","../../../projects/ngssm-store/src/lib/ngssm-component.ts","../../../projects/ngssm-store/src/lib/provide-ngssm-store.ts","../../../projects/ngssm-store/src/public-api.ts","../../../projects/ngssm-store/src/ngssm-store.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\n\nexport interface Reducer {\n processedActions: string[];\n updateState(state: State, action: Action): State;\n}\n\nexport const NGSSM_REDUCER = new InjectionToken<Reducer>('NGSSM_REDUCER');\n\nexport const provideReducer = (reducer: Type<any>): EnvironmentProviders => {\n return makeEnvironmentProviders([{ provide: NGSSM_REDUCER, useClass: reducer, multi: true }]);\n};\n\nexport const provideReducers = (...reducers: Type<any>[]): EnvironmentProviders => {\n return makeEnvironmentProviders(reducers.map((reducer) => ({ provide: NGSSM_REDUCER, useClass: reducer, multi: true })));\n};\n","import { EnvironmentProviders, InjectionToken, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\nexport interface Effect {\n processedActions: string[];\n processAction(store: Store, state: State, action: Action): void;\n isFunc?: boolean;\n}\n\nexport const NGSSM_EFFECT = new InjectionToken<Effect>('NGSSM_EFFECT');\n\nexport const provideEffect = (effect: Type<any>): EnvironmentProviders => {\n return makeEnvironmentProviders([{ provide: NGSSM_EFFECT, useClass: effect, multi: true }]);\n};\n\nexport const provideEffects = (...effects: Type<any>[]): EnvironmentProviders => {\n return makeEnvironmentProviders(effects.map((effect) => ({ provide: NGSSM_EFFECT, useClass: effect, multi: true })));\n};\n\nexport interface EffectFunc {\n (state: State, action: Action): void;\n}\n\nexport const provideEffectFunc = (actionType: string, effectFunc: EffectFunc): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: NGSSM_EFFECT,\n useFactory: () => {\n const effect: Effect = {\n processedActions: [actionType],\n processAction: (_, state, action) => effectFunc(state, action),\n isFunc: true\n };\n return effect;\n },\n multi: true\n }\n ]);\n};\n","import { InjectionToken } from '@angular/core';\nimport { State } from './state';\n\nexport interface StateInitializer {\n initializeState(state: State): State;\n}\n\nexport const NGSSM_STATE_INITIALIZER = new InjectionToken<StateInitializer>('NGSSM_STATE_INITIALIZER');\n","export enum LogLevel {\n debug = 'Debug',\n information = 'Information',\n error = 'Error'\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { LogEvent } from './log-event';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Logger {\n private readonly _logEvents$ = new Subject<LogEvent>();\n\n public get logEvents$(): Observable<LogEvent> {\n return this._logEvents$.asObservable();\n }\n\n public debug(message: string, payload?: any): void {\n this.log(LogLevel.debug, message, payload);\n }\n\n public information(message: string, payload?: any): void {\n this.log(LogLevel.information, message, payload);\n }\n\n public error(message: string, payload?: any): void {\n this.log(LogLevel.error, message, payload);\n }\n\n public log(level: LogLevel, message: string, payload?: any): void {\n this._logEvents$.next({\n level,\n message,\n payload\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Logger } from './logger';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsoleAppender {\n private readonly stopEvent$ = new Subject<boolean>();\n\n constructor(private logger: Logger) {}\n\n public start(contextName?: string): void {\n this.logger.logEvents$.pipe(takeUntil(this.stopEvent$)).subscribe((logEvent) => {\n let logFunction: any;\n switch (logEvent.level) {\n case LogLevel.error:\n logFunction = console.error;\n break;\n\n default:\n logFunction = console.log;\n break;\n }\n\n const now = new Date().toLocaleString();\n const prefix = contextName ? `[${contextName}] ` : '';\n\n if (logEvent.payload) {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`, logEvent.payload);\n } else {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`);\n }\n });\n }\n\n public stop(): void {\n this.stopEvent$.next(true);\n }\n}\n","import { APP_INITIALIZER, EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { ConsoleAppender } from './console-appender';\n\nexport const NGSSM_CONSOLE_APPENDER_NAME = new InjectionToken<string>('NGSSM_CONSOLE_APPENDER_NAME');\n\nexport const startConsoleAppenderFactory = (name: string, consoleAppender: ConsoleAppender): (() => void) => {\n return () => {\n consoleAppender.start(name);\n };\n};\n\nexport const provideConsoleAppender = (name: string): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: NGSSM_CONSOLE_APPENDER_NAME,\n useValue: name\n },\n {\n provide: APP_INITIALIZER,\n useFactory: startConsoleAppenderFactory,\n deps: [NGSSM_CONSOLE_APPENDER_NAME, ConsoleAppender],\n multi: true\n }\n ]);\n};\n","import { EnvironmentInjector, Inject, Injectable, Optional, Signal, runInInjectionContext, signal } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport update from 'immutability-helper';\n\nimport { FeatureStateSpecification } from './feature-state';\nimport { State } from './state';\nimport { Action } from './action';\nimport { NGSSM_REDUCER, Reducer } from './reducer';\nimport { Effect, NGSSM_EFFECT } from './effect';\nimport { NGSSM_STATE_INITIALIZER, StateInitializer } from './state-initializer';\nimport { Logger } from './logging';\n\nconst featureStateSpecifications: FeatureStateSpecification[] = [];\nexport const NgSsmFeatureState = (specification: FeatureStateSpecification) => {\n return (target: object) => {\n featureStateSpecifications.push(specification);\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Store {\n private readonly _state$ = new BehaviorSubject<State>({});\n private readonly actionQueue: Action[] = [];\n private readonly reducersPerActionType = new Map<string, Reducer[]>();\n private readonly effectsPerActionType = new Map<string, Effect[]>();\n private readonly _stateSignal = signal<State>({});\n\n constructor(\n private logger: Logger,\n @Inject(NGSSM_REDUCER) @Optional() reducers: Reducer[],\n @Inject(NGSSM_EFFECT) @Optional() effects: Effect[],\n @Inject(NGSSM_STATE_INITIALIZER) @Optional() initializers: StateInitializer[],\n private injector: EnvironmentInjector\n ) {\n this._state$.subscribe((value) => this._stateSignal.set(value));\n this.logger.information('[Store] ---> state initialization...');\n let state = this._state$.getValue();\n state = featureStateSpecifications.reduce((p, c) => update(p, { [c.featureStateKey]: { $set: c.initialState } }), state);\n\n (initializers ?? []).forEach((initializer) => {\n this.logger.information('[Store] ------> calling initializer', initializer);\n state = initializer.initializeState(state);\n });\n\n this._state$.next(state);\n\n this.logger.information(`[Store] ---> initialization of ${(reducers ?? []).length} reducers...`);\n (reducers ?? []).forEach((reducer) => {\n this.logger.information('[Store] ------> initialization of ', reducer);\n reducer.processedActions.forEach((processedAction) => {\n const storeReducers: Reducer[] = this.reducersPerActionType.get(processedAction) ?? [];\n if (storeReducers.length === 0) {\n this.reducersPerActionType.set(processedAction, storeReducers);\n }\n\n storeReducers.push(reducer);\n });\n });\n\n this.logger.information(`[Store] ---> initialization of ${(effects ?? []).length} effects...`);\n (effects ?? []).forEach((effect) => {\n this.logger.information('[Store] ------> initialization of ', effect);\n effect.processedActions.forEach((processedAction) => {\n const storedEffects: Effect[] = this.effectsPerActionType.get(processedAction) ?? [];\n if (storedEffects.length === 0) {\n this.effectsPerActionType.set(processedAction, storedEffects);\n }\n\n storedEffects.push(effect);\n });\n });\n }\n\n public get state$(): Observable<State> {\n return this._state$.asObservable();\n }\n\n public get state(): Signal<State> {\n return this._stateSignal.asReadonly();\n }\n\n public dispatchAction(action: Action): void {\n this.actionQueue.push(action);\n this.logger.debug(`Action of type '${action.type}' added to the queue => ${this.actionQueue.length} pending actions`, action);\n setTimeout(() => this.processNextAction());\n }\n\n public dispatchActionType(type: string): void {\n this.dispatchAction({ type });\n }\n\n private processNextAction(): void {\n const nextAction = this.actionQueue.shift();\n if (!nextAction) {\n this.logger.debug('[processNextAction] No action to process');\n return;\n }\n\n this.logger.information(`[processNextAction] Start processing action '${nextAction.type}...`, nextAction);\n\n try {\n const reducers = this.reducersPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${reducers.length} reducers found to process the action ${nextAction.type}`, reducers);\n const currentState = this._state$.getValue();\n const updatedState = reducers.reduce((p, c) => c.updateState(p, nextAction), currentState);\n\n if (updatedState !== currentState) {\n this._state$.next(updatedState);\n }\n\n const effects = this.effectsPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${effects.length} effects found to process the action ${nextAction.type}`, effects);\n effects.forEach((effect) => {\n if (effect.isFunc === true) {\n runInInjectionContext(this.injector, () => this.runEffect(effect, updatedState, nextAction));\n } else {\n this.runEffect(effect, updatedState, nextAction);\n }\n });\n } catch (error) {\n this.logger.error(`Error when processing action ${nextAction.type}`, {\n error,\n action: nextAction\n });\n } finally {\n this.logger.information(`[processNextAction] action '${nextAction.type} processed.`, nextAction);\n\n // Should not be useful.But, just in case.\n setTimeout(() => this.processNextAction());\n }\n }\n\n private runEffect(effect: Effect, updatedState: State, nextAction: Action) {\n try {\n effect.processAction(this, updatedState, nextAction);\n } catch (error) {\n this.logger.error(`Unable to process action ${nextAction.type} by effect ${effect}`, {\n error,\n action: nextAction,\n processor: effect\n });\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface FeatureStateSpecification {\n readonly featureStateKey: string;\n readonly initialState: object;\n}\n\nexport const NGSSM_COMPONENT_WITH_FEATURE_STATE = new InjectionToken<FeatureStateSpecification>('NGSSM_COMPONENT_WITH_FEATURE_STATE');\n","export enum NgssmStoreActionType {\n registerFeatureState = '[NgssmStoreActionType] registerFeatureState',\n unregisterFeatureState = '[NgssmStoreActionType] unregisterFeatureState'\n}\n","import { Action } from '../action';\nimport { NgssmStoreActionType } from './ngssm-store-action-type';\n\nexport class NgssmRegisterFeatureStateAction implements Action {\n public readonly type: string = NgssmStoreActionType.registerFeatureState;\n\n constructor(\n public readonly featureStateKey: string,\n public readonly initialValue: object\n ) {}\n}\n","import { Action } from '../action';\nimport { NgssmStoreActionType } from './ngssm-store-action-type';\n\nexport class NgssmUnregisterFeatureStateAction implements Action {\n public readonly type: string = NgssmStoreActionType.unregisterFeatureState;\n\n constructor(public readonly featureStateKey: string) {}\n}\n","import { APP_INITIALIZER, EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { Store } from '../store';\nimport { NgssmRegisterFeatureStateAction } from '../actions';\n\nconst registerFeatureState = (featureStateKey: string, initialValue: object) => {\n return (store: Store): (() => void) => {\n return () => {\n store.dispatchAction(new NgssmRegisterFeatureStateAction(featureStateKey, initialValue));\n };\n };\n};\n\nexport const provideNgssmFeatureState = (featureStateKey: string, initialValue: object): EnvironmentProviders => {\n return makeEnvironmentProviders([\n {\n provide: APP_INITIALIZER,\n useFactory: registerFeatureState(featureStateKey, initialValue),\n multi: true,\n deps: [Store]\n }\n ]);\n};\n","import { Directive, Inject, InjectionToken, OnDestroy } from '@angular/core';\n\nimport { Store } from '../store';\nimport { NgssmRegisterFeatureStateAction, NgssmUnregisterFeatureStateAction } from '../actions';\nimport { FeatureStateSpecification, NGSSM_COMPONENT_WITH_FEATURE_STATE } from './feature-state-specification';\n\n// export interface ComponentWithFeatureState {\n// featureStateKey: string;\n// initialValue: object;\n// }\n\n// export const NGSSM_COMPONENT_WITH_FEATURE_STATE = new InjectionToken<ComponentWithFeatureState>('NGSSM_COMPONENT_WITH_FEATURE_STATE');\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[provideNgssmFeatureState]',\n standalone: true\n})\nexport class ProvideNgssmFeatureStateDirective implements OnDestroy {\n constructor(\n @Inject(NGSSM_COMPONENT_WITH_FEATURE_STATE) private component: FeatureStateSpecification,\n private store: Store\n ) {\n this.store.dispatchAction(new NgssmRegisterFeatureStateAction(this.component.featureStateKey, this.component.initialState));\n }\n\n public ngOnDestroy(): void {\n this.store.dispatchAction(new NgssmUnregisterFeatureStateAction(this.component.featureStateKey));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport update from 'immutability-helper';\n\nimport { Reducer } from '../reducer';\nimport { NgssmRegisterFeatureStateAction, NgssmStoreActionType, NgssmUnregisterFeatureStateAction } from '../actions';\nimport { State } from '../state';\nimport { Action } from '../action';\n\n@Injectable()\nexport class FeatureStateReducer implements Reducer {\n public readonly processedActions: string[] = [NgssmStoreActionType.registerFeatureState, NgssmStoreActionType.unregisterFeatureState];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case NgssmStoreActionType.registerFeatureState: {\n const registerFeatureStateAction = action as NgssmRegisterFeatureStateAction;\n return update(state, {\n [registerFeatureStateAction.featureStateKey]: { $set: registerFeatureStateAction.initialValue }\n });\n }\n\n case NgssmStoreActionType.unregisterFeatureState: {\n const unregisterFeatureStateAction = action as NgssmUnregisterFeatureStateAction;\n return update(state, {\n $unset: [unregisterFeatureStateAction.featureStateKey]\n });\n }\n }\n\n return state;\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { map, Observable, Subject, distinctUntilChanged, takeUntil } from 'rxjs';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\n@Directive({})\nexport class NgSsmComponent implements OnDestroy {\n private readonly _unsubscribeAll$ = new Subject<void>();\n\n constructor(protected store: Store) {}\n\n protected get unsubscribeAll$(): Observable<void> {\n return this._unsubscribeAll$.asObservable();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public watch<T>(selector: (state: State) => T): Observable<T> {\n return this.store.state$.pipe(\n map((state) => selector(state)),\n distinctUntilChanged(),\n takeUntil(this.unsubscribeAll$)\n );\n }\n\n public dispatchAction(action: Action): void {\n this.store.dispatchAction(action);\n }\n\n public dispatchActionType(actionType: string): void {\n this.store.dispatchActionType(actionType);\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\nimport { provideReducers } from './reducer';\nimport { FeatureStateReducer } from './feature-state';\n\nexport const provideNgssmStore = (): EnvironmentProviders => {\n return makeEnvironmentProviders([provideReducers(FeatureStateReducer)]);\n};\n","/*\n * Public API Surface of ngssm-store\n */\n\nexport * from './lib/store';\nexport * from './lib/state';\nexport * from './lib/action';\nexport * from './lib/reducer';\nexport * from './lib/effect';\nexport * from './lib/feature-state';\nexport * from './lib/ngssm-component';\nexport * from './lib/state-initializer';\nexport * from './lib/logging';\nexport * from './lib/actions';\nexport * from './lib/provide-ngssm-store';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.Logger","i1.Store"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './ngssm-store-action-type';
2
+ export * from './ngssm-register-feature-state.action';
3
+ export * from './ngssm-unregister-feature-state.action';
@@ -0,0 +1,7 @@
1
+ import { Action } from '../action';
2
+ export declare class NgssmRegisterFeatureStateAction implements Action {
3
+ readonly featureStateKey: string;
4
+ readonly initialValue: object;
5
+ readonly type: string;
6
+ constructor(featureStateKey: string, initialValue: object);
7
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum NgssmStoreActionType {
2
+ registerFeatureState = "[NgssmStoreActionType] registerFeatureState",
3
+ unregisterFeatureState = "[NgssmStoreActionType] unregisterFeatureState"
4
+ }
@@ -0,0 +1,6 @@
1
+ import { Action } from '../action';
2
+ export declare class NgssmUnregisterFeatureStateAction implements Action {
3
+ readonly featureStateKey: string;
4
+ readonly type: string;
5
+ constructor(featureStateKey: string);
6
+ }
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export interface FeatureStateSpecification {
3
+ readonly featureStateKey: string;
4
+ readonly initialState: object;
5
+ }
6
+ export declare const NGSSM_COMPONENT_WITH_FEATURE_STATE: InjectionToken<FeatureStateSpecification>;
@@ -0,0 +1,10 @@
1
+ import { Reducer } from '../reducer';
2
+ import { State } from '../state';
3
+ import { Action } from '../action';
4
+ import * as i0 from "@angular/core";
5
+ export declare class FeatureStateReducer implements Reducer {
6
+ readonly processedActions: string[];
7
+ updateState(state: State, action: Action): State;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeatureStateReducer, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeatureStateReducer>;
10
+ }
@@ -0,0 +1,4 @@
1
+ export * from './feature-state-specification';
2
+ export * from './provide-feature-state';
3
+ export * from './provide-ngssm-feature-state.directive';
4
+ export * from './feature-state.reducer';
@@ -0,0 +1,2 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ export declare const provideNgssmFeatureState: (featureStateKey: string, initialValue: object) => EnvironmentProviders;
@@ -0,0 +1,12 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { Store } from '../store';
3
+ import { FeatureStateSpecification } from './feature-state-specification';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ProvideNgssmFeatureStateDirective implements OnDestroy {
6
+ private component;
7
+ private store;
8
+ constructor(component: FeatureStateSpecification, store: Store);
9
+ ngOnDestroy(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProvideNgssmFeatureStateDirective, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ProvideNgssmFeatureStateDirective, "[provideNgssmFeatureState]", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,2 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ export declare const provideNgssmStore: () => EnvironmentProviders;
package/lib/state.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export interface State {
2
- [key: string]: any;
2
+ [key: string]: object;
3
3
  }
package/lib/store.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EnvironmentInjector, Signal } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { FeatureStateSpecification } from './feature-state-specification';
3
+ import { FeatureStateSpecification } from './feature-state';
4
4
  import { State } from './state';
5
5
  import { Action } from './action';
6
6
  import { Reducer } from './reducer';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-store",
3
- "version": "17.3.2",
3
+ "version": "18.0.0",
4
4
  "description": "NgSsm - Simple state management implementation.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",
package/public-api.d.ts CHANGED
@@ -3,7 +3,9 @@ export * from './lib/state';
3
3
  export * from './lib/action';
4
4
  export * from './lib/reducer';
5
5
  export * from './lib/effect';
6
- export * from './lib/feature-state-specification';
6
+ export * from './lib/feature-state';
7
7
  export * from './lib/ngssm-component';
8
8
  export * from './lib/state-initializer';
9
9
  export * from './lib/logging';
10
+ export * from './lib/actions';
11
+ export * from './lib/provide-ngssm-store';
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1zdGF0ZS1zcGVjaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9mZWF0dXJlLXN0YXRlLXNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbiB7XG4gIHJlYWRvbmx5IGZlYXR1cmVTdGF0ZUtleTogc3RyaW5nO1xuICByZWFkb25seSBpbml0aWFsU3RhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- export interface FeatureStateSpecification {
2
- readonly featureStateKey: string;
3
- readonly initialState: {
4
- [key: string]: any;
5
- };
6
- }