@angular-architects/ngrx-toolkit 0.0.7 → 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.
- package/.eslintrc.json +43 -0
- package/jest.config.ts +22 -0
- package/ng-package.json +7 -0
- package/package.json +3 -16
- package/project.json +37 -0
- package/{index.d.ts → src/index.ts} +3 -2
- package/src/lib/assertions/assertions.ts +9 -0
- package/src/lib/redux-connector/create-redux.ts +94 -0
- package/{lib/redux-connector/index.d.ts → src/lib/redux-connector/index.ts} +1 -0
- package/src/lib/redux-connector/model.ts +67 -0
- package/{lib/redux-connector/rxjs-interop/index.d.ts → src/lib/redux-connector/rxjs-interop/index.ts} +1 -0
- package/src/lib/redux-connector/rxjs-interop/redux-method.ts +61 -0
- package/src/lib/redux-connector/signal-redux-store.ts +54 -0
- package/src/lib/redux-connector/util.ts +22 -0
- package/src/lib/shared/empty.ts +2 -0
- package/src/lib/with-call-state.spec.ts +24 -0
- package/src/lib/with-call-state.ts +136 -0
- package/src/lib/with-data-service.ts +312 -0
- package/src/lib/with-devtools.spec.ts +157 -0
- package/src/lib/with-devtools.ts +128 -0
- package/src/lib/with-redux.spec.ts +100 -0
- package/src/lib/with-redux.ts +261 -0
- package/src/lib/with-storage-sync.spec.ts +237 -0
- package/src/lib/with-storage-sync.ts +160 -0
- package/src/lib/with-undo-redo.ts +184 -0
- package/src/test-setup.ts +8 -0
- package/tsconfig.json +29 -0
- package/tsconfig.lib.json +17 -0
- package/tsconfig.lib.prod.json +9 -0
- package/tsconfig.spec.json +16 -0
- package/esm2022/angular-architects-ngrx-toolkit.mjs +0 -5
- package/esm2022/index.mjs +0 -9
- package/esm2022/lib/assertions/assertions.mjs +0 -6
- package/esm2022/lib/redux-connector/create-redux.mjs +0 -41
- package/esm2022/lib/redux-connector/index.mjs +0 -2
- package/esm2022/lib/redux-connector/model.mjs +0 -2
- package/esm2022/lib/redux-connector/rxjs-interop/index.mjs +0 -2
- package/esm2022/lib/redux-connector/rxjs-interop/redux-method.mjs +0 -22
- package/esm2022/lib/redux-connector/signal-redux-store.mjs +0 -43
- package/esm2022/lib/redux-connector/util.mjs +0 -13
- package/esm2022/lib/shared/empty.mjs +0 -2
- package/esm2022/lib/with-call-state.mjs +0 -58
- package/esm2022/lib/with-data-service.mjs +0 -161
- package/esm2022/lib/with-devtools.mjs +0 -79
- package/esm2022/lib/with-redux.mjs +0 -95
- package/esm2022/lib/with-storage-sync.mjs +0 -56
- package/esm2022/lib/with-undo-redo.mjs +0 -93
- package/fesm2022/angular-architects-ngrx-toolkit.mjs +0 -653
- package/fesm2022/angular-architects-ngrx-toolkit.mjs.map +0 -1
- package/lib/assertions/assertions.d.ts +0 -2
- package/lib/redux-connector/create-redux.d.ts +0 -13
- package/lib/redux-connector/model.d.ts +0 -36
- package/lib/redux-connector/rxjs-interop/redux-method.d.ts +0 -11
- package/lib/redux-connector/signal-redux-store.d.ts +0 -11
- package/lib/redux-connector/util.d.ts +0 -5
- package/lib/shared/empty.d.ts +0 -1
- package/lib/with-call-state.d.ts +0 -56
- package/lib/with-data-service.d.ts +0 -115
- package/lib/with-devtools.d.ts +0 -32
- package/lib/with-redux.d.ts +0 -57
- package/lib/with-storage-sync.d.ts +0 -58
- 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,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,9 +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 { withStorageSync } from './lib/with-storage-sync';
|
|
7
|
-
export * from './lib/redux-connector';
|
|
8
|
-
export * from './lib/redux-connector/rxjs-interop';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyB3aXRoRGV2dG9vbHMsIHBhdGNoU3RhdGUsIEFjdGlvbiB9IGZyb20gJy4vbGliL3dpdGgtZGV2dG9vbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC1yZWR1eCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGgtY2FsbC1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXVuZG8tcmVkbyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLWRhdGEtc2VydmljZSdcbmV4cG9ydCB7IHdpdGhTdG9yYWdlU3luYywgU3luY0NvbmZpZyB9IGZyb20gJy4vbGliL3dpdGgtc3RvcmFnZS1zeW5jJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZHV4LWNvbm5lY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWR1eC1jb25uZWN0b3Ivcnhqcy1pbnRlcm9wJzsiXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvYXNzZXJ0aW9ucy9hc3NlcnRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBWTtJQUVaLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zRm5TcGVjcyB9IGZyb20gJy4uL3dpdGgtcmVkdXgnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QWN0aW9uRm5TcGVjcyhcbiAgb2JqOiB1bmtub3duXG4pOiBhc3NlcnRzIG9iaiBpcyBBY3Rpb25zRm5TcGVjcyB7XG4gIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCclbyBpcyBub3QgYW4gQWN0aW9uIFNwZWNpZmljYXRpb24nKTtcbiAgfVxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZHV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3IvY3JlYXRlLXJlZHV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFxQnJELE1BQU0sVUFBVSxTQUFTLENBR3ZCLEdBQUcsSUFJRjtJQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQTJELENBQUM7SUFDdkYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBa0UsQ0FBQztJQUU3RixJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLFdBQVcsR0FBRyxZQUFZLElBQUksV0FBVyxDQUFDO1FBQzFDLFlBQVksR0FBRyxTQUFTLENBQUM7S0FDMUI7SUFFRCxNQUFNLEtBQUssR0FBSSxJQUE0QixDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2lCLENBQUM7SUFFN0MsT0FBTztRQUNMLEtBQUs7UUFDTCxXQUFXO1FBQ1gsWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLE9BQWlEO0lBRXBELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBSTlCLFNBQW9CLEVBQ3BCLFdBQWtCLEVBQ2xCLGlCQUEyRjtJQUUzRixNQUFNLGNBQWMsR0FBSSxXQUFtQixFQUFFLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxDQUFDO0lBQzFFLE9BQU87UUFDTCxDQUFDLFVBQVUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG9CQUFvQixHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDbkcsY0FBYyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDaEM7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsVUFBVSxFQUFFLENBQ1YsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQzNDLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQzNCLEVBQUUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1IsSUFBSSxvQkFBb0IsRUFBRTt3QkFDeEIsb0RBQW9EO3FCQUNyRDtvQkFDRCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FDbEMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQ3pCLENBQUM7Z0JBQ0osQ0FBQzthQUNGO1NBQ0YsQ0FBQztRQUNGLENBQUMsU0FBUyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzFELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDbkIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUNwQztLQUNvQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgQWN0aW9uVHlwZSB9IGZyb20gXCJAbmdyeC9zdG9yZS9zcmMvbW9kZWxzXCI7XG5pbXBvcnQgeyBDcmVhdGVSZWR1eFN0YXRlLCBFeHRyYWN0QWN0aW9uVHlwZXMsIE1hcHBlclR5cGVzLCBTdG9yZSB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyBTaWduYWxSZWR1eFN0b3JlLCBpbmplY3RSZWR1eERpc3BhdGNoIH0gZnJvbSBcIi4vc2lnbmFsLXJlZHV4LXN0b3JlXCI7XG5pbXBvcnQgeyBjYXBpdGFsaXplLCBpc0FjdGlvbkNyZWF0b3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW11cbj4oXG4gIC4uLmFyZ3M6IFtcbiAgICAuLi5jcmVhdG9yczogQ3JlYXRvcnMsXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd25cbiAgXVxuKTogTWFwcGVyVHlwZXM8Q3JlYXRvcnM+O1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10sXG4gIFRcbj4oXG4gIC4uLmFyZ3M6IFtcbiAgICAuLi5jcmVhdG9yczogQ3JlYXRvcnMsXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4sIHJlc3VsdE1ldGhvZDogKGlucHV0OiBUKSA9PiB1bmtub3duKSA9PiB1bmtub3duLFxuICAgIHJlc3VsdE1ldGhvZDogKGlucHV0OiBUKSA9PiB1bmtub3duXG4gIF1cbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPjtcbmV4cG9ydCBmdW5jdGlvbiBtYXBBY3Rpb248XG4gIENyZWF0b3JzIGV4dGVuZHMgcmVhZG9ubHkgQWN0aW9uQ3JlYXRvcltdXG4+KFxuICAuLi5hcmdzOiBbXG4gICAgLi4uY3JlYXRvcnM6IENyZWF0b3JzLFxuICAgIHN0b3JlTWV0aG9kOiAoYWN0aW9uOiBBY3Rpb25UeXBlPENyZWF0b3JzW251bWJlcl0+KSA9PiB1bmtub3duLFxuICAgIHJlc3VsdE1ldGhvZD86IChpbnB1dDogdW5rbm93bikgPT4gdW5rbm93blxuICBdXG4pOiBNYXBwZXJUeXBlczxDcmVhdG9ycz4ge1xuICBsZXQgcmVzdWx0TWV0aG9kID0gYXJncy5wb3AoKSBhcyB1bmtub3duIGFzICgoaW5wdXQ6IHVua25vd24pID0+IHVua25vd24gKSB8IHVuZGVmaW5lZDtcbiAgbGV0IHN0b3JlTWV0aG9kID0gYXJncy5wb3AoKSBhcyB1bmtub3duIGFzIChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd247XG5cbiAgaWYgKGlzQWN0aW9uQ3JlYXRvcihzdG9yZU1ldGhvZCkpIHtcbiAgICBhcmdzLnB1c2goc3RvcmVNZXRob2QpO1xuICAgIHN0b3JlTWV0aG9kID0gcmVzdWx0TWV0aG9kIHx8IHN0b3JlTWV0aG9kO1xuICAgIHJlc3VsdE1ldGhvZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHR5cGVzID0gKGFyZ3MgYXMgdW5rbm93biBhcyBDcmVhdG9ycykubWFwKFxuICAgIChjcmVhdG9yKSA9PiBjcmVhdG9yLnR5cGVcbiAgKSBhcyB1bmtub3duIGFzIEV4dHJhY3RBY3Rpb25UeXBlczxDcmVhdG9ycz47XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlcyxcbiAgICBzdG9yZU1ldGhvZCxcbiAgICByZXN1bHRNZXRob2RcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBY3Rpb25NYXBwZXJzKFxuICAuLi5tYXBwZXJzOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdXG4pOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdIHtcbiAgcmV0dXJuIG1hcHBlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWR1eFN0YXRlPFxuICBTdG9yZU5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIFNUT1JFIGV4dGVuZHMgU3RvcmVcbj4oXG4gIHN0b3JlTmFtZTogU3RvcmVOYW1lLFxuICBzaWduYWxTdG9yZTogU1RPUkUsXG4gIHdpdGhBY3Rpb25NYXBwZXJzOiAoc3RvcmU6IEluc3RhbmNlVHlwZTxTVE9SRT4pID0+IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W10sXG4pOiBDcmVhdGVSZWR1eFN0YXRlPFN0b3JlTmFtZSwgU1RPUkU+IHtcbiAgY29uc3QgaXNSb290UHJvdmlkZXIgPSAoc2lnbmFsU3RvcmUgYXMgYW55KT8uybVwcm92Py5wcm92aWRlZEluID09PSAncm9vdCc7XG4gIHJldHVybiB7XG4gICAgW2Bwcm92aWRlJHtjYXBpdGFsaXplKHN0b3JlTmFtZSl9U3RvcmVgXTogKGNvbm5lY3RSZWR1eERldnRvb2xzID0gZmFsc2UpID0+IG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICBpc1Jvb3RQcm92aWRlcj8gW10gOiBzaWduYWxTdG9yZSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgICAgc2lnbmFsUmVkdXhTdG9yZSA9IGluamVjdChTaWduYWxSZWR1eFN0b3JlKSxcbiAgICAgICAgICBzdG9yZSA9IGluamVjdChzaWduYWxTdG9yZSlcbiAgICAgICAgKSA9PiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbm5lY3RSZWR1eERldnRvb2xzKSB7XG4gICAgICAgICAgICAvLyBhZGRTdG9yZVRvUmVkdXhEZXZ0b29scyhzdG9yZSwgc3RvcmVOYW1lLCBmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZ25hbFJlZHV4U3RvcmUuY29ubmVjdEZlYXR1cmVTdG9yZShcbiAgICAgICAgICAgIHdpdGhBY3Rpb25NYXBwZXJzKHN0b3JlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdKSxcbiAgICBbYGluamVjdCR7Y2FwaXRhbGl6ZShzdG9yZU5hbWUpfVN0b3JlYF06ICgpID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICBpbmplY3Qoc2lnbmFsU3RvcmUpLFxuICAgICAgeyBkaXNwYXRjaDogaW5qZWN0UmVkdXhEaXNwYXRjaCgpIH1cbiAgICApXG4gIH0gYXMgQ3JlYXRlUmVkdXhTdGF0ZTxTdG9yZU5hbWUsIFNUT1JFPjtcbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { createReduxState, mapAction, withActionMappers } from './create-redux';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IGNyZWF0ZVJlZHV4U3RhdGUsIG1hcEFjdGlvbiwgd2l0aEFjdGlvbk1hcHBlcnMgfSBmcm9tICcuL2NyZWF0ZS1yZWR1eCc7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFNpZ25hbCwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvc3JjL2RlZXAtc2lnbmFsXCI7XG5pbXBvcnQgeyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgfSBmcm9tIFwiQG5ncngvc2lnbmFscy9zcmMvc2lnbmFsLXN0b3JlLW1vZGVsc1wiO1xuaW1wb3J0IHsgU3RhdGVTaWduYWwgfSBmcm9tIFwiQG5ncngvc2lnbmFscy9zcmMvc3RhdGUtc2lnbmFsXCI7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbkNyZWF0b3IsIEFjdGlvblR5cGUsIFByZXR0aWZ5IH0gZnJvbSBcIkBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIFVuc3Vic2NyaWJhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuXG5leHBvcnQgdHlwZSBJbmNsdWRlUHJvcFR5cGU8VCwgViwgV2l0aE5ldmVycyA9XG4gIHsgW0sgaW4ga2V5b2YgVF06IEV4Y2x1ZGU8VFtLXSwgdW5kZWZpbmVkPiBleHRlbmRzIFZcbiAgICA/IFRbS10gZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgPyBJbmNsdWRlUHJvcFR5cGU8VFtLXSwgVj5cbiAgICAgIDogVFtLXVxuICAgIDogbmV2ZXJcbiAgfT4gPSBQcmV0dGlmeTxcbiAgICBQaWNrPFxuICAgICAgV2l0aE5ldmVycyxcbiAgICAgIHsgW0sgaW4ga2V5b2YgV2l0aE5ldmVyc106IFdpdGhOZXZlcnNbS10gZXh0ZW5kcyBuZXZlclxuICAgICAgICA/IG5ldmVyXG4gICAgICAgIDogSyBleHRlbmRzIHN0cmluZ1xuICAgICAgICAgID8gS1xuICAgICAgICAgIDogbmV2ZXJcbiAgICAgIH1ba2V5b2YgV2l0aE5ldmVyc11cbiAgICA+XG4gID47XG5cbmV4cG9ydCB0eXBlIFN0b3JlID0gVHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIFN0YXRlU2lnbmFsPFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFsnc3RhdGUnXT4+O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVSZWR1eFN0YXRlPFxuICBTdG9yZU5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIFNUT1JFIGV4dGVuZHMgU3RvcmVcbj4gPSB7XG4gIFtLIGluIFN0b3JlTmFtZSBhcyBgcHJvdmlkZSR7Q2FwaXRhbGl6ZTxLPn1TdG9yZWBdOiAoY29ubmVjdFJlZHV4RGV2dG9vbHM/OiBib29sZWFuKSA9PiBFbnZpcm9ubWVudFByb3ZpZGVyc1xufSAmIHtcbiAgW0sgaW4gU3RvcmVOYW1lIGFzIGBpbmplY3Qke0NhcGl0YWxpemU8Sz59U3RvcmVgXTogKCkgPT4gSW5qZWN0YWJsZVJlZHV4U2xpY2U8U1RPUkU+XG59O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RvcnM8U1RPUkUgZXh0ZW5kcyBTdG9yZT4gPSBJbmNsdWRlUHJvcFR5cGU8SW5zdGFuY2VUeXBlPFNUT1JFPiwgU2lnbmFsPHVua25vd24+IHwgRGVlcFNpZ25hbDx1bmtub3duPj47XG5leHBvcnQgdHlwZSBEaXNwYXRjaCA9IHsgZGlzcGF0Y2g6IChpbnB1dDogQWN0aW9uIHwgT2JzZXJ2YWJsZTxBY3Rpb24+IHwgU2lnbmFsPEFjdGlvbj4pID0+IFVuc3Vic2NyaWJhYmxlIH07XG5leHBvcnQgdHlwZSBJbmplY3RhYmxlUmVkdXhTbGljZTxTVE9SRSBleHRlbmRzIFN0b3JlPiA9IFNlbGVjdG9yczxTVE9SRT4gJiBEaXNwYXRjaDtcblxuZXhwb3J0IHR5cGUgRXh0cmFjdEFjdGlvblR5cGVzPENyZWF0b3JzIGV4dGVuZHMgcmVhZG9ubHkgQWN0aW9uQ3JlYXRvcltdPiA9IHtcbiAgW0tleSBpbiBrZXlvZiBDcmVhdG9yc106IENyZWF0b3JzW0tleV0gZXh0ZW5kcyBBY3Rpb25DcmVhdG9yPGluZmVyIFQ+XG4gICAgPyBUXG4gICAgOiBuZXZlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uTWV0aG9kPFQsIFYgZXh0ZW5kcyBBY3Rpb24gPSBBY3Rpb24+IHtcbiAgKGFjdGlvbjogVik6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVNZXRob2Q8XG4gIENyZWF0b3JzIGV4dGVuZHMgcmVhZG9ubHkgQWN0aW9uQ3JlYXRvcltdLFxuICBSZXN1bHRTdGF0ZSA9IHVua25vd24sXG4+IHtcbiAgKFxuICAgIGFjdGlvbjogQWN0aW9uVHlwZTxDcmVhdG9yc1tudW1iZXJdPlxuICApOiBSZXN1bHRTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwZXJUeXBlczxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW11cbj4ge1xuICB0eXBlczogRXh0cmFjdEFjdGlvblR5cGVzPENyZWF0b3JzPixcbiAgc3RvcmVNZXRob2Q6IFN0b3JlTWV0aG9kPENyZWF0b3JzPixcbiAgcmVzdWx0TWV0aG9kPzogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93blxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { reduxMethod } from './redux-method';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9yeGpzLWludGVyb3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgeyByZWR1eE1ldGhvZCB9IGZyb20gJy4vcmVkdXgtbWV0aG9kJztcbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivcnhqcy1pbnRlcm9wL3JlZHV4LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUE4QixHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBcUI3RCxNQUFNLFVBQVUsV0FBVyxDQUN6QixTQUFrRSxFQUNsRSxvQkFFQyxFQUNELE1BRUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRTtRQUM5QyxJQUFJLGNBQThCLENBQUM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUNyQixLQUEyQixFQUMzQixZQUFZLEdBQUcsb0JBQW9CLEVBQ25DLEVBQUU7WUFFRixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBUSxJQUFJLENBQzdDLFNBQVMsRUFDVCxHQUFHLENBQUMsWUFBWSxDQUFDLENBQ2xCLEVBQUU7Z0JBQ0QsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLFFBQVE7YUFDdkMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsY0FBYyxHQUFHLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFFNUUsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUErQyxDQUFDO1FBRWpELGFBQWEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhFLE9BQU8sYUFBYSxDQUFDO0tBQ3RCO0lBRUQsT0FBTyxRQUFRLENBQVEsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBTaWduYWwsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyByeE1ldGhvZCB9IGZyb20gXCJAbmdyeC9zaWduYWxzL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgVW5zdWJzY3JpYmFibGUsIG1hcCwgcGlwZSB9IGZyb20gXCJyeGpzXCI7XG5cblxudHlwZSBSeE1ldGhvZElucHV0PElucHV0PiA9IElucHV0IHwgT2JzZXJ2YWJsZTxJbnB1dD4gfCBTaWduYWw8SW5wdXQ+O1xuXG50eXBlIFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPiA9ICgoXG4gIGlucHV0OiBSeE1ldGhvZElucHV0PElucHV0PixcbiAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IE1ldGhvZElucHV0KSA9PiBNZXRob2RSZXN1bHRcbikgPT4gVW5zdWJzY3JpYmFibGUpICYgVW5zdWJzY3JpYmFibGU7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1eE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQgPSBJbnB1dD4oXG4gIGdlbmVyYXRvcjogKHNvdXJjZSQ6IE9ic2VydmFibGU8SW5wdXQ+KSA9PiBPYnNlcnZhYmxlPE1ldGhvZElucHV0PixcbiAgY29uZmlnPzogeyBpbmplY3Rvcj86IEluamVjdG9yIH1cbik6IFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dD47XG5leHBvcnQgZnVuY3Rpb24gcmVkdXhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQsIE1ldGhvZFJlc3VsdCA9IHVua25vd24+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXG4gIHJlc3VsdE1ldGhvZDogKGlucHV0OiBNZXRob2RJbnB1dCkgPT4gTWV0aG9kUmVzdWx0LFxuICBjb25maWc/OiB7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICB9XG4pOiBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQsIE1ldGhvZFJlc3VsdD47XG5leHBvcnQgZnVuY3Rpb24gcmVkdXhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQsIE1ldGhvZFJlc3VsdCA9IHVua25vd24+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXG4gIHJlc3VsdE1ldGhvZE9yQ29uZmlnPzogKChpbnB1dDogTWV0aG9kSW5wdXQpID0+IE1ldGhvZFJlc3VsdCkgfCB7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICB9LFxuICBjb25maWc/OiB7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICB9XG4pOiBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQsIE1ldGhvZFJlc3VsdD4gIHtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGlmICh0eXBlb2YgcmVzdWx0TWV0aG9kT3JDb25maWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICBsZXQgdW5zdWJzY3JpYmFibGU6IFVuc3Vic2NyaWJhYmxlO1xuICAgIGNvbnN0IGlucHV0UmVzdWx0Rm4gPSAoKFxuICAgICAgaW5wdXQ6IFJ4TWV0aG9kSW5wdXQ8SW5wdXQ+LFxuICAgICAgcmVzdWx0TWV0aG9kID0gcmVzdWx0TWV0aG9kT3JDb25maWdcbiAgICApID0+IHtcblxuICAgICAgY29uc3QgcnhNZXRob2RXaXRoUmVzdWx0ID0gcnhNZXRob2Q8SW5wdXQ+KHBpcGUoXG4gICAgICAgIGdlbmVyYXRvcixcbiAgICAgICAgbWFwKHJlc3VsdE1ldGhvZClcbiAgICAgICksIHtcbiAgICAgICAgLi4uKGNvbmZpZyB8fCB7fSksXG4gICAgICAgIGluamVjdG9yOiBjb25maWc/LmluamVjdG9yIHx8IGluamVjdG9yXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJ4V2l0aElucHV0ID0gcnhNZXRob2RXaXRoUmVzdWx0KGlucHV0KTtcbiAgICAgIHVuc3Vic2NyaWJhYmxlID0geyB1bnN1YnNjcmliZTogcnhXaXRoSW5wdXQudW5zdWJzY3JpYmUuYmluZChyeFdpdGhJbnB1dCkgfTtcblxuICAgICAgcmV0dXJuIHJ4V2l0aElucHV0O1xuICAgIH0pIGFzIFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCwgTWV0aG9kUmVzdWx0PjtcblxuICAgIGlucHV0UmVzdWx0Rm4udW5zdWJzY3JpYmUgPSAoKSA9PiB1bnN1YnNjcmliYWJsZT8udW5zdWJzY3JpYmUoKTtcblxuICAgIHJldHVybiBpbnB1dFJlc3VsdEZuO1xuICB9XG5cbiAgcmV0dXJuIHJ4TWV0aG9kPElucHV0PihnZW5lcmF0b3IsIHJlc3VsdE1ldGhvZE9yQ29uZmlnKTtcbn1cbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXJlZHV4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivc2lnbmFsLXJlZHV4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJVSxlQUFVLEdBR2IsRUFBRSxDQUFDO1FBRVIsYUFBUSxHQUFHLFFBQVEsQ0FBUyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRTtnQkFDMUIsSUFDRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO29CQUN2QyxTQUFTLENBQUMsWUFBWSxFQUN0QjtvQkFDQSxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUU7d0JBQ2pELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQVcsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDOUIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsT0FBTyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTztRQUNULENBQUMsQ0FBQyxDQUNILENBQUMsQ0FBQztLQWFKO0lBWEMsOERBQThEO0lBQzlELG1CQUFtQixDQUFDLE9BQWlEO1FBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQ2IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDNUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ2xDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7U0FDbEMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOzhHQXJDVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBeUNELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyByeE1ldGhvZCB9IGZyb20gXCJAbmdyeC9zaWduYWxzL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25DcmVhdG9yIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5pbXBvcnQgeyBwaXBlLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTWFwcGVyVHlwZXMgfSBmcm9tIFwiLi9tb2RlbFwiO1xuaW1wb3J0IHsgaXNVbnN1YnNjcmliYWJsZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaWduYWxSZWR1eFN0b3JlIHtcbiAgcHJpdmF0ZSBtYXBwZXJEaWN0OiBSZWNvcmQ8c3RyaW5nLCB7XG4gICAgc3RvcmVNZXRob2Q6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24sXG4gICAgcmVzdWx0TWV0aG9kPzogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bixcbiAgfT4gPSB7fTtcblxuICBkaXNwYXRjaCA9IHJ4TWV0aG9kPEFjdGlvbj4ocGlwZShcbiAgICB0YXAoKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFja3MgPSB0aGlzLm1hcHBlckRpY3RbYWN0aW9uLnR5cGVdO1xuICAgICAgaWYgKGNhbGxiYWNrcz8uc3RvcmVNZXRob2QpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzVW5zdWJzY3JpYmFibGUoY2FsbGJhY2tzLnN0b3JlTWV0aG9kKSAmJlxuICAgICAgICAgIGNhbGxiYWNrcy5yZXN1bHRNZXRob2RcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrcy5zdG9yZU1ldGhvZChhY3Rpb24sIChhOiBBY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdEFjdGlvbiA9IGNhbGxiYWNrcy5yZXN1bHRNZXRob2Q/LihhKSBhcyBBY3Rpb247XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoKHJlc3VsdEFjdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FsbGJhY2tzPy5zdG9yZU1ldGhvZChhY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfSlcbiAgKSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29ubmVjdEZlYXR1cmVTdG9yZShtYXBwZXJzOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdKTogdm9pZCB7XG4gICAgbWFwcGVycy5mb3JFYWNoKFxuICAgICAgbWFwcGVyID0+IG1hcHBlci50eXBlcy5mb3JFYWNoKFxuICAgICAgICBhY3Rpb24gPT4gdGhpcy5tYXBwZXJEaWN0W2FjdGlvbl0gPSB7XG4gICAgICAgICAgc3RvcmVNZXRob2Q6IG1hcHBlci5zdG9yZU1ldGhvZCxcbiAgICAgICAgICByZXN1bHRNZXRob2Q6IG1hcHBlci5yZXN1bHRNZXRob2RcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJlZHV4RGlzcGF0Y2goKSB7XG4gIHJldHVybiBpbmplY3QoU2lnbmFsUmVkdXhTdG9yZSkuZGlzcGF0Y2g7XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvcmVkdXgtY29ubmVjdG9yL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixFQUE0QjtJQUU1QixPQUFPLENBQUMsQ0FBRSxFQUFnQyxFQUFFLFdBQVcsQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQVc7SUFDekMsT0FBTyxDQUNMLE9BQU8sTUFBTSxLQUFLLFVBQVU7UUFDNUIsTUFBTTtRQUNOLE1BQU0sQ0FBQyxJQUFJO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Vuc3Vic2NyaWJhYmxlPEYgZXh0ZW5kcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duPihcbiAgZm46IEYgfCAoRiAmIFVuc3Vic2NyaWJhYmxlKVxuKTogZm4gaXMgRiAmIFVuc3Vic2NyaWJhYmxlIHtcbiAgcmV0dXJuICEhKGZuIGFzIGFueSBhcyBGICYgVW5zdWJzY3JpYmFibGUpPy51bnN1YnNjcmliZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdHIuc3Vic3RyaW5nKDEpIDogc3RyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBY3Rpb25DcmVhdG9yKGFjdGlvbjogYW55KTogYWN0aW9uIGlzIEFjdGlvbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGFjdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIGFjdGlvbiAmJlxuICAgIGFjdGlvbi50eXBlICYmXG4gICAgdHlwZW9mIGFjdGlvbi50eXBlID09PSAnc3RyaW5nJ1xuICApO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9lbXB0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCB0eXBlIEVtdHB5ID0ge307Il19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jYWxsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLWNhbGwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUErQnZCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFnQztJQUMvRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUNuRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6RCxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztLQUN2RCxDQUFDO0FBQ0osQ0FBQztBQW9CRCxNQUFNLFVBQVUsYUFBYSxDQUE0QixNQUV4RDtJQUNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FDckQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0IsT0FBTyxrQkFBa0IsQ0FDdkIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUNyQyxZQUFZLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7UUFFdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBc0IsQ0FBQztRQUUzRCxPQUFPO1lBQ0wsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3ZELENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLFFBQVEsQ0FBQztZQUNyRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hELENBQUMsQ0FBQztTQUNILENBQUE7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRTtRQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQXdCLENBQUM7S0FDbEU7SUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBd0IsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsSUFBVztJQUdYLElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBd0IsQ0FBQztLQUNqRTtTQUNJO1FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXdCLENBQUM7S0FDdEQ7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBYyxFQUNkLElBQVc7SUFHVCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLFlBQVksR0FBRyxFQUFFLENBQUM7S0FDbkI7U0FDSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFO1FBQ3hELFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO1NBQ0k7UUFDSCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCO0lBR0QsSUFBSSxJQUFJLEVBQUU7UUFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQXdCLENBQUM7S0FDaEY7U0FDSTtRQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQXdCLENBQUM7S0FDckU7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBzaWduYWxTdG9yZUZlYXR1cmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aFN0YXRlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IEVtdHB5IH0gZnJvbSAnLi9zaGFyZWQvZW1wdHknO1xuXG5leHBvcnQgdHlwZSBDYWxsU3RhdGUgPSAnaW5pdCcgfCAnbG9hZGluZycgfCAnbG9hZGVkJyB8IHsgZXJyb3I6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBOYW1lZENhbGxTdGF0ZVNsaWNlPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0t9Q2FsbFN0YXRlYF06IENhbGxTdGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZVNsaWNlID0ge1xuICBjYWxsU3RhdGU6IENhbGxTdGF0ZVxufVxuXG5leHBvcnQgdHlwZSBOYW1lZENhbGxTdGF0ZVNpZ25hbHM8UHJvcCBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIFByb3AgYXMgYCR7S31Mb2FkaW5nYF06IFNpZ25hbDxib29sZWFuPjtcbn0gJiB7XG4gICAgW0sgaW4gUHJvcCBhcyBgJHtLfUxvYWRlZGBdOiBTaWduYWw8Ym9vbGVhbj47XG4gIH0gJiB7XG4gICAgW0sgaW4gUHJvcCBhcyBgJHtLfUVycm9yYF06IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcbiAgfVxuXG5leHBvcnQgdHlwZSBDYWxsU3RhdGVTaWduYWxzID0ge1xuICBsb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG4gIGxvYWRlZDogU2lnbmFsPGJvb2xlYW4+O1xuICBlcnJvcjogU2lnbmFsPHN0cmluZyB8IG51bGw+XG59XG5cbmV4cG9ydCB0eXBlIFNldENhbGxTdGF0ZTxQcm9wIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkPiA9IFByb3AgZXh0ZW5kcyBzdHJpbmdcbiAgPyBOYW1lZENhbGxTdGF0ZVNsaWNlPFByb3A+XG4gIDogQ2FsbFN0YXRlU2xpY2U7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWxsU3RhdGVLZXlzKGNvbmZpZz86IHsgY29sbGVjdGlvbj86IHN0cmluZyB9KSB7XG4gIGNvbnN0IHByb3AgPSBjb25maWc/LmNvbGxlY3Rpb247XG4gIHJldHVybiB7XG4gICAgY2FsbFN0YXRlS2V5OiBwcm9wID8gIGAke2NvbmZpZy5jb2xsZWN0aW9ufUNhbGxTdGF0ZWAgOiAnY2FsbFN0YXRlJyxcbiAgICBsb2FkaW5nS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGluZ2AgOiAnbG9hZGluZycsXG4gICAgbG9hZGVkS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGVkYCA6ICdsb2FkZWQnLFxuICAgIGVycm9yS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259RXJyb3JgIDogJ2Vycm9yJyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWxsU3RhdGU8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiBFbXRweSwgc2lnbmFsczogRW10cHksIG1ldGhvZHM6IEVtdHB5IH0sXG4gIHtcbiAgICBzdGF0ZTogTmFtZWRDYWxsU3RhdGVTbGljZTxDb2xsZWN0aW9uPixcbiAgICBzaWduYWxzOiBOYW1lZENhbGxTdGF0ZVNpZ25hbHM8Q29sbGVjdGlvbj4sXG4gICAgbWV0aG9kczogRW10cHlcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2FsbFN0YXRlKCk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgeyBzdGF0ZTogRW10cHksIHNpZ25hbHM6IEVtdHB5LCBtZXRob2RzOiBFbXRweSB9LFxuICB7XG4gICAgc3RhdGU6IENhbGxTdGF0ZVNsaWNlLFxuICAgIHNpZ25hbHM6IENhbGxTdGF0ZVNpZ25hbHMsXG4gICAgbWV0aG9kczogRW10cHlcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2FsbFN0YXRlPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KGNvbmZpZz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmUge1xuICBjb25zdCB7IGNhbGxTdGF0ZUtleSwgZXJyb3JLZXksIGxvYWRlZEtleSwgbG9hZGluZ0tleSB9ID1cbiAgICBnZXRDYWxsU3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoeyBbY2FsbFN0YXRlS2V5XTogJ2luaXQnIH0pLFxuICAgIHdpdGhDb21wdXRlZCgoc3RhdGU6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj4pID0+IHtcblxuICAgICAgY29uc3QgY2FsbFN0YXRlID0gc3RhdGVbY2FsbFN0YXRlS2V5XSBhcyBTaWduYWw8Q2FsbFN0YXRlPjtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2xvYWRpbmdLZXldOiBjb21wdXRlZCgoKSA9PiBjYWxsU3RhdGUoKSA9PT0gJ2xvYWRpbmcnKSxcbiAgICAgICAgW2xvYWRlZEtleV06IGNvbXB1dGVkKCgpID0+IGNhbGxTdGF0ZSgpID09PSAnbG9hZGVkJyksXG4gICAgICAgIFtlcnJvcktleV06IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ID0gY2FsbFN0YXRlKCk7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiB2ID09PSAnb2JqZWN0JyA/IHYuZXJyb3IgOiBudWxsO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2FkaW5nPFByb3AgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwcm9wPzogUHJvcFxuKTogU2V0Q2FsbFN0YXRlPFByb3A+IHtcbiAgaWYgKHByb3ApIHtcbiAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogJ2xvYWRpbmcnIH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xuICB9XG5cbiAgcmV0dXJuIHsgY2FsbFN0YXRlOiAnbG9hZGluZycgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2FkZWQ8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIHByb3A/OiBQcm9wXG4pOiBTZXRDYWxsU3RhdGU8UHJvcD4ge1xuXG4gIGlmIChwcm9wKSB7XG4gICAgcmV0dXJuIHsgW2Ake3Byb3B9Q2FsbFN0YXRlYF06ICdsb2FkZWQnIH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiB7IGNhbGxTdGF0ZTogJ2xvYWRlZCcgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVycm9yPFByb3AgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBlcnJvcjogdW5rbm93bixcbiAgcHJvcD86IFByb3AsXG4gICk6IFNldENhbGxTdGF0ZTxQcm9wPiB7XG5cbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBpZiAoIWVycm9yKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnJztcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnbWVzc2FnZScgaW4gZXJyb3IpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZyhlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoZXJyb3IpO1xuICAgIH1cbiAgICBcblxuICAgIGlmIChwcm9wKSB7XG4gICAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0gfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHsgY2FsbFN0YXRlOiB7IGVycm9yOiBlcnJvck1lc3NhZ2UgfSB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgICB9XG59XG4iXX0=
|