@angular-architects/ngrx-toolkit 19.2.1 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/angular-architects-ngrx-toolkit-redux-connector.mjs +3 -3
- package/fesm2022/angular-architects-ngrx-toolkit-redux-connector.mjs.map +1 -1
- package/fesm2022/angular-architects-ngrx-toolkit.mjs +37 -35
- package/fesm2022/angular-architects-ngrx-toolkit.mjs.map +1 -1
- package/index.d.ts +938 -24
- package/package.json +5 -5
- package/redux-connector/index.d.ts +59 -2
- package/lib/assertions/assertions.d.ts +0 -2
- package/lib/devtools/features/with-disabled-name-indicies.d.ts +0 -27
- package/lib/devtools/features/with-glitch-tracking.d.ts +0 -30
- package/lib/devtools/features/with-mapper.d.ts +0 -28
- package/lib/devtools/internal/current-action-names.d.ts +0 -1
- package/lib/devtools/internal/default-tracker.d.ts +0 -13
- package/lib/devtools/internal/devtools-feature.d.ts +0 -24
- package/lib/devtools/internal/devtools-syncer.service.d.ts +0 -35
- package/lib/devtools/internal/glitch-tracker.service.d.ts +0 -18
- package/lib/devtools/internal/models.d.ts +0 -24
- package/lib/devtools/provide-devtools-config.d.ts +0 -20
- package/lib/devtools/rename-devtools-name.d.ts +0 -7
- package/lib/devtools/update-state.d.ts +0 -16
- package/lib/devtools/with-dev-tools-stub.d.ts +0 -5
- package/lib/devtools/with-devtools.d.ts +0 -24
- package/lib/immutable-state/deep-freeze.d.ts +0 -11
- package/lib/immutable-state/is-dev-mode.d.ts +0 -1
- package/lib/immutable-state/with-immutable-state.d.ts +0 -60
- package/lib/shared/prettify.d.ts +0 -3
- package/lib/shared/signal-store-models.d.ts +0 -26
- package/lib/shared/throw-if-null.d.ts +0 -1
- package/lib/storage-sync/features/with-indexed-db.d.ts +0 -2
- package/lib/storage-sync/features/with-local-storage.d.ts +0 -3
- package/lib/storage-sync/internal/indexeddb.service.d.ts +0 -29
- package/lib/storage-sync/internal/local-storage.service.d.ts +0 -8
- package/lib/storage-sync/internal/models.d.ts +0 -34
- package/lib/storage-sync/internal/session-storage.service.d.ts +0 -8
- package/lib/storage-sync/with-storage-sync.d.ts +0 -45
- package/lib/with-call-state.d.ts +0 -58
- package/lib/with-conditional.d.ts +0 -50
- package/lib/with-data-service.d.ts +0 -109
- package/lib/with-feature-factory.d.ts +0 -28
- package/lib/with-pagination.d.ts +0 -98
- package/lib/with-redux.d.ts +0 -147
- package/lib/with-reset.d.ts +0 -29
- package/lib/with-undo-redo.d.ts +0 -31
- package/redux-connector/src/lib/create-redux.d.ts +0 -13
- package/redux-connector/src/lib/model.d.ts +0 -40
- package/redux-connector/src/lib/rxjs-interop/redux-method.d.ts +0 -14
- package/redux-connector/src/lib/signal-redux-store.d.ts +0 -11
- package/redux-connector/src/lib/util.d.ts +0 -5
|
@@ -42,10 +42,10 @@ class SignalReduxStore {
|
|
|
42
42
|
resultMethod: mapper.resultMethod,
|
|
43
43
|
})));
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: SignalReduxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: SignalReduxStore, providedIn: 'root' }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: SignalReduxStore, decorators: [{
|
|
49
49
|
type: Injectable,
|
|
50
50
|
args: [{
|
|
51
51
|
providedIn: 'root',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-architects-ngrx-toolkit-redux-connector.mjs","sources":["../../../../libs/ngrx-toolkit/redux-connector/src/lib/util.ts","../../../../libs/ngrx-toolkit/redux-connector/src/lib/signal-redux-store.ts","../../../../libs/ngrx-toolkit/redux-connector/src/lib/create-redux.ts","../../../../libs/ngrx-toolkit/redux-connector/src/lib/rxjs-interop/redux-method.ts","../../../../libs/ngrx-toolkit/redux-connector/angular-architects-ngrx-toolkit-redux-connector.ts"],"sourcesContent":["import { ActionCreator } from '@ngrx/store';\nimport { Unsubscribable } from 'rxjs';\n\nexport function isUnsubscribable<F extends (...args: unknown[]) => unknown>(\n fn: F | (F & Unsubscribable),\n): fn is F & Unsubscribable {\n return !!(fn as F & Unsubscribable)?.unsubscribe;\n}\n\nexport function capitalize(str: string): string {\n return str ? str[0].toUpperCase() + str.substring(1) : str;\n}\n\nexport function isActionCreator(action: unknown): action is ActionCreator {\n return Boolean(\n typeof action === 'function' &&\n action &&\n 'type' in action &&\n action.type &&\n typeof action.type === 'string',\n );\n}\n","import { Injectable, inject } from '@angular/core';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { Action, ActionCreator } from '@ngrx/store';\nimport { pipe, tap } from 'rxjs';\nimport { MapperTypes } from './model';\nimport { isUnsubscribable } from './util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SignalReduxStore {\n private mapperDict: Record<\n string,\n {\n storeMethod: (...args: unknown[]) => unknown;\n resultMethod?: (...args: unknown[]) => unknown;\n }\n > = {};\n\n dispatch = rxMethod<Action>(\n pipe(\n tap((action: Action) => {\n const callbacks = this.mapperDict[action.type];\n if (callbacks?.storeMethod) {\n if (\n isUnsubscribable(callbacks.storeMethod) &&\n callbacks.resultMethod\n ) {\n return callbacks.storeMethod(action, (a: Action) => {\n const resultAction = callbacks.resultMethod?.(a) as Action;\n this.dispatch(resultAction);\n });\n }\n\n return callbacks?.storeMethod(action);\n }\n\n return;\n }),\n ),\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n connectFeatureStore(mappers: MapperTypes<ActionCreator<any, any>[]>[]): void {\n mappers.forEach((mapper) =>\n mapper.types.forEach(\n (action) =>\n (this.mapperDict[action] = {\n storeMethod: mapper.storeMethod,\n resultMethod: mapper.resultMethod,\n }),\n ),\n );\n }\n}\n\nexport function injectReduxDispatch() {\n return inject(SignalReduxStore).dispatch;\n}\n","import {\n inject,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { ActionCreator, ActionType } from '@ngrx/store/src/models';\nimport {\n CreateReduxState,\n ExtractActionTypes,\n MapperTypes,\n ServiceWithDecorator,\n Store,\n} from './model';\nimport { SignalReduxStore, injectReduxDispatch } from './signal-redux-store';\nimport { capitalize, isActionCreator } from './util';\n\nexport function mapAction<Creators extends readonly ActionCreator[]>(\n ...args: [\n ...creators: Creators,\n storeMethod: (action: ActionType<Creators[number]>) => unknown,\n ]\n): MapperTypes<Creators>;\nexport function mapAction<Creators extends readonly ActionCreator[], T>(\n ...args: [\n ...creators: Creators,\n storeMethod: (\n action: ActionType<Creators[number]>,\n resultMethod: (input: T) => unknown,\n ) => unknown,\n resultMethod: (input: T) => unknown,\n ]\n): MapperTypes<Creators>;\nexport function mapAction<Creators extends readonly ActionCreator[]>(\n ...args: [\n ...creators: Creators,\n storeMethod: (action: ActionType<Creators[number]>) => unknown,\n resultMethod?: (input: unknown) => unknown,\n ]\n): MapperTypes<Creators> {\n let resultMethod = args.pop() as unknown as\n | ((input: unknown) => unknown)\n | undefined;\n let storeMethod = args.pop() as unknown as (\n action: ActionType<Creators[number]>,\n ) => unknown;\n\n if (isActionCreator(storeMethod)) {\n args.push(storeMethod);\n storeMethod = resultMethod || storeMethod;\n resultMethod = undefined;\n }\n\n const types = (args as unknown as Creators).map(\n (creator) => creator.type,\n ) as unknown as ExtractActionTypes<Creators>;\n\n return {\n types,\n storeMethod,\n resultMethod,\n };\n}\n\nexport function withActionMappers(\n ...mappers: MapperTypes<ActionCreator[]>[]\n): MapperTypes<ActionCreator[]>[] {\n return mappers;\n}\n\nexport function createReduxState<StoreName extends string, STORE extends Store>(\n storeName: StoreName,\n signalStore: STORE,\n withActionMappers: (\n store: InstanceType<STORE>,\n ) => MapperTypes<ActionCreator[]>[],\n): CreateReduxState<StoreName, STORE> {\n const isRootProvider =\n (signalStore as ServiceWithDecorator)?.ɵprov?.providedIn === 'root';\n return {\n [`provide${capitalize(storeName)}Store`]: (connectReduxDevtools = false) =>\n makeEnvironmentProviders([\n isRootProvider ? [] : signalStore,\n provideEnvironmentInitializer(() => {\n const initializerFn = (\n (\n signalReduxStore = inject(SignalReduxStore),\n store = inject(signalStore),\n ) =>\n () => {\n if (connectReduxDevtools) {\n // addStoreToReduxDevtools(store, storeName, false);\n }\n signalReduxStore.connectFeatureStore(withActionMappers(store));\n }\n )();\n return initializerFn();\n }),\n ]),\n [`inject${capitalize(storeName)}Store`]: () =>\n Object.assign(inject(signalStore), { dispatch: injectReduxDispatch() }),\n } as CreateReduxState<StoreName, STORE>;\n}\n","import { Injector, Signal, inject } from '@angular/core';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { Observable, Unsubscribable, map, pipe } from 'rxjs';\n\ntype RxMethodInput<Input> = Input | Observable<Input> | Signal<Input>;\n\ntype RxMethodRef = {\n destroy: () => void;\n};\n\ntype RxMethod<Input, MethodInput = Input, MethodResult = unknown> = ((\n input: RxMethodInput<Input>,\n resultMethod: (input: MethodInput) => MethodResult,\n) => RxMethodRef) &\n RxMethodRef;\n\nexport function reduxMethod<Input, MethodInput = Input>(\n generator: (source$: Observable<Input>) => Observable<MethodInput>,\n config?: { injector?: Injector },\n): RxMethod<Input, MethodInput>;\nexport function reduxMethod<Input, MethodInput = Input, MethodResult = unknown>(\n generator: (source$: Observable<Input>) => Observable<MethodInput>,\n resultMethod: (input: MethodInput) => MethodResult,\n config?: {\n injector?: Injector;\n },\n): RxMethod<Input, MethodInput, MethodResult>;\nexport function reduxMethod<Input, MethodInput = Input, MethodResult = unknown>(\n generator: (source$: Observable<Input>) => Observable<MethodInput>,\n resultMethodOrConfig?:\n | ((input: MethodInput) => MethodResult)\n | {\n injector?: Injector;\n },\n config?: {\n injector?: Injector;\n },\n): RxMethod<Input, MethodInput, MethodResult> {\n const injector = inject(Injector);\n\n if (typeof resultMethodOrConfig === 'function') {\n let unsubscribable: Unsubscribable;\n const inputResultFn = ((\n input: RxMethodInput<Input>,\n resultMethod = resultMethodOrConfig,\n ) => {\n const rxMethodWithResult = rxMethod<Input>(\n pipe(generator, map(resultMethod)),\n {\n ...(config || {}),\n injector: config?.injector || injector,\n },\n );\n const rxWithInput = rxMethodWithResult(input);\n unsubscribable = { unsubscribe: rxWithInput.destroy.bind(rxWithInput) };\n\n return rxWithInput;\n }) as RxMethod<Input, MethodInput, MethodResult>;\n\n inputResultFn.destroy = () => unsubscribable?.unsubscribe();\n\n return inputResultFn;\n }\n\n return rxMethod<Input>(generator, resultMethodOrConfig);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-architects-ngrx-toolkit-redux-connector.mjs","sources":["../tmp-esm2022/redux-connector/src/lib/util.js","../tmp-esm2022/redux-connector/src/lib/signal-redux-store.js","../tmp-esm2022/redux-connector/src/lib/create-redux.js","../tmp-esm2022/redux-connector/src/lib/rxjs-interop/redux-method.js","../tmp-esm2022/redux-connector/angular-architects-ngrx-toolkit-redux-connector.js"],"sourcesContent":["export function isUnsubscribable(fn) {\n return !!fn?.unsubscribe;\n}\nexport function capitalize(str) {\n return str ? str[0].toUpperCase() + str.substring(1) : str;\n}\nexport function isActionCreator(action) {\n return Boolean(typeof action === 'function' &&\n action &&\n 'type' in action &&\n action.type &&\n typeof action.type === 'string');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3JlZHV4LWNvbm5lY3Rvci9zcmMvbGliL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixFQUE0QjtJQUU1QixPQUFPLENBQUMsQ0FBRSxFQUF5QixFQUFFLFdBQVcsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWU7SUFDN0MsT0FBTyxPQUFPLENBQ1osT0FBTyxNQUFNLEtBQUssVUFBVTtRQUMxQixNQUFNO1FBQ04sTUFBTSxJQUFJLE1BQU07UUFDaEIsTUFBTSxDQUFDLElBQUk7UUFDWCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbkNyZWF0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVbnN1YnNjcmliYWJsZTxGIGV4dGVuZHMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bj4oXG4gIGZuOiBGIHwgKEYgJiBVbnN1YnNjcmliYWJsZSksXG4pOiBmbiBpcyBGICYgVW5zdWJzY3JpYmFibGUge1xuICByZXR1cm4gISEoZm4gYXMgRiAmIFVuc3Vic2NyaWJhYmxlKT8udW5zdWJzY3JpYmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cmluZygxKSA6IHN0cjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uQ3JlYXRvcihhY3Rpb246IHVua25vd24pOiBhY3Rpb24gaXMgQWN0aW9uQ3JlYXRvciB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHR5cGVvZiBhY3Rpb24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGFjdGlvbiAmJlxuICAgICAgJ3R5cGUnIGluIGFjdGlvbiAmJlxuICAgICAgYWN0aW9uLnR5cGUgJiZcbiAgICAgIHR5cGVvZiBhY3Rpb24udHlwZSA9PT0gJ3N0cmluZycsXG4gICk7XG59XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { pipe, tap } from 'rxjs';\nimport { isUnsubscribable } from './util';\nimport * as i0 from \"@angular/core\";\nexport class SignalReduxStore {\n constructor() {\n this.mapperDict = {};\n this.dispatch = rxMethod(pipe(tap((action) => {\n const callbacks = this.mapperDict[action.type];\n if (callbacks?.storeMethod) {\n if (isUnsubscribable(callbacks.storeMethod) &&\n callbacks.resultMethod) {\n return callbacks.storeMethod(action, (a) => {\n const resultAction = callbacks.resultMethod?.(a);\n this.dispatch(resultAction);\n });\n }\n return callbacks?.storeMethod(action);\n }\n return;\n })));\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n connectFeatureStore(mappers) {\n mappers.forEach((mapper) => mapper.types.forEach((action) => (this.mapperDict[action] = {\n storeMethod: mapper.storeMethod,\n resultMethod: mapper.resultMethod,\n })));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: SignalReduxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: SignalReduxStore, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: SignalReduxStore, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nexport function injectReduxDispatch() {\n return inject(SignalReduxStore).dispatch;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXJlZHV4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvcmVkdXgtY29ubmVjdG9yL3NyYy9saWIvc2lnbmFsLXJlZHV4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBSzFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJVSxlQUFVLEdBTWQsRUFBRSxDQUFDO1FBRVAsYUFBUSxHQUFHLFFBQVEsQ0FDakIsSUFBSSxDQUNGLEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO2dCQUMzQixJQUNFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7b0JBQ3ZDLFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLENBQUM7b0JBQ0QsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQVMsRUFBRSxFQUFFO3dCQUNqRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFXLENBQUM7d0JBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsT0FBTyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRCxPQUFPO1FBQ1QsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0tBY0g7SUFaQyw4REFBOEQ7SUFDOUQsbUJBQW1CLENBQUMsT0FBaUQ7UUFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNsQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ3pCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7U0FDbEMsQ0FBQyxDQUNMLENBQ0YsQ0FBQztJQUNKLENBQUM7OEdBM0NVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUErQ0QsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByeE1ldGhvZCB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uQ3JlYXRvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHBpcGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWFwcGVyVHlwZXMgfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7IGlzVW5zdWJzY3JpYmFibGUgfSBmcm9tICcuL3V0aWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbmFsUmVkdXhTdG9yZSB7XG4gIHByaXZhdGUgbWFwcGVyRGljdDogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICBzdG9yZU1ldGhvZDogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bjtcbiAgICAgIHJlc3VsdE1ldGhvZD86ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd247XG4gICAgfVxuICA+ID0ge307XG5cbiAgZGlzcGF0Y2ggPSByeE1ldGhvZDxBY3Rpb24+KFxuICAgIHBpcGUoXG4gICAgICB0YXAoKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IHRoaXMubWFwcGVyRGljdFthY3Rpb24udHlwZV07XG4gICAgICAgIGlmIChjYWxsYmFja3M/LnN0b3JlTWV0aG9kKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgaXNVbnN1YnNjcmliYWJsZShjYWxsYmFja3Muc3RvcmVNZXRob2QpICYmXG4gICAgICAgICAgICBjYWxsYmFja3MucmVzdWx0TWV0aG9kXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2tzLnN0b3JlTWV0aG9kKGFjdGlvbiwgKGE6IEFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXN1bHRBY3Rpb24gPSBjYWxsYmFja3MucmVzdWx0TWV0aG9kPy4oYSkgYXMgQWN0aW9uO1xuICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoKHJlc3VsdEFjdGlvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2tzPy5zdG9yZU1ldGhvZChhY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSksXG4gICAgKSxcbiAgKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25uZWN0RmVhdHVyZVN0b3JlKG1hcHBlcnM6IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W10pOiB2b2lkIHtcbiAgICBtYXBwZXJzLmZvckVhY2goKG1hcHBlcikgPT5cbiAgICAgIG1hcHBlci50eXBlcy5mb3JFYWNoKFxuICAgICAgICAoYWN0aW9uKSA9PlxuICAgICAgICAgICh0aGlzLm1hcHBlckRpY3RbYWN0aW9uXSA9IHtcbiAgICAgICAgICAgIHN0b3JlTWV0aG9kOiBtYXBwZXIuc3RvcmVNZXRob2QsXG4gICAgICAgICAgICByZXN1bHRNZXRob2Q6IG1hcHBlci5yZXN1bHRNZXRob2QsXG4gICAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJlZHV4RGlzcGF0Y2goKSB7XG4gIHJldHVybiBpbmplY3QoU2lnbmFsUmVkdXhTdG9yZSkuZGlzcGF0Y2g7XG59XG4iXX0=","import { inject, makeEnvironmentProviders, provideEnvironmentInitializer, } from '@angular/core';\nimport { SignalReduxStore, injectReduxDispatch } from './signal-redux-store';\nimport { capitalize, isActionCreator } from './util';\nexport function mapAction(...args) {\n let resultMethod = args.pop();\n let storeMethod = args.pop();\n if (isActionCreator(storeMethod)) {\n args.push(storeMethod);\n storeMethod = resultMethod || storeMethod;\n resultMethod = undefined;\n }\n const types = args.map((creator) => creator.type);\n return {\n types,\n storeMethod,\n resultMethod,\n };\n}\nexport function withActionMappers(...mappers) {\n return mappers;\n}\nexport function createReduxState(storeName, signalStore, withActionMappers) {\n const isRootProvider = signalStore?.ɵprov?.providedIn === 'root';\n return {\n [`provide${capitalize(storeName)}Store`]: (connectReduxDevtools = false) => makeEnvironmentProviders([\n isRootProvider ? [] : signalStore,\n provideEnvironmentInitializer(() => {\n const initializerFn = ((signalReduxStore = inject(SignalReduxStore), store = inject(signalStore)) => () => {\n if (connectReduxDevtools) {\n // addStoreToReduxDevtools(store, storeName, false);\n }\n signalReduxStore.connectFeatureStore(withActionMappers(store));\n })();\n return initializerFn();\n }),\n ]),\n [`inject${capitalize(storeName)}Store`]: () => Object.assign(inject(signalStore), { dispatch: injectReduxDispatch() }),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZHV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvcmVkdXgtY29ubmVjdG9yL3NyYy9saWIvY3JlYXRlLXJlZHV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUM5QixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWtCckQsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsR0FBRyxJQUlGO0lBRUQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFFZCxDQUFDO0lBQ2QsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFFZCxDQUFDO0lBRWIsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLFdBQVcsR0FBRyxZQUFZLElBQUksV0FBVyxDQUFDO1FBQzFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFJLElBQTRCLENBQUMsR0FBRyxDQUM3QyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDaUIsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSztRQUNMLFdBQVc7UUFDWCxZQUFZO0tBQ2IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEdBQUcsT0FBdUM7SUFFMUMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsU0FBb0IsRUFDcEIsV0FBa0IsRUFDbEIsaUJBRW1DO0lBRW5DLE1BQU0sY0FBYyxHQUNqQixXQUFvQyxFQUFFLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxDQUFDO0lBQ3RFLE9BQU87UUFDTCxDQUFDLFVBQVUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG9CQUFvQixHQUFHLEtBQUssRUFBRSxFQUFFLENBQ3pFLHdCQUF3QixDQUFDO1lBQ3ZCLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2pDLDZCQUE2QixDQUFDLEdBQUcsRUFBRTtnQkFDakMsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsQ0FDRSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFDM0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDM0IsRUFBRSxDQUNKLEdBQUcsRUFBRTtvQkFDSCxJQUFJLG9CQUFvQixFQUFFLENBQUM7d0JBQ3pCLG9EQUFvRDtvQkFDdEQsQ0FBQztvQkFDRCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDLENBQ0YsRUFBRSxDQUFDO2dCQUNKLE9BQU8sYUFBYSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDO1NBQ0gsQ0FBQztRQUNKLENBQUMsU0FBUyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLENBQUM7S0FDcEMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaW5qZWN0LFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIHByb3ZpZGVFbnZpcm9ubWVudEluaXRpYWxpemVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkNyZWF0b3IsIEFjdGlvblR5cGUgfSBmcm9tICdAbmdyeC9zdG9yZS9zcmMvbW9kZWxzJztcbmltcG9ydCB7XG4gIENyZWF0ZVJlZHV4U3RhdGUsXG4gIEV4dHJhY3RBY3Rpb25UeXBlcyxcbiAgTWFwcGVyVHlwZXMsXG4gIFNlcnZpY2VXaXRoRGVjb3JhdG9yLFxuICBTdG9yZSxcbn0gZnJvbSAnLi9tb2RlbCc7XG5pbXBvcnQgeyBTaWduYWxSZWR1eFN0b3JlLCBpbmplY3RSZWR1eERpc3BhdGNoIH0gZnJvbSAnLi9zaWduYWwtcmVkdXgtc3RvcmUnO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZSwgaXNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXT4oXG4gIC4uLmFyZ3M6IFtcbiAgICAuLi5jcmVhdG9yczogQ3JlYXRvcnMsXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd24sXG4gIF1cbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPjtcbmV4cG9ydCBmdW5jdGlvbiBtYXBBY3Rpb248Q3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10sIFQ+KFxuICAuLi5hcmdzOiBbXG4gICAgLi4uY3JlYXRvcnM6IENyZWF0b3JzLFxuICAgIHN0b3JlTWV0aG9kOiAoXG4gICAgICBhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4sXG4gICAgICByZXN1bHRNZXRob2Q6IChpbnB1dDogVCkgPT4gdW5rbm93bixcbiAgICApID0+IHVua25vd24sXG4gICAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IFQpID0+IHVua25vd24sXG4gIF1cbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPjtcbmV4cG9ydCBmdW5jdGlvbiBtYXBBY3Rpb248Q3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10+KFxuICAuLi5hcmdzOiBbXG4gICAgLi4uY3JlYXRvcnM6IENyZWF0b3JzLFxuICAgIHN0b3JlTWV0aG9kOiAoYWN0aW9uOiBBY3Rpb25UeXBlPENyZWF0b3JzW251bWJlcl0+KSA9PiB1bmtub3duLFxuICAgIHJlc3VsdE1ldGhvZD86IChpbnB1dDogdW5rbm93bikgPT4gdW5rbm93bixcbiAgXVxuKTogTWFwcGVyVHlwZXM8Q3JlYXRvcnM+IHtcbiAgbGV0IHJlc3VsdE1ldGhvZCA9IGFyZ3MucG9wKCkgYXMgdW5rbm93biBhc1xuICAgIHwgKChpbnB1dDogdW5rbm93bikgPT4gdW5rbm93bilcbiAgICB8IHVuZGVmaW5lZDtcbiAgbGV0IHN0b3JlTWV0aG9kID0gYXJncy5wb3AoKSBhcyB1bmtub3duIGFzIChcbiAgICBhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4sXG4gICkgPT4gdW5rbm93bjtcblxuICBpZiAoaXNBY3Rpb25DcmVhdG9yKHN0b3JlTWV0aG9kKSkge1xuICAgIGFyZ3MucHVzaChzdG9yZU1ldGhvZCk7XG4gICAgc3RvcmVNZXRob2QgPSByZXN1bHRNZXRob2QgfHwgc3RvcmVNZXRob2Q7XG4gICAgcmVzdWx0TWV0aG9kID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdHlwZXMgPSAoYXJncyBhcyB1bmtub3duIGFzIENyZWF0b3JzKS5tYXAoXG4gICAgKGNyZWF0b3IpID0+IGNyZWF0b3IudHlwZSxcbiAgKSBhcyB1bmtub3duIGFzIEV4dHJhY3RBY3Rpb25UeXBlczxDcmVhdG9ycz47XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlcyxcbiAgICBzdG9yZU1ldGhvZCxcbiAgICByZXN1bHRNZXRob2QsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQWN0aW9uTWFwcGVycyhcbiAgLi4ubWFwcGVyczogTWFwcGVyVHlwZXM8QWN0aW9uQ3JlYXRvcltdPltdXG4pOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yW10+W10ge1xuICByZXR1cm4gbWFwcGVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlZHV4U3RhdGU8U3RvcmVOYW1lIGV4dGVuZHMgc3RyaW5nLCBTVE9SRSBleHRlbmRzIFN0b3JlPihcbiAgc3RvcmVOYW1lOiBTdG9yZU5hbWUsXG4gIHNpZ25hbFN0b3JlOiBTVE9SRSxcbiAgd2l0aEFjdGlvbk1hcHBlcnM6IChcbiAgICBzdG9yZTogSW5zdGFuY2VUeXBlPFNUT1JFPixcbiAgKSA9PiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yW10+W10sXG4pOiBDcmVhdGVSZWR1eFN0YXRlPFN0b3JlTmFtZSwgU1RPUkU+IHtcbiAgY29uc3QgaXNSb290UHJvdmlkZXIgPVxuICAgIChzaWduYWxTdG9yZSBhcyBTZXJ2aWNlV2l0aERlY29yYXRvcik/Lsm1cHJvdj8ucHJvdmlkZWRJbiA9PT0gJ3Jvb3QnO1xuICByZXR1cm4ge1xuICAgIFtgcHJvdmlkZSR7Y2FwaXRhbGl6ZShzdG9yZU5hbWUpfVN0b3JlYF06IChjb25uZWN0UmVkdXhEZXZ0b29scyA9IGZhbHNlKSA9PlxuICAgICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAgaXNSb290UHJvdmlkZXIgPyBbXSA6IHNpZ25hbFN0b3JlLFxuICAgICAgICBwcm92aWRlRW52aXJvbm1lbnRJbml0aWFsaXplcigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5pdGlhbGl6ZXJGbiA9IChcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgc2lnbmFsUmVkdXhTdG9yZSA9IGluamVjdChTaWduYWxSZWR1eFN0b3JlKSxcbiAgICAgICAgICAgICAgc3RvcmUgPSBpbmplY3Qoc2lnbmFsU3RvcmUpLFxuICAgICAgICAgICAgKSA9PlxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoY29ubmVjdFJlZHV4RGV2dG9vbHMpIHtcbiAgICAgICAgICAgICAgICAvLyBhZGRTdG9yZVRvUmVkdXhEZXZ0b29scyhzdG9yZSwgc3RvcmVOYW1lLCBmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2lnbmFsUmVkdXhTdG9yZS5jb25uZWN0RmVhdHVyZVN0b3JlKHdpdGhBY3Rpb25NYXBwZXJzKHN0b3JlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKSgpO1xuICAgICAgICAgIHJldHVybiBpbml0aWFsaXplckZuKCk7XG4gICAgICAgIH0pLFxuICAgICAgXSksXG4gICAgW2BpbmplY3Qke2NhcGl0YWxpemUoc3RvcmVOYW1lKX1TdG9yZWBdOiAoKSA9PlxuICAgICAgT2JqZWN0LmFzc2lnbihpbmplY3Qoc2lnbmFsU3RvcmUpLCB7IGRpc3BhdGNoOiBpbmplY3RSZWR1eERpc3BhdGNoKCkgfSksXG4gIH0gYXMgQ3JlYXRlUmVkdXhTdGF0ZTxTdG9yZU5hbWUsIFNUT1JFPjtcbn1cbiJdfQ==","import { Injector, inject } from '@angular/core';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { map, pipe } from 'rxjs';\nexport function reduxMethod(generator, resultMethodOrConfig, config) {\n const injector = inject(Injector);\n if (typeof resultMethodOrConfig === 'function') {\n let unsubscribable;\n const inputResultFn = ((input, resultMethod = resultMethodOrConfig) => {\n const rxMethodWithResult = rxMethod(pipe(generator, map(resultMethod)), {\n ...(config || {}),\n injector: config?.injector || injector,\n });\n const rxWithInput = rxMethodWithResult(input);\n unsubscribable = { unsubscribe: rxWithInput.destroy.bind(rxWithInput) };\n return rxWithInput;\n });\n inputResultFn.destroy = () => unsubscribable?.unsubscribe();\n return inputResultFn;\n }\n return rxMethod(generator, resultMethodOrConfig);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvcmVkdXgtY29ubmVjdG9yL3NyYy9saWIvcnhqcy1pbnRlcm9wL3JlZHV4LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUE4QixHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBeUI3RCxNQUFNLFVBQVUsV0FBVyxDQUN6QixTQUFrRSxFQUNsRSxvQkFJSyxFQUNMLE1BRUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQy9DLElBQUksY0FBOEIsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQ3JCLEtBQTJCLEVBQzNCLFlBQVksR0FBRyxvQkFBb0IsRUFDbkMsRUFBRTtZQUNGLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUNqQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUNsQztnQkFDRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztnQkFDakIsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUTthQUN2QyxDQUNGLENBQUM7WUFDRixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxjQUFjLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUV4RSxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQStDLENBQUM7UUFFakQsYUFBYSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFNUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFRLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgU2lnbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJ4TWV0aG9kIH0gZnJvbSAnQG5ncngvc2lnbmFscy9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgVW5zdWJzY3JpYmFibGUsIG1hcCwgcGlwZSB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFJ4TWV0aG9kSW5wdXQ8SW5wdXQ+ID0gSW5wdXQgfCBPYnNlcnZhYmxlPElucHV0PiB8IFNpZ25hbDxJbnB1dD47XG5cbnR5cGUgUnhNZXRob2RSZWYgPSB7XG4gIGRlc3Ryb3k6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPiA9ICgoXG4gIGlucHV0OiBSeE1ldGhvZElucHV0PElucHV0PixcbiAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IE1ldGhvZElucHV0KSA9PiBNZXRob2RSZXN1bHQsXG4pID0+IFJ4TWV0aG9kUmVmKSAmXG4gIFJ4TWV0aG9kUmVmO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVkdXhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQ+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXG4gIGNvbmZpZz86IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9LFxuKTogUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0PjtcbmV4cG9ydCBmdW5jdGlvbiByZWR1eE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQgPSBJbnB1dCwgTWV0aG9kUmVzdWx0ID0gdW5rbm93bj4oXG4gIGdlbmVyYXRvcjogKHNvdXJjZSQ6IE9ic2VydmFibGU8SW5wdXQ+KSA9PiBPYnNlcnZhYmxlPE1ldGhvZElucHV0PixcbiAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IE1ldGhvZElucHV0KSA9PiBNZXRob2RSZXN1bHQsXG4gIGNvbmZpZz86IHtcbiAgICBpbmplY3Rvcj86IEluamVjdG9yO1xuICB9LFxuKTogUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0LCBNZXRob2RSZXN1bHQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHJlZHV4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPihcbiAgZ2VuZXJhdG9yOiAoc291cmNlJDogT2JzZXJ2YWJsZTxJbnB1dD4pID0+IE9ic2VydmFibGU8TWV0aG9kSW5wdXQ+LFxuICByZXN1bHRNZXRob2RPckNvbmZpZz86XG4gICAgfCAoKGlucHV0OiBNZXRob2RJbnB1dCkgPT4gTWV0aG9kUmVzdWx0KVxuICAgIHwge1xuICAgICAgICBpbmplY3Rvcj86IEluamVjdG9yO1xuICAgICAgfSxcbiAgY29uZmlnPzoge1xuICAgIGluamVjdG9yPzogSW5qZWN0b3I7XG4gIH0sXG4pOiBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQsIE1ldGhvZFJlc3VsdD4ge1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgaWYgKHR5cGVvZiByZXN1bHRNZXRob2RPckNvbmZpZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGxldCB1bnN1YnNjcmliYWJsZTogVW5zdWJzY3JpYmFibGU7XG4gICAgY29uc3QgaW5wdXRSZXN1bHRGbiA9ICgoXG4gICAgICBpbnB1dDogUnhNZXRob2RJbnB1dDxJbnB1dD4sXG4gICAgICByZXN1bHRNZXRob2QgPSByZXN1bHRNZXRob2RPckNvbmZpZyxcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHJ4TWV0aG9kV2l0aFJlc3VsdCA9IHJ4TWV0aG9kPElucHV0PihcbiAgICAgICAgcGlwZShnZW5lcmF0b3IsIG1hcChyZXN1bHRNZXRob2QpKSxcbiAgICAgICAge1xuICAgICAgICAgIC4uLihjb25maWcgfHwge30pLFxuICAgICAgICAgIGluamVjdG9yOiBjb25maWc/LmluamVjdG9yIHx8IGluamVjdG9yLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJ4V2l0aElucHV0ID0gcnhNZXRob2RXaXRoUmVzdWx0KGlucHV0KTtcbiAgICAgIHVuc3Vic2NyaWJhYmxlID0geyB1bnN1YnNjcmliZTogcnhXaXRoSW5wdXQuZGVzdHJveS5iaW5kKHJ4V2l0aElucHV0KSB9O1xuXG4gICAgICByZXR1cm4gcnhXaXRoSW5wdXQ7XG4gICAgfSkgYXMgUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0LCBNZXRob2RSZXN1bHQ+O1xuXG4gICAgaW5wdXRSZXN1bHRGbi5kZXN0cm95ID0gKCkgPT4gdW5zdWJzY3JpYmFibGU/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gaW5wdXRSZXN1bHRGbjtcbiAgfVxuXG4gIHJldHVybiByeE1ldGhvZDxJbnB1dD4oZ2VuZXJhdG9yLCByZXN1bHRNZXRob2RPckNvbmZpZyk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hcmNoaXRlY3RzLW5ncngtdG9vbGtpdC1yZWR1eC1jb25uZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9yZWR1eC1jb25uZWN0b3IvYW5ndWxhci1hcmNoaXRlY3RzLW5ncngtdG9vbGtpdC1yZWR1eC1jb25uZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Injectable, InjectionToken, signal, effect, inject, PLATFORM_ID, comput
|
|
|
3
3
|
import { watchState, getState, signalStoreFeature, withMethods, withHooks, patchState as patchState$1, withState, withComputed, withProps } from '@ngrx/signals';
|
|
4
4
|
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
|
-
import {
|
|
6
|
+
import { removeEntity, setAllEntities, updateEntity, addEntity } from '@ngrx/signals/entities';
|
|
7
7
|
|
|
8
8
|
const DEVTOOLS_FEATURE = Symbol('DEVTOOLS_FEATURE');
|
|
9
9
|
function createDevtoolsFeature(options) {
|
|
@@ -90,10 +90,10 @@ class GlitchTrackerService {
|
|
|
90
90
|
this.#callback({ [id]: getState(this.#stores[id].store) });
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
94
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: GlitchTrackerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
94
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: GlitchTrackerService, providedIn: 'root' }); }
|
|
95
95
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: GlitchTrackerService, decorators: [{
|
|
97
97
|
type: Injectable,
|
|
98
98
|
args: [{ providedIn: 'root' }]
|
|
99
99
|
}] });
|
|
@@ -177,7 +177,7 @@ function provideDevtoolsConfig(config) {
|
|
|
177
177
|
const REDUX_DEVTOOLS_CONFIG = new InjectionToken('ReduxDevtoolsConfig');
|
|
178
178
|
|
|
179
179
|
class DefaultTracker {
|
|
180
|
-
#stores = signal({});
|
|
180
|
+
#stores = signal({}, ...(ngDevMode ? [{ debugName: "#stores" }] : []));
|
|
181
181
|
get stores() {
|
|
182
182
|
return this.#stores();
|
|
183
183
|
}
|
|
@@ -191,7 +191,7 @@ class DefaultTracker {
|
|
|
191
191
|
return { ...acc, [id]: getState(store) };
|
|
192
192
|
}, {});
|
|
193
193
|
this.#trackCallback(fullState);
|
|
194
|
-
});
|
|
194
|
+
}, ...(ngDevMode ? [{ debugName: "#trackingEffect" }] : []));
|
|
195
195
|
track(id, store) {
|
|
196
196
|
this.#stores.update((value) => ({
|
|
197
197
|
...value,
|
|
@@ -216,10 +216,10 @@ class DefaultTracker {
|
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
220
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DefaultTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
220
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DefaultTracker, providedIn: 'root' }); }
|
|
221
221
|
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DefaultTracker, decorators: [{
|
|
223
223
|
type: Injectable,
|
|
224
224
|
args: [{ providedIn: 'root' }]
|
|
225
225
|
}] });
|
|
@@ -373,10 +373,10 @@ Enable automatic indexing via withDevTools('${storeName}', { indexNames: true })
|
|
|
373
373
|
}, {});
|
|
374
374
|
this.#trackers.forEach((tracker) => tracker.notifyRenamedStore(id));
|
|
375
375
|
}
|
|
376
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
377
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
376
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DevtoolsSyncer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
377
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DevtoolsSyncer, providedIn: 'root' }); }
|
|
378
378
|
}
|
|
379
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DevtoolsSyncer, decorators: [{
|
|
380
380
|
type: Injectable,
|
|
381
381
|
args: [{ providedIn: 'root' }]
|
|
382
382
|
}], ctorParameters: () => [] });
|
|
@@ -1021,21 +1021,21 @@ function setPageSize(pageSize, options) {
|
|
|
1021
1021
|
}
|
|
1022
1022
|
function nextPage(options) {
|
|
1023
1023
|
const { pageKey } = createPaginationKeys(options);
|
|
1024
|
-
return {
|
|
1025
|
-
|
|
1024
|
+
return (state) => {
|
|
1025
|
+
const currentPage = state[pageKey];
|
|
1026
|
+
return { [pageKey]: currentPage + 1 };
|
|
1026
1027
|
};
|
|
1027
1028
|
}
|
|
1028
1029
|
function previousPage(options) {
|
|
1029
1030
|
const { pageKey } = createPaginationKeys(options);
|
|
1030
|
-
return {
|
|
1031
|
-
|
|
1031
|
+
return (state) => {
|
|
1032
|
+
const currentPage = state[pageKey];
|
|
1033
|
+
return { [pageKey]: currentPage - 1 };
|
|
1032
1034
|
};
|
|
1033
1035
|
}
|
|
1034
1036
|
function firstPage(options) {
|
|
1035
1037
|
const { pageKey } = createPaginationKeys(options);
|
|
1036
|
-
return {
|
|
1037
|
-
[pageKey]: 1,
|
|
1038
|
-
};
|
|
1038
|
+
return { [pageKey]: 0 };
|
|
1039
1039
|
}
|
|
1040
1040
|
function setMaxPageNavigationArrayItems(maxPageNavigationArrayItems, options) {
|
|
1041
1041
|
const { pageNavigationArrayMaxKey } = createPaginationKeys(options);
|
|
@@ -1188,8 +1188,8 @@ function withUndoRedo(options) {
|
|
|
1188
1188
|
//
|
|
1189
1189
|
const undoStack = [];
|
|
1190
1190
|
const redoStack = [];
|
|
1191
|
-
const canUndo = signal(false);
|
|
1192
|
-
const canRedo = signal(false);
|
|
1191
|
+
const canUndo = signal(false, ...(ngDevMode ? [{ debugName: "canUndo" }] : []));
|
|
1192
|
+
const canRedo = signal(false, ...(ngDevMode ? [{ debugName: "canRedo" }] : []));
|
|
1193
1193
|
const updateInternal = () => {
|
|
1194
1194
|
canUndo.set(undoStack.length !== 0);
|
|
1195
1195
|
canRedo.set(redoStack.length !== 0);
|
|
@@ -1332,13 +1332,13 @@ function withImmutableState(stateOrFactory, options) {
|
|
|
1332
1332
|
* of potential mutations outside the SignalStore
|
|
1333
1333
|
*
|
|
1334
1334
|
* ```ts
|
|
1335
|
-
* const initialState = {id: 1};
|
|
1335
|
+
* const initialState = {user: {id: 1}};
|
|
1336
1336
|
* signalStore(withImmutableState(initialState));
|
|
1337
1337
|
*
|
|
1338
|
-
* initialState.id = 2; // must throw immutability
|
|
1338
|
+
* initialState.user.id = 2; // must throw immutability
|
|
1339
1339
|
* ```
|
|
1340
1340
|
*/
|
|
1341
|
-
|
|
1341
|
+
deepFreeze(getState(store), stateKeys);
|
|
1342
1342
|
watchState(store, (state) => {
|
|
1343
1343
|
deepFreeze(state, stateKeys);
|
|
1344
1344
|
});
|
|
@@ -1440,10 +1440,10 @@ class IndexedDBService {
|
|
|
1440
1440
|
};
|
|
1441
1441
|
});
|
|
1442
1442
|
}
|
|
1443
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1444
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1443
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: IndexedDBService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1444
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: IndexedDBService, providedIn: 'root' }); }
|
|
1445
1445
|
}
|
|
1446
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: IndexedDBService, decorators: [{
|
|
1447
1447
|
type: Injectable,
|
|
1448
1448
|
args: [{ providedIn: 'root' }]
|
|
1449
1449
|
}] });
|
|
@@ -1515,10 +1515,10 @@ class LocalStorageService {
|
|
|
1515
1515
|
clear(key) {
|
|
1516
1516
|
return localStorage.removeItem(key);
|
|
1517
1517
|
}
|
|
1518
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1519
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1519
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
|
|
1520
1520
|
}
|
|
1521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
1522
1522
|
type: Injectable,
|
|
1523
1523
|
args: [{
|
|
1524
1524
|
providedIn: 'root',
|
|
@@ -1535,10 +1535,10 @@ class SessionStorageService {
|
|
|
1535
1535
|
clear(key) {
|
|
1536
1536
|
return sessionStorage.removeItem(key);
|
|
1537
1537
|
}
|
|
1538
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1539
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1538
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: SessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1539
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: SessionStorageService, providedIn: 'root' }); }
|
|
1540
1540
|
}
|
|
1541
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: SessionStorageService, decorators: [{
|
|
1542
1542
|
type: Injectable,
|
|
1543
1543
|
args: [{
|
|
1544
1544
|
providedIn: 'root',
|
|
@@ -1657,12 +1657,14 @@ function createAsyncStorageSync(factory, config) {
|
|
|
1657
1657
|
if (isPlatformServer(platformId)) {
|
|
1658
1658
|
return;
|
|
1659
1659
|
}
|
|
1660
|
-
const initialState = getState(store);
|
|
1660
|
+
const initialState = JSON.stringify(getState(store));
|
|
1661
1661
|
if (config.autoSync) {
|
|
1662
1662
|
let startWatching = false;
|
|
1663
1663
|
watchState(store, () => {
|
|
1664
1664
|
if (!startWatching) {
|
|
1665
|
-
|
|
1665
|
+
const currentState = JSON.stringify(getState(store));
|
|
1666
|
+
// Necessary because getState returns always a new object
|
|
1667
|
+
if (currentState === initialState) {
|
|
1666
1668
|
return;
|
|
1667
1669
|
}
|
|
1668
1670
|
console.warn(`Writing to Store (${config.key}) happened before the state was initially read from storage.`, 'Please ensure that the store is not in syncing state via `store.whenSynced()` before writing to the state.', 'Alternatively, you can disable autoSync by passing `autoSync: false` in the config.');
|