@angular-architects/ngrx-toolkit 0.0.6 → 0.1.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 (61) hide show
  1. package/.eslintrc.json +43 -0
  2. package/README.md +404 -369
  3. package/jest.config.ts +22 -0
  4. package/ng-package.json +7 -0
  5. package/package.json +3 -16
  6. package/project.json +37 -0
  7. package/{index.d.ts → src/index.ts} +4 -2
  8. package/src/lib/assertions/assertions.ts +9 -0
  9. package/src/lib/redux-connector/create-redux.ts +94 -0
  10. package/{lib/redux-connector/index.d.ts → src/lib/redux-connector/index.ts} +1 -0
  11. package/src/lib/redux-connector/model.ts +67 -0
  12. package/{lib/redux-connector/rxjs-interop/index.d.ts → src/lib/redux-connector/rxjs-interop/index.ts} +1 -0
  13. package/src/lib/redux-connector/rxjs-interop/redux-method.ts +61 -0
  14. package/src/lib/redux-connector/signal-redux-store.ts +54 -0
  15. package/src/lib/redux-connector/util.ts +22 -0
  16. package/src/lib/shared/empty.ts +2 -0
  17. package/src/lib/with-call-state.spec.ts +24 -0
  18. package/src/lib/with-call-state.ts +136 -0
  19. package/src/lib/with-data-service.ts +312 -0
  20. package/src/lib/with-devtools.spec.ts +157 -0
  21. package/src/lib/with-devtools.ts +128 -0
  22. package/src/lib/with-redux.spec.ts +100 -0
  23. package/src/lib/with-redux.ts +261 -0
  24. package/src/lib/with-storage-sync.spec.ts +237 -0
  25. package/src/lib/with-storage-sync.ts +160 -0
  26. package/src/lib/with-undo-redo.ts +184 -0
  27. package/src/test-setup.ts +8 -0
  28. package/tsconfig.json +29 -0
  29. package/tsconfig.lib.json +17 -0
  30. package/tsconfig.lib.prod.json +9 -0
  31. package/tsconfig.spec.json +16 -0
  32. package/esm2022/angular-architects-ngrx-toolkit.mjs +0 -5
  33. package/esm2022/index.mjs +0 -8
  34. package/esm2022/lib/assertions/assertions.mjs +0 -6
  35. package/esm2022/lib/redux-connector/create-redux.mjs +0 -41
  36. package/esm2022/lib/redux-connector/index.mjs +0 -2
  37. package/esm2022/lib/redux-connector/model.mjs +0 -2
  38. package/esm2022/lib/redux-connector/rxjs-interop/index.mjs +0 -2
  39. package/esm2022/lib/redux-connector/rxjs-interop/redux-method.mjs +0 -22
  40. package/esm2022/lib/redux-connector/signal-redux-store.mjs +0 -43
  41. package/esm2022/lib/redux-connector/util.mjs +0 -13
  42. package/esm2022/lib/shared/empty.mjs +0 -2
  43. package/esm2022/lib/with-call-state.mjs +0 -58
  44. package/esm2022/lib/with-data-service.mjs +0 -161
  45. package/esm2022/lib/with-devtools.mjs +0 -79
  46. package/esm2022/lib/with-redux.mjs +0 -95
  47. package/esm2022/lib/with-undo-redo.mjs +0 -93
  48. package/fesm2022/angular-architects-ngrx-toolkit.mjs +0 -600
  49. package/fesm2022/angular-architects-ngrx-toolkit.mjs.map +0 -1
  50. package/lib/assertions/assertions.d.ts +0 -2
  51. package/lib/redux-connector/create-redux.d.ts +0 -13
  52. package/lib/redux-connector/model.d.ts +0 -36
  53. package/lib/redux-connector/rxjs-interop/redux-method.d.ts +0 -11
  54. package/lib/redux-connector/signal-redux-store.d.ts +0 -11
  55. package/lib/redux-connector/util.d.ts +0 -5
  56. package/lib/shared/empty.d.ts +0 -1
  57. package/lib/with-call-state.d.ts +0 -55
  58. package/lib/with-data-service.d.ts +0 -115
  59. package/lib/with-devtools.d.ts +0 -32
  60. package/lib/with-redux.d.ts +0 -57
  61. package/lib/with-undo-redo.d.ts +0 -55
@@ -0,0 +1,184 @@
1
+ import { SignalStoreFeature, patchState, signalStoreFeature, withComputed, withHooks, withMethods } from "@ngrx/signals";
2
+ import { EntityId, EntityMap, EntityState } from "@ngrx/signals/entities";
3
+ import { Signal, effect, signal, untracked, isSignal } from "@angular/core";
4
+ import { EntitySignals, NamedEntitySignals } from "@ngrx/signals/entities/src/models";
5
+ import { Entity, capitalize } from "./with-data-service";
6
+ import { Emtpy } from "./shared/empty";
7
+
8
+ export type StackItem = Record<string, unknown>;
9
+
10
+ export type NormalizedUndoRedoOptions = {
11
+ maxStackSize: number;
12
+ collections?: string[]
13
+ }
14
+
15
+ const defaultOptions: NormalizedUndoRedoOptions = {
16
+ maxStackSize: 100
17
+ };
18
+
19
+ export type NamedUndoRedoState<Collection extends string> = {
20
+ [K in Collection as `${K}EntityMap`]: EntityMap<Entity>;
21
+ } & {
22
+ [K in Collection as `${K}Ids`]: EntityId[];
23
+ }
24
+
25
+ export type NamedUndoRedoSignals<Collection extends string> = {
26
+ [K in Collection as `${K}Entities`]: Signal<Entity[]>
27
+ }
28
+
29
+ export function getUndoRedoKeys(collections?: string[]): string[] {
30
+ if (collections) {
31
+ return collections.flatMap(c => [`${c}EntityMap`, `${c}Ids`, `selected${capitalize(c)}Ids`, `${c}Filter`])
32
+ }
33
+ return ['entityMap', 'ids', 'selectedIds', 'filter'];
34
+ }
35
+
36
+ export function withUndoRedo<Collection extends string>(options?: { maxStackSize?: number; collections: Collection[] }): SignalStoreFeature<
37
+ {
38
+ state: Emtpy,
39
+ // This alternative breaks type inference:
40
+ // state: NamedEntityState<Entity, Collection>
41
+ signals: NamedEntitySignals<Entity, Collection>,
42
+ methods: Emtpy
43
+ },
44
+ {
45
+ state: Emtpy,
46
+ signals: {
47
+ canUndo: Signal<boolean>,
48
+ canRedo: Signal<boolean>
49
+ },
50
+ methods: {
51
+ undo: () => void,
52
+ redo: () => void
53
+ }
54
+ }>;
55
+
56
+ export function withUndoRedo(options?: { maxStackSize?: number }): SignalStoreFeature<
57
+ {
58
+ state: EntityState<Entity>,
59
+ signals: EntitySignals<Entity>,
60
+ methods: Emtpy
61
+ },
62
+ {
63
+ state: Emtpy,
64
+ signals: {
65
+ canUndo: Signal<boolean>,
66
+ canRedo: Signal<boolean>
67
+ },
68
+ methods: {
69
+ undo: () => void,
70
+ redo: () => void
71
+ }
72
+ }>;
73
+
74
+ export function withUndoRedo<Collection extends string>(options: {
75
+ maxStackSize?: number;
76
+ collections?: Collection[]
77
+ } = {}):
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ SignalStoreFeature<any, any> {
80
+ let previous: StackItem | null = null;
81
+ let skipOnce = false;
82
+
83
+ const normalized = {
84
+ ...defaultOptions,
85
+ ...options
86
+ };
87
+
88
+ //
89
+ // Design Decision: This feature has its own
90
+ // internal state.
91
+ //
92
+
93
+ const undoStack: StackItem[] = [];
94
+ const redoStack: StackItem[] = [];
95
+
96
+ const canUndo = signal(false);
97
+ const canRedo = signal(false);
98
+
99
+ const updateInternal = () => {
100
+ canUndo.set(undoStack.length !== 0);
101
+ canRedo.set(redoStack.length !== 0);
102
+ };
103
+
104
+ const keys = getUndoRedoKeys(normalized?.collections);
105
+
106
+ return signalStoreFeature(
107
+
108
+ withComputed(() => ({
109
+ canUndo: canUndo.asReadonly(),
110
+ canRedo: canRedo.asReadonly()
111
+ })),
112
+ withMethods((store) => ({
113
+ undo(): void {
114
+ const item = undoStack.pop();
115
+
116
+ if (item && previous) {
117
+ redoStack.push(previous);
118
+ }
119
+
120
+ if (item) {
121
+ skipOnce = true;
122
+ patchState(store, item);
123
+ previous = item;
124
+ }
125
+
126
+ updateInternal();
127
+ },
128
+ redo(): void {
129
+ const item = redoStack.pop();
130
+
131
+ if (item && previous) {
132
+ undoStack.push(previous);
133
+ }
134
+
135
+ if (item) {
136
+ skipOnce = true;
137
+ patchState(store, item);
138
+ previous = item;
139
+ }
140
+
141
+ updateInternal();
142
+ }
143
+ })),
144
+ withHooks({
145
+ onInit(store: Record<string, unknown>) {
146
+ effect(() => {
147
+
148
+ const cand = keys.reduce((acc, key) => {
149
+ const s = store[key];
150
+ if (s && isSignal(s)) {
151
+ return {
152
+ ...acc,
153
+ [key]: s()
154
+ }
155
+ }
156
+ return acc;
157
+ }, {});
158
+
159
+ if (skipOnce) {
160
+ skipOnce = false;
161
+ return;
162
+ }
163
+
164
+ // Clear redoStack after recorded action
165
+ redoStack.splice(0);
166
+
167
+ if (previous) {
168
+ undoStack.push(previous);
169
+ }
170
+
171
+ if (redoStack.length > normalized.maxStackSize) {
172
+ undoStack.unshift();
173
+ }
174
+
175
+ previous = cand;
176
+
177
+ // Don't propogate current reactive context
178
+ untracked(() => updateInternal());
179
+ })
180
+ }
181
+ })
182
+
183
+ )
184
+ }
@@ -0,0 +1,8 @@
1
+ // @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
2
+ globalThis.ngJest = {
3
+ testEnvironmentOptions: {
4
+ errorOnUnknownElements: true,
5
+ errorOnUnknownProperties: true,
6
+ },
7
+ };
8
+ import 'jest-preset-angular/setup-jest';
package/tsconfig.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2022",
4
+ "useDefineForClassFields": false,
5
+ "forceConsistentCasingInFileNames": true,
6
+ "strict": true,
7
+ "noImplicitOverride": true,
8
+ "noPropertyAccessFromIndexSignature": true,
9
+ "noImplicitReturns": true,
10
+ "noFallthroughCasesInSwitch": true
11
+ },
12
+ "files": [],
13
+ "include": [],
14
+ "references": [
15
+ {
16
+ "path": "./tsconfig.lib.json"
17
+ },
18
+ {
19
+ "path": "./tsconfig.spec.json"
20
+ }
21
+ ],
22
+ "extends": "../../tsconfig.base.json",
23
+ "angularCompilerOptions": {
24
+ "enableI18nLegacyMessageIdFormat": false,
25
+ "strictInjectionParameters": true,
26
+ "strictInputAccessModifiers": true,
27
+ "strictTemplates": true
28
+ }
29
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "inlineSources": true,
8
+ "types": []
9
+ },
10
+ "exclude": [
11
+ "src/**/*.spec.ts",
12
+ "src/test-setup.ts",
13
+ "jest.config.ts",
14
+ "src/**/*.test.ts"
15
+ ],
16
+ "include": ["src/**/*.ts"]
17
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.lib.json",
3
+ "compilerOptions": {
4
+ "declarationMap": false
5
+ },
6
+ "angularCompilerOptions": {
7
+ "compilationMode": "partial"
8
+ }
9
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "module": "commonjs",
6
+ "target": "es2016",
7
+ "types": ["jest", "node"]
8
+ },
9
+ "files": ["src/test-setup.ts"],
10
+ "include": [
11
+ "jest.config.ts",
12
+ "src/**/*.test.ts",
13
+ "src/**/*.spec.ts",
14
+ "src/**/*.d.ts"
15
+ ]
16
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hcmNoaXRlY3RzLW5ncngtdG9vbGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9hbmd1bGFyLWFyY2hpdGVjdHMtbmdyeC10b29sa2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
package/esm2022/index.mjs DELETED
@@ -1,8 +0,0 @@
1
- export { withDevtools, patchState } from './lib/with-devtools';
2
- export * from './lib/with-redux';
3
- export * from './lib/with-call-state';
4
- export * from './lib/with-undo-redo';
5
- export * from './lib/with-data-service';
6
- export * from './lib/redux-connector';
7
- export * from './lib/redux-connector/rxjs-interop';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHdpdGhEZXZ0b29scywgcGF0Y2hTdGF0ZSwgQWN0aW9uIH0gZnJvbSAnLi9saWIvd2l0aC1kZXZ0b29scyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGgtcmVkdXgnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC1jYWxsLXN0YXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC11bmRvLXJlZG8nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLWRhdGEtc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWR1eC1jb25uZWN0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWR1eC1jb25uZWN0b3Ivcnhqcy1pbnRlcm9wJztcclxuIl19
@@ -1,6 +0,0 @@
1
- export function assertActionFnSpecs(obj) {
2
- if (!obj || typeof obj !== 'object') {
3
- throw new Error('%o is not an Action Specification');
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvYXNzZXJ0aW9ucy9hc3NlcnRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBWTtJQUVaLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zRm5TcGVjcyB9IGZyb20gJy4uL3dpdGgtcmVkdXgnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEFjdGlvbkZuU3BlY3MoXHJcbiAgb2JqOiB1bmtub3duXHJcbik6IGFzc2VydHMgb2JqIGlzIEFjdGlvbnNGblNwZWNzIHtcclxuICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCclbyBpcyBub3QgYW4gQWN0aW9uIFNwZWNpZmljYXRpb24nKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,41 +0,0 @@
1
- import { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from "@angular/core";
2
- import { SignalReduxStore, injectReduxDispatch } from "./signal-redux-store";
3
- import { capitalize, isActionCreator } from "./util";
4
- export function mapAction(...args) {
5
- let resultMethod = args.pop();
6
- let storeMethod = args.pop();
7
- if (isActionCreator(storeMethod)) {
8
- args.push(storeMethod);
9
- storeMethod = resultMethod || storeMethod;
10
- resultMethod = undefined;
11
- }
12
- const types = args.map((creator) => creator.type);
13
- return {
14
- types,
15
- storeMethod,
16
- resultMethod
17
- };
18
- }
19
- export function withActionMappers(...mappers) {
20
- return mappers;
21
- }
22
- export function createReduxState(storeName, signalStore, withActionMappers) {
23
- const isRootProvider = signalStore?.ɵprov?.providedIn === 'root';
24
- return {
25
- [`provide${capitalize(storeName)}Store`]: (connectReduxDevtools = false) => makeEnvironmentProviders([
26
- isRootProvider ? [] : signalStore,
27
- {
28
- provide: ENVIRONMENT_INITIALIZER,
29
- multi: true,
30
- useFactory: (signalReduxStore = inject(SignalReduxStore), store = inject(signalStore)) => () => {
31
- if (connectReduxDevtools) {
32
- // addStoreToReduxDevtools(store, storeName, false);
33
- }
34
- signalReduxStore.connectFeatureStore(withActionMappers(store));
35
- }
36
- }
37
- ]),
38
- [`inject${capitalize(storeName)}Store`]: () => Object.assign(inject(signalStore), { dispatch: injectReduxDispatch() })
39
- };
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZHV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3IvY3JlYXRlLXJlZHV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFxQnJELE1BQU0sVUFBVSxTQUFTLENBR3ZCLEdBQUcsSUFJRjtJQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQTJELENBQUM7SUFDdkYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBa0UsQ0FBQztJQUU3RixJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLFdBQVcsR0FBRyxZQUFZLElBQUksV0FBVyxDQUFDO1FBQzFDLFlBQVksR0FBRyxTQUFTLENBQUM7S0FDMUI7SUFFRCxNQUFNLEtBQUssR0FBSSxJQUE0QixDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2lCLENBQUM7SUFFN0MsT0FBTztRQUNMLEtBQUs7UUFDTCxXQUFXO1FBQ1gsWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLE9BQWlEO0lBRXBELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBSTlCLFNBQW9CLEVBQ3BCLFdBQWtCLEVBQ2xCLGlCQUEyRjtJQUUzRixNQUFNLGNBQWMsR0FBSSxXQUFtQixFQUFFLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxDQUFDO0lBQzFFLE9BQU87UUFDTCxDQUFDLFVBQVUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG9CQUFvQixHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDbkcsY0FBYyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDaEM7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsVUFBVSxFQUFFLENBQ1YsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQzNDLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQzNCLEVBQUUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1IsSUFBSSxvQkFBb0IsRUFBRTt3QkFDeEIsb0RBQW9EO3FCQUNyRDtvQkFDRCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FDbEMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQ3pCLENBQUM7Z0JBQ0osQ0FBQzthQUNGO1NBQ0YsQ0FBQztRQUNGLENBQUMsU0FBUyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzFELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDbkIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUNwQztLQUNvQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yLCBBY3Rpb25UeXBlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQ3JlYXRlUmVkdXhTdGF0ZSwgRXh0cmFjdEFjdGlvblR5cGVzLCBNYXBwZXJUeXBlcywgU3RvcmUgfSBmcm9tIFwiLi9tb2RlbFwiO1xyXG5pbXBvcnQgeyBTaWduYWxSZWR1eFN0b3JlLCBpbmplY3RSZWR1eERpc3BhdGNoIH0gZnJvbSBcIi4vc2lnbmFsLXJlZHV4LXN0b3JlXCI7XHJcbmltcG9ydCB7IGNhcGl0YWxpemUsIGlzQWN0aW9uQ3JlYXRvciB9IGZyb20gXCIuL3V0aWxcIjtcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwQWN0aW9uPFxyXG4gIENyZWF0b3JzIGV4dGVuZHMgcmVhZG9ubHkgQWN0aW9uQ3JlYXRvcltdXHJcbj4oXHJcbiAgLi4uYXJnczogW1xyXG4gICAgLi4uY3JlYXRvcnM6IENyZWF0b3JzLFxyXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd25cclxuICBdXHJcbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPjtcclxuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcclxuICBDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXSxcclxuICBUXHJcbj4oXHJcbiAgLi4uYXJnczogW1xyXG4gICAgLi4uY3JlYXRvcnM6IENyZWF0b3JzLFxyXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4sIHJlc3VsdE1ldGhvZDogKGlucHV0OiBUKSA9PiB1bmtub3duKSA9PiB1bmtub3duLFxyXG4gICAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IFQpID0+IHVua25vd25cclxuICBdXHJcbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPjtcclxuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcclxuICBDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXVxyXG4+KFxyXG4gIC4uLmFyZ3M6IFtcclxuICAgIC4uLmNyZWF0b3JzOiBDcmVhdG9ycyxcclxuICAgIHN0b3JlTWV0aG9kOiAoYWN0aW9uOiBBY3Rpb25UeXBlPENyZWF0b3JzW251bWJlcl0+KSA9PiB1bmtub3duLFxyXG4gICAgcmVzdWx0TWV0aG9kPzogKGlucHV0OiB1bmtub3duKSA9PiB1bmtub3duXHJcbiAgXVxyXG4pOiBNYXBwZXJUeXBlczxDcmVhdG9ycz4ge1xyXG4gIGxldCByZXN1bHRNZXRob2QgPSBhcmdzLnBvcCgpIGFzIHVua25vd24gYXMgKChpbnB1dDogdW5rbm93bikgPT4gdW5rbm93biApIHwgdW5kZWZpbmVkO1xyXG4gIGxldCBzdG9yZU1ldGhvZCA9IGFyZ3MucG9wKCkgYXMgdW5rbm93biBhcyAoYWN0aW9uOiBBY3Rpb25UeXBlPENyZWF0b3JzW251bWJlcl0+KSA9PiB1bmtub3duO1xyXG5cclxuICBpZiAoaXNBY3Rpb25DcmVhdG9yKHN0b3JlTWV0aG9kKSkge1xyXG4gICAgYXJncy5wdXNoKHN0b3JlTWV0aG9kKTtcclxuICAgIHN0b3JlTWV0aG9kID0gcmVzdWx0TWV0aG9kIHx8IHN0b3JlTWV0aG9kO1xyXG4gICAgcmVzdWx0TWV0aG9kID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgdHlwZXMgPSAoYXJncyBhcyB1bmtub3duIGFzIENyZWF0b3JzKS5tYXAoXHJcbiAgICAoY3JlYXRvcikgPT4gY3JlYXRvci50eXBlXHJcbiAgKSBhcyB1bmtub3duIGFzIEV4dHJhY3RBY3Rpb25UeXBlczxDcmVhdG9ycz47XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB0eXBlcyxcclxuICAgIHN0b3JlTWV0aG9kLFxyXG4gICAgcmVzdWx0TWV0aG9kXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBY3Rpb25NYXBwZXJzKFxyXG4gIC4uLm1hcHBlcnM6IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W11cclxuKTogTWFwcGVyVHlwZXM8QWN0aW9uQ3JlYXRvcjxhbnksIGFueT5bXT5bXSB7XHJcbiAgcmV0dXJuIG1hcHBlcnM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWR1eFN0YXRlPFxyXG4gIFN0b3JlTmFtZSBleHRlbmRzIHN0cmluZyxcclxuICBTVE9SRSBleHRlbmRzIFN0b3JlXHJcbj4oXHJcbiAgc3RvcmVOYW1lOiBTdG9yZU5hbWUsXHJcbiAgc2lnbmFsU3RvcmU6IFNUT1JFLFxyXG4gIHdpdGhBY3Rpb25NYXBwZXJzOiAoc3RvcmU6IEluc3RhbmNlVHlwZTxTVE9SRT4pID0+IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W10sXHJcbik6IENyZWF0ZVJlZHV4U3RhdGU8U3RvcmVOYW1lLCBTVE9SRT4ge1xyXG4gIGNvbnN0IGlzUm9vdFByb3ZpZGVyID0gKHNpZ25hbFN0b3JlIGFzIGFueSk/Lsm1cHJvdj8ucHJvdmlkZWRJbiA9PT0gJ3Jvb3QnO1xyXG4gIHJldHVybiB7XHJcbiAgICBbYHByb3ZpZGUke2NhcGl0YWxpemUoc3RvcmVOYW1lKX1TdG9yZWBdOiAoY29ubmVjdFJlZHV4RGV2dG9vbHMgPSBmYWxzZSkgPT4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcclxuICAgICAgaXNSb290UHJvdmlkZXI/IFtdIDogc2lnbmFsU3RvcmUsXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgICBzaWduYWxSZWR1eFN0b3JlID0gaW5qZWN0KFNpZ25hbFJlZHV4U3RvcmUpLFxyXG4gICAgICAgICAgc3RvcmUgPSBpbmplY3Qoc2lnbmFsU3RvcmUpXHJcbiAgICAgICAgKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY29ubmVjdFJlZHV4RGV2dG9vbHMpIHtcclxuICAgICAgICAgICAgLy8gYWRkU3RvcmVUb1JlZHV4RGV2dG9vbHMoc3RvcmUsIHN0b3JlTmFtZSwgZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2lnbmFsUmVkdXhTdG9yZS5jb25uZWN0RmVhdHVyZVN0b3JlKFxyXG4gICAgICAgICAgICB3aXRoQWN0aW9uTWFwcGVycyhzdG9yZSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICBdKSxcclxuICAgIFtgaW5qZWN0JHtjYXBpdGFsaXplKHN0b3JlTmFtZSl9U3RvcmVgXTogKCkgPT4gT2JqZWN0LmFzc2lnbihcclxuICAgICAgaW5qZWN0KHNpZ25hbFN0b3JlKSxcclxuICAgICAgeyBkaXNwYXRjaDogaW5qZWN0UmVkdXhEaXNwYXRjaCgpIH1cclxuICAgIClcclxuICB9IGFzIENyZWF0ZVJlZHV4U3RhdGU8U3RvcmVOYW1lLCBTVE9SRT47XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export { createReduxState, mapAction, withActionMappers } from './create-redux';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IHsgY3JlYXRlUmVkdXhTdGF0ZSwgbWFwQWN0aW9uLCB3aXRoQWN0aW9uTWFwcGVycyB9IGZyb20gJy4vY3JlYXRlLXJlZHV4JztcclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFNpZ25hbCwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERlZXBTaWduYWwgfSBmcm9tIFwiQG5ncngvc2lnbmFscy9zcmMvZGVlcC1zaWduYWxcIjtcclxuaW1wb3J0IHsgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0IH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvc3JjL3NpZ25hbC1zdG9yZS1tb2RlbHNcIjtcclxuaW1wb3J0IHsgU3RhdGVTaWduYWwgfSBmcm9tIFwiQG5ncngvc2lnbmFscy9zcmMvc3RhdGUtc2lnbmFsXCI7XHJcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uQ3JlYXRvciwgQWN0aW9uVHlwZSwgUHJldHRpZnkgfSBmcm9tIFwiQG5ncngvc3RvcmUvc3JjL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBVbnN1YnNjcmliYWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgSW5jbHVkZVByb3BUeXBlPFQsIFYsIFdpdGhOZXZlcnMgPVxyXG4gIHsgW0sgaW4ga2V5b2YgVF06IEV4Y2x1ZGU8VFtLXSwgdW5kZWZpbmVkPiBleHRlbmRzIFZcclxuICAgID8gVFtLXSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XHJcbiAgICAgID8gSW5jbHVkZVByb3BUeXBlPFRbS10sIFY+XHJcbiAgICAgIDogVFtLXVxyXG4gICAgOiBuZXZlclxyXG4gIH0+ID0gUHJldHRpZnk8XHJcbiAgICBQaWNrPFxyXG4gICAgICBXaXRoTmV2ZXJzLFxyXG4gICAgICB7IFtLIGluIGtleW9mIFdpdGhOZXZlcnNdOiBXaXRoTmV2ZXJzW0tdIGV4dGVuZHMgbmV2ZXJcclxuICAgICAgICA/IG5ldmVyXHJcbiAgICAgICAgOiBLIGV4dGVuZHMgc3RyaW5nXHJcbiAgICAgICAgICA/IEtcclxuICAgICAgICAgIDogbmV2ZXJcclxuICAgICAgfVtrZXlvZiBXaXRoTmV2ZXJzXVxyXG4gICAgPlxyXG4gID47XHJcblxyXG5leHBvcnQgdHlwZSBTdG9yZSA9IFR5cGU8UmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBTdGF0ZVNpZ25hbDxTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRbJ3N0YXRlJ10+PjtcclxuXHJcbmV4cG9ydCB0eXBlIENyZWF0ZVJlZHV4U3RhdGU8XHJcbiAgU3RvcmVOYW1lIGV4dGVuZHMgc3RyaW5nLFxyXG4gIFNUT1JFIGV4dGVuZHMgU3RvcmVcclxuPiA9IHtcclxuICBbSyBpbiBTdG9yZU5hbWUgYXMgYHByb3ZpZGUke0NhcGl0YWxpemU8Sz59U3RvcmVgXTogKGNvbm5lY3RSZWR1eERldnRvb2xzPzogYm9vbGVhbikgPT4gRW52aXJvbm1lbnRQcm92aWRlcnNcclxufSAmIHtcclxuICBbSyBpbiBTdG9yZU5hbWUgYXMgYGluamVjdCR7Q2FwaXRhbGl6ZTxLPn1TdG9yZWBdOiAoKSA9PiBJbmplY3RhYmxlUmVkdXhTbGljZTxTVE9SRT5cclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdG9yczxTVE9SRSBleHRlbmRzIFN0b3JlPiA9IEluY2x1ZGVQcm9wVHlwZTxJbnN0YW5jZVR5cGU8U1RPUkU+LCBTaWduYWw8dW5rbm93bj4gfCBEZWVwU2lnbmFsPHVua25vd24+PjtcclxuZXhwb3J0IHR5cGUgRGlzcGF0Y2ggPSB7IGRpc3BhdGNoOiAoaW5wdXQ6IEFjdGlvbiB8IE9ic2VydmFibGU8QWN0aW9uPiB8IFNpZ25hbDxBY3Rpb24+KSA9PiBVbnN1YnNjcmliYWJsZSB9O1xyXG5leHBvcnQgdHlwZSBJbmplY3RhYmxlUmVkdXhTbGljZTxTVE9SRSBleHRlbmRzIFN0b3JlPiA9IFNlbGVjdG9yczxTVE9SRT4gJiBEaXNwYXRjaDtcclxuXHJcbmV4cG9ydCB0eXBlIEV4dHJhY3RBY3Rpb25UeXBlczxDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXT4gPSB7XHJcbiAgW0tleSBpbiBrZXlvZiBDcmVhdG9yc106IENyZWF0b3JzW0tleV0gZXh0ZW5kcyBBY3Rpb25DcmVhdG9yPGluZmVyIFQ+XHJcbiAgICA/IFRcclxuICAgIDogbmV2ZXI7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbk1ldGhvZDxULCBWIGV4dGVuZHMgQWN0aW9uID0gQWN0aW9uPiB7XHJcbiAgKGFjdGlvbjogVik6IFQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVNZXRob2Q8XHJcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10sXHJcbiAgUmVzdWx0U3RhdGUgPSB1bmtub3duLFxyXG4+IHtcclxuICAoXHJcbiAgICBhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT5cclxuICApOiBSZXN1bHRTdGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXBwZXJUeXBlczxcclxuICBDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXVxyXG4+IHtcclxuICB0eXBlczogRXh0cmFjdEFjdGlvblR5cGVzPENyZWF0b3JzPixcclxuICBzdG9yZU1ldGhvZDogU3RvcmVNZXRob2Q8Q3JlYXRvcnM+LFxyXG4gIHJlc3VsdE1ldGhvZD86ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd25cclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export { reduxMethod } from './redux-method';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9yeGpzLWludGVyb3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCB7IHJlZHV4TWV0aG9kIH0gZnJvbSAnLi9yZWR1eC1tZXRob2QnO1xyXG4iXX0=
@@ -1,22 +0,0 @@
1
- import { Injector, inject } from "@angular/core";
2
- import { rxMethod } from "@ngrx/signals/rxjs-interop";
3
- import { map, pipe } from "rxjs";
4
- export function reduxMethod(generator, resultMethodOrConfig, config) {
5
- const injector = inject(Injector);
6
- if (typeof resultMethodOrConfig === 'function') {
7
- let unsubscribable;
8
- const inputResultFn = ((input, resultMethod = resultMethodOrConfig) => {
9
- const rxMethodWithResult = rxMethod(pipe(generator, map(resultMethod)), {
10
- ...(config || {}),
11
- injector: config?.injector || injector
12
- });
13
- const rxWithInput = rxMethodWithResult(input);
14
- unsubscribable = { unsubscribe: rxWithInput.unsubscribe.bind(rxWithInput) };
15
- return rxWithInput;
16
- });
17
- inputResultFn.unsubscribe = () => unsubscribable?.unsubscribe();
18
- return inputResultFn;
19
- }
20
- return rxMethod(generator, resultMethodOrConfig);
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivcnhqcy1pbnRlcm9wL3JlZHV4LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUE4QixHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBcUI3RCxNQUFNLFVBQVUsV0FBVyxDQUN6QixTQUFrRSxFQUNsRSxvQkFFQyxFQUNELE1BRUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRTtRQUM5QyxJQUFJLGNBQThCLENBQUM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUNyQixLQUEyQixFQUMzQixZQUFZLEdBQUcsb0JBQW9CLEVBQ25DLEVBQUU7WUFFRixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBUSxJQUFJLENBQzdDLFNBQVMsRUFDVCxHQUFHLENBQUMsWUFBWSxDQUFDLENBQ2xCLEVBQUU7Z0JBQ0QsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLFFBQVE7YUFDdkMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsY0FBYyxHQUFHLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFFNUUsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUErQyxDQUFDO1FBRWpELGFBQWEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhFLE9BQU8sYUFBYSxDQUFDO0tBQ3RCO0lBRUQsT0FBTyxRQUFRLENBQVEsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBTaWduYWwsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IHJ4TWV0aG9kIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvcnhqcy1pbnRlcm9wXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFVuc3Vic2NyaWJhYmxlLCBtYXAsIHBpcGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuXHJcbnR5cGUgUnhNZXRob2RJbnB1dDxJbnB1dD4gPSBJbnB1dCB8IE9ic2VydmFibGU8SW5wdXQ+IHwgU2lnbmFsPElucHV0PjtcclxuXHJcbnR5cGUgUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQsIE1ldGhvZFJlc3VsdCA9IHVua25vd24+ID0gKChcclxuICBpbnB1dDogUnhNZXRob2RJbnB1dDxJbnB1dD4sXHJcbiAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IE1ldGhvZElucHV0KSA9PiBNZXRob2RSZXN1bHRcclxuKSA9PiBVbnN1YnNjcmliYWJsZSkgJiBVbnN1YnNjcmliYWJsZTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWR1eE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQgPSBJbnB1dD4oXHJcbiAgZ2VuZXJhdG9yOiAoc291cmNlJDogT2JzZXJ2YWJsZTxJbnB1dD4pID0+IE9ic2VydmFibGU8TWV0aG9kSW5wdXQ+LFxyXG4gIGNvbmZpZz86IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9XHJcbik6IFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dD47XHJcbmV4cG9ydCBmdW5jdGlvbiByZWR1eE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQgPSBJbnB1dCwgTWV0aG9kUmVzdWx0ID0gdW5rbm93bj4oXHJcbiAgZ2VuZXJhdG9yOiAoc291cmNlJDogT2JzZXJ2YWJsZTxJbnB1dD4pID0+IE9ic2VydmFibGU8TWV0aG9kSW5wdXQ+LFxyXG4gIHJlc3VsdE1ldGhvZDogKGlucHV0OiBNZXRob2RJbnB1dCkgPT4gTWV0aG9kUmVzdWx0LFxyXG4gIGNvbmZpZz86IHtcclxuICAgIGluamVjdG9yPzogSW5qZWN0b3JcclxuICB9XHJcbik6IFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCwgTWV0aG9kUmVzdWx0PjtcclxuZXhwb3J0IGZ1bmN0aW9uIHJlZHV4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPihcclxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXHJcbiAgcmVzdWx0TWV0aG9kT3JDb25maWc/OiAoKGlucHV0OiBNZXRob2RJbnB1dCkgPT4gTWV0aG9kUmVzdWx0KSB8IHtcclxuICAgIGluamVjdG9yPzogSW5qZWN0b3JcclxuICB9LFxyXG4gIGNvbmZpZz86IHtcclxuICAgIGluamVjdG9yPzogSW5qZWN0b3JcclxuICB9XHJcbik6IFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCwgTWV0aG9kUmVzdWx0PiAge1xyXG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgaWYgKHR5cGVvZiByZXN1bHRNZXRob2RPckNvbmZpZyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgbGV0IHVuc3Vic2NyaWJhYmxlOiBVbnN1YnNjcmliYWJsZTtcclxuICAgIGNvbnN0IGlucHV0UmVzdWx0Rm4gPSAoKFxyXG4gICAgICBpbnB1dDogUnhNZXRob2RJbnB1dDxJbnB1dD4sXHJcbiAgICAgIHJlc3VsdE1ldGhvZCA9IHJlc3VsdE1ldGhvZE9yQ29uZmlnXHJcbiAgICApID0+IHtcclxuXHJcbiAgICAgIGNvbnN0IHJ4TWV0aG9kV2l0aFJlc3VsdCA9IHJ4TWV0aG9kPElucHV0PihwaXBlKFxyXG4gICAgICAgIGdlbmVyYXRvcixcclxuICAgICAgICBtYXAocmVzdWx0TWV0aG9kKVxyXG4gICAgICApLCB7XHJcbiAgICAgICAgLi4uKGNvbmZpZyB8fCB7fSksXHJcbiAgICAgICAgaW5qZWN0b3I6IGNvbmZpZz8uaW5qZWN0b3IgfHwgaW5qZWN0b3JcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IHJ4V2l0aElucHV0ID0gcnhNZXRob2RXaXRoUmVzdWx0KGlucHV0KTtcclxuICAgICAgdW5zdWJzY3JpYmFibGUgPSB7IHVuc3Vic2NyaWJlOiByeFdpdGhJbnB1dC51bnN1YnNjcmliZS5iaW5kKHJ4V2l0aElucHV0KSB9O1xyXG5cclxuICAgICAgcmV0dXJuIHJ4V2l0aElucHV0O1xyXG4gICAgfSkgYXMgUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0LCBNZXRob2RSZXN1bHQ+O1xyXG5cclxuICAgIGlucHV0UmVzdWx0Rm4udW5zdWJzY3JpYmUgPSAoKSA9PiB1bnN1YnNjcmliYWJsZT8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXRSZXN1bHRGbjtcclxuICB9XHJcblxyXG4gIHJldHVybiByeE1ldGhvZDxJbnB1dD4oZ2VuZXJhdG9yLCByZXN1bHRNZXRob2RPckNvbmZpZyk7XHJcbn1cclxuIl19
@@ -1,43 +0,0 @@
1
- import { Injectable, inject } from "@angular/core";
2
- import { rxMethod } from "@ngrx/signals/rxjs-interop";
3
- import { pipe, tap } from "rxjs";
4
- import { isUnsubscribable } from "./util";
5
- import * as i0 from "@angular/core";
6
- export class SignalReduxStore {
7
- constructor() {
8
- this.mapperDict = {};
9
- this.dispatch = rxMethod(pipe(tap((action) => {
10
- const callbacks = this.mapperDict[action.type];
11
- if (callbacks?.storeMethod) {
12
- if (isUnsubscribable(callbacks.storeMethod) &&
13
- callbacks.resultMethod) {
14
- return callbacks.storeMethod(action, (a) => {
15
- const resultAction = callbacks.resultMethod?.(a);
16
- this.dispatch(resultAction);
17
- });
18
- }
19
- return callbacks?.storeMethod(action);
20
- }
21
- return;
22
- })));
23
- }
24
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
- connectFeatureStore(mappers) {
26
- mappers.forEach(mapper => mapper.types.forEach(action => this.mapperDict[action] = {
27
- storeMethod: mapper.storeMethod,
28
- resultMethod: mapper.resultMethod
29
- }));
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: SignalReduxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: SignalReduxStore, providedIn: 'root' }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: SignalReduxStore, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root'
38
- }]
39
- }] });
40
- export function injectReduxDispatch() {
41
- return inject(SignalReduxStore).dispatch;
42
- }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXJlZHV4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivc2lnbmFsLXJlZHV4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJVSxlQUFVLEdBR2IsRUFBRSxDQUFDO1FBRVIsYUFBUSxHQUFHLFFBQVEsQ0FBUyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRTtnQkFDMUIsSUFDRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO29CQUN2QyxTQUFTLENBQUMsWUFBWSxFQUN0QjtvQkFDQSxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUU7d0JBQ2pELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQVcsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDOUIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsT0FBTyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTztRQUNULENBQUMsQ0FBQyxDQUNILENBQUMsQ0FBQztLQWFKO0lBWEMsOERBQThEO0lBQzlELG1CQUFtQixDQUFDLE9BQWlEO1FBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQ2IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDNUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ2xDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7U0FDbEMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOzhHQXJDVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBeUNELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IHJ4TWV0aG9kIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvcnhqcy1pbnRlcm9wXCI7XHJcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uQ3JlYXRvciB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBwaXBlLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXBwZXJUeXBlcyB9IGZyb20gXCIuL21vZGVsXCI7XHJcbmltcG9ydCB7IGlzVW5zdWJzY3JpYmFibGUgfSBmcm9tIFwiLi91dGlsXCI7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lnbmFsUmVkdXhTdG9yZSB7XHJcbiAgcHJpdmF0ZSBtYXBwZXJEaWN0OiBSZWNvcmQ8c3RyaW5nLCB7XHJcbiAgICBzdG9yZU1ldGhvZDogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bixcclxuICAgIHJlc3VsdE1ldGhvZD86ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24sXHJcbiAgfT4gPSB7fTtcclxuXHJcbiAgZGlzcGF0Y2ggPSByeE1ldGhvZDxBY3Rpb24+KHBpcGUoXHJcbiAgICB0YXAoKGFjdGlvbjogQWN0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IHRoaXMubWFwcGVyRGljdFthY3Rpb24udHlwZV07XHJcbiAgICAgIGlmIChjYWxsYmFja3M/LnN0b3JlTWV0aG9kKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaXNVbnN1YnNjcmliYWJsZShjYWxsYmFja3Muc3RvcmVNZXRob2QpICYmXHJcbiAgICAgICAgICBjYWxsYmFja3MucmVzdWx0TWV0aG9kXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2tzLnN0b3JlTWV0aG9kKGFjdGlvbiwgKGE6IEFjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHRBY3Rpb24gPSBjYWxsYmFja3MucmVzdWx0TWV0aG9kPy4oYSkgYXMgQWN0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoKHJlc3VsdEFjdGlvbik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjYWxsYmFja3M/LnN0b3JlTWV0aG9kKGFjdGlvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH0pXHJcbiAgKSk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29ubmVjdEZlYXR1cmVTdG9yZShtYXBwZXJzOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdKTogdm9pZCB7XHJcbiAgICBtYXBwZXJzLmZvckVhY2goXHJcbiAgICAgIG1hcHBlciA9PiBtYXBwZXIudHlwZXMuZm9yRWFjaChcclxuICAgICAgICBhY3Rpb24gPT4gdGhpcy5tYXBwZXJEaWN0W2FjdGlvbl0gPSB7XHJcbiAgICAgICAgICBzdG9yZU1ldGhvZDogbWFwcGVyLnN0b3JlTWV0aG9kLFxyXG4gICAgICAgICAgcmVzdWx0TWV0aG9kOiBtYXBwZXIucmVzdWx0TWV0aG9kXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJlZHV4RGlzcGF0Y2goKSB7XHJcbiAgcmV0dXJuIGluamVjdChTaWduYWxSZWR1eFN0b3JlKS5kaXNwYXRjaDtcclxufVxyXG4iXX0=
@@ -1,13 +0,0 @@
1
- export function isUnsubscribable(fn) {
2
- return !!fn?.unsubscribe;
3
- }
4
- export function capitalize(str) {
5
- return str ? str[0].toUpperCase() + str.substring(1) : str;
6
- }
7
- export function isActionCreator(action) {
8
- return (typeof action === 'function' &&
9
- action &&
10
- action.type &&
11
- typeof action.type === 'string');
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvcmVkdXgtY29ubmVjdG9yL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixFQUE0QjtJQUU1QixPQUFPLENBQUMsQ0FBRSxFQUFnQyxFQUFFLFdBQVcsQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQVc7SUFDekMsT0FBTyxDQUNMLE9BQU8sTUFBTSxLQUFLLFVBQVU7UUFDNUIsTUFBTTtRQUNOLE1BQU0sQ0FBQyxJQUFJO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IFVuc3Vic2NyaWJhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5zdWJzY3JpYmFibGU8RiBleHRlbmRzICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24+KFxyXG4gIGZuOiBGIHwgKEYgJiBVbnN1YnNjcmliYWJsZSlcclxuKTogZm4gaXMgRiAmIFVuc3Vic2NyaWJhYmxlIHtcclxuICByZXR1cm4gISEoZm4gYXMgYW55IGFzIEYgJiBVbnN1YnNjcmliYWJsZSk/LnVuc3Vic2NyaWJlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cmluZygxKSA6IHN0cjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uQ3JlYXRvcihhY3Rpb246IGFueSk6IGFjdGlvbiBpcyBBY3Rpb24ge1xyXG4gIHJldHVybiAoXHJcbiAgICB0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICBhY3Rpb24gJiZcclxuICAgIGFjdGlvbi50eXBlICYmXHJcbiAgICB0eXBlb2YgYWN0aW9uLnR5cGUgPT09ICdzdHJpbmcnXHJcbiAgKTtcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9lbXB0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZXhwb3J0IHR5cGUgRW10cHkgPSB7fTsiXX0=
@@ -1,58 +0,0 @@
1
- import { computed } from '@angular/core';
2
- import { signalStoreFeature, withComputed, withState, } from '@ngrx/signals';
3
- export function getCallStateKeys(config) {
4
- const prop = config?.collection;
5
- return {
6
- callStateKey: prop ? `${config.collection}CallState` : 'callState',
7
- loadingKey: prop ? `${config.collection}Loading` : 'loading',
8
- loadedKey: prop ? `${config.collection}Loaded` : 'loaded',
9
- errorKey: prop ? `${config.collection}Error` : 'error',
10
- };
11
- }
12
- export function withCallState(config) {
13
- const { callStateKey, errorKey, loadedKey, loadingKey } = getCallStateKeys(config);
14
- return signalStoreFeature(withState({ [callStateKey]: 'init' }), withComputed((state) => {
15
- const callState = state[callStateKey];
16
- return {
17
- [loadingKey]: computed(() => callState() === 'loading'),
18
- [loadedKey]: computed(() => callState() === 'loaded'),
19
- [errorKey]: computed(() => {
20
- const v = callState();
21
- return typeof v === 'object' ? v.error : null;
22
- })
23
- };
24
- }));
25
- }
26
- export function setLoading(prop) {
27
- if (prop) {
28
- return { [`${prop}CallState`]: 'loading' };
29
- }
30
- return { callState: 'loading' };
31
- }
32
- export function setLoaded(prop) {
33
- if (prop) {
34
- return { [`${prop}CallState`]: 'loaded' };
35
- }
36
- else {
37
- return { callState: 'loaded' };
38
- }
39
- }
40
- export function setError(error, prop) {
41
- let errorMessage = '';
42
- if (!error) {
43
- errorMessage = '';
44
- }
45
- else if (typeof error === 'object' && 'message' in error) {
46
- errorMessage = String(error.message);
47
- }
48
- else {
49
- errorMessage = String(error);
50
- }
51
- if (prop) {
52
- return { [`${prop}CallState`]: { error: errorMessage } };
53
- }
54
- else {
55
- return { callState: { error: errorMessage } };
56
- }
57
- }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jYWxsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLWNhbGwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUEyQnZCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFnQztJQUMvRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUNuRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6RCxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztLQUN2RCxDQUFDO0FBQ0osQ0FBQztBQW9CRCxNQUFNLFVBQVUsYUFBYSxDQUE0QixNQUV4RDtJQUNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FDckQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0IsT0FBTyxrQkFBa0IsQ0FDdkIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUNyQyxZQUFZLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7UUFFdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBc0IsQ0FBQztRQUUzRCxPQUFPO1lBQ0wsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3ZELENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLFFBQVEsQ0FBQztZQUNyRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hELENBQUMsQ0FBQztTQUNILENBQUE7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRTtRQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQStCLENBQUM7S0FDekU7SUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixJQUFXO0lBR1gsSUFBSSxJQUFJLEVBQUU7UUFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUErQixDQUFDO0tBQ3hFO1NBQ0k7UUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBRWhDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3RCLEtBQWMsRUFDZCxJQUFXO0lBR1QsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixZQUFZLEdBQUcsRUFBRSxDQUFDO0tBQ25CO1NBQ0ksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRTtRQUN4RCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN0QztTQUNJO1FBQ0gsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM5QjtJQUdELElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUErQixDQUFDO0tBQ3ZGO1NBQ0k7UUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUM7S0FDL0M7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcclxuICBzaWduYWxTdG9yZUZlYXR1cmUsXHJcbiAgd2l0aENvbXB1dGVkLFxyXG4gIHdpdGhTdGF0ZSxcclxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcclxuaW1wb3J0IHsgRW10cHkgfSBmcm9tICcuL3NoYXJlZC9lbXB0eSc7XHJcblxyXG5leHBvcnQgdHlwZSBDYWxsU3RhdGUgPSAnaW5pdCcgfCAnbG9hZGluZycgfCAnbG9hZGVkJyB8IHsgZXJyb3I6IHN0cmluZyB9O1xyXG5cclxuZXhwb3J0IHR5cGUgTmFtZWRDYWxsU3RhdGVTbGljZTxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcclxuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0t9Q2FsbFN0YXRlYF06IENhbGxTdGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGxTdGF0ZVNsaWNlID0ge1xyXG4gIGNhbGxTdGF0ZTogQ2FsbFN0YXRlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE5hbWVkQ2FsbFN0YXRlU2lnbmFsczxQcm9wIGV4dGVuZHMgc3RyaW5nPiA9IHtcclxuICBbSyBpbiBQcm9wIGFzIGAke0t9TG9hZGluZ2BdOiBTaWduYWw8Ym9vbGVhbj47XHJcbn0gJiB7XHJcbiAgICBbSyBpbiBQcm9wIGFzIGAke0t9TG9hZGVkYF06IFNpZ25hbDxib29sZWFuPjtcclxuICB9ICYge1xyXG4gICAgW0sgaW4gUHJvcCBhcyBgJHtLfUVycm9yYF06IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcclxuICB9IFxyXG5cclxuZXhwb3J0IHR5cGUgQ2FsbFN0YXRlU2lnbmFscyA9IHtcclxuICBsb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XHJcbiAgbG9hZGVkOiBTaWduYWw8Ym9vbGVhbj47XHJcbiAgZXJyb3I6IFNpZ25hbDxzdHJpbmcgfCBudWxsPlxyXG59IFxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbGxTdGF0ZUtleXMoY29uZmlnPzogeyBjb2xsZWN0aW9uPzogc3RyaW5nIH0pIHtcclxuICBjb25zdCBwcm9wID0gY29uZmlnPy5jb2xsZWN0aW9uO1xyXG4gIHJldHVybiB7XHJcbiAgICBjYWxsU3RhdGVLZXk6IHByb3AgPyAgYCR7Y29uZmlnLmNvbGxlY3Rpb259Q2FsbFN0YXRlYCA6ICdjYWxsU3RhdGUnLFxyXG4gICAgbG9hZGluZ0tleTogcHJvcCA/IGAke2NvbmZpZy5jb2xsZWN0aW9ufUxvYWRpbmdgIDogJ2xvYWRpbmcnLFxyXG4gICAgbG9hZGVkS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGVkYCA6ICdsb2FkZWQnLFxyXG4gICAgZXJyb3JLZXk6IHByb3AgPyBgJHtjb25maWcuY29sbGVjdGlvbn1FcnJvcmAgOiAnZXJyb3InLFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2FsbFN0YXRlPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KGNvbmZpZzoge1xyXG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XHJcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmU8XHJcbiAgeyBzdGF0ZTogRW10cHksIHNpZ25hbHM6IEVtdHB5LCBtZXRob2RzOiBFbXRweSB9LFxyXG4gIHtcclxuICAgIHN0YXRlOiBOYW1lZENhbGxTdGF0ZVNsaWNlPENvbGxlY3Rpb24+LFxyXG4gICAgc2lnbmFsczogTmFtZWRDYWxsU3RhdGVTaWduYWxzPENvbGxlY3Rpb24+LFxyXG4gICAgbWV0aG9kczogRW10cHlcclxuICB9XHJcbj47XHJcbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2FsbFN0YXRlKCk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcclxuICB7IHN0YXRlOiBFbXRweSwgc2lnbmFsczogRW10cHksIG1ldGhvZHM6IEVtdHB5IH0sXHJcbiAge1xyXG4gICAgc3RhdGU6IENhbGxTdGF0ZVNsaWNlLFxyXG4gICAgc2lnbmFsczogQ2FsbFN0YXRlU2lnbmFscyxcclxuICAgIG1ldGhvZHM6IEVtdHB5XHJcbiAgfVxyXG4+O1xyXG5leHBvcnQgZnVuY3Rpb24gd2l0aENhbGxTdGF0ZTxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihjb25maWc/OiB7XHJcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcclxufSk6IFNpZ25hbFN0b3JlRmVhdHVyZSB7XHJcbiAgY29uc3QgeyBjYWxsU3RhdGVLZXksIGVycm9yS2V5LCBsb2FkZWRLZXksIGxvYWRpbmdLZXkgfSA9XHJcbiAgICBnZXRDYWxsU3RhdGVLZXlzKGNvbmZpZyk7XHJcblxyXG4gIHJldHVybiBzaWduYWxTdG9yZUZlYXR1cmUoXHJcbiAgICB3aXRoU3RhdGUoeyBbY2FsbFN0YXRlS2V5XTogJ2luaXQnIH0pLFxyXG4gICAgd2l0aENvbXB1dGVkKChzdGF0ZTogUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PikgPT4ge1xyXG5cclxuICAgICAgY29uc3QgY2FsbFN0YXRlID0gc3RhdGVbY2FsbFN0YXRlS2V5XSBhcyBTaWduYWw8Q2FsbFN0YXRlPjtcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgW2xvYWRpbmdLZXldOiBjb21wdXRlZCgoKSA9PiBjYWxsU3RhdGUoKSA9PT0gJ2xvYWRpbmcnKSxcclxuICAgICAgICBbbG9hZGVkS2V5XTogY29tcHV0ZWQoKCkgPT4gY2FsbFN0YXRlKCkgPT09ICdsb2FkZWQnKSxcclxuICAgICAgICBbZXJyb3JLZXldOiBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2ID0gY2FsbFN0YXRlKCk7XHJcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdvYmplY3QnID8gdi5lcnJvciA6IG51bGw7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9hZGluZzxQcm9wIGV4dGVuZHMgc3RyaW5nPihcclxuICBwcm9wPzogUHJvcFxyXG4pOiBOYW1lZENhbGxTdGF0ZVNsaWNlPFByb3A+IHwgQ2FsbFN0YXRlU2xpY2Uge1xyXG4gIGlmIChwcm9wKSB7XHJcbiAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogJ2xvYWRpbmcnIH0gYXMgTmFtZWRDYWxsU3RhdGVTbGljZTxQcm9wPjtcclxuICB9XHJcblxyXG4gIHJldHVybiB7IGNhbGxTdGF0ZTogJ2xvYWRpbmcnIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2FkZWQ8UHJvcCBleHRlbmRzIHN0cmluZz4oXHJcbiAgcHJvcD86IFByb3BcclxuKTogTmFtZWRDYWxsU3RhdGVTbGljZTxQcm9wPiB8IENhbGxTdGF0ZVNsaWNlIHtcclxuXHJcbiAgaWYgKHByb3ApIHtcclxuICAgIHJldHVybiB7IFtgJHtwcm9wfUNhbGxTdGF0ZWBdOiAnbG9hZGVkJyB9IGFzIE5hbWVkQ2FsbFN0YXRlU2xpY2U8UHJvcD47XHJcbiAgfVxyXG4gIGVsc2Uge1xyXG4gICAgcmV0dXJuIHsgY2FsbFN0YXRlOiAnbG9hZGVkJyB9O1xyXG5cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRFcnJvcjxQcm9wIGV4dGVuZHMgc3RyaW5nPihcclxuICBlcnJvcjogdW5rbm93bixcclxuICBwcm9wPzogUHJvcCxcclxuICApOiBOYW1lZENhbGxTdGF0ZVNsaWNlPFByb3A+IHwgQ2FsbFN0YXRlU2xpY2Uge1xyXG5cclxuICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnJztcclxuXHJcbiAgICBpZiAoIWVycm9yKSB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnbWVzc2FnZScgaW4gZXJyb3IpIHtcclxuICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZyhlcnJvcik7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICBpZiAocHJvcCkge1xyXG4gICAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0gfSBhcyBOYW1lZENhbGxTdGF0ZVNsaWNlPFByb3A+O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IGNhbGxTdGF0ZTogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0gfTtcclxuICAgIH1cclxufVxyXG4iXX0=