ng-simple-state 2.0.4 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -9
- package/bundles/ng-simple-state.umd.js +14 -9
- package/bundles/ng-simple-state.umd.js.map +1 -1
- package/esm2015/lib/ng-simple-state-base-store.js +9 -8
- package/esm2015/lib/ng-simple-state-dev-tool.js +7 -3
- package/fesm2015/ng-simple-state.js +14 -9
- package/fesm2015/ng-simple-state.js.map +1 -1
- package/lib/ng-simple-state-base-store.d.ts +6 -6
- package/lib/ng-simple-state-dev-tool.d.ts +3 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ import { environment } from '../environments/environment';
|
|
|
41
41
|
BrowserModule,
|
|
42
42
|
CommonModule,
|
|
43
43
|
NgSimpleStateModule.forRoot({
|
|
44
|
-
enableDevTool: !environment.production, // Enable Redux DevTools only in
|
|
44
|
+
enableDevTool: !environment.production, // Enable Redux DevTools only in development mode
|
|
45
45
|
enableLocalStorage: false // Local storage state persistence is globally disabled
|
|
46
46
|
})
|
|
47
47
|
],
|
|
@@ -285,7 +285,7 @@ import { CounterStore } from './counter-store';
|
|
|
285
285
|
|
|
286
286
|
describe('CounterStore', () => {
|
|
287
287
|
|
|
288
|
-
let
|
|
288
|
+
let counterStore: CounterStore;
|
|
289
289
|
|
|
290
290
|
beforeEach(() => {
|
|
291
291
|
TestBed.configureTestingModule({
|
|
@@ -297,25 +297,25 @@ describe('CounterStore', () => {
|
|
|
297
297
|
]
|
|
298
298
|
});
|
|
299
299
|
|
|
300
|
-
|
|
300
|
+
counterStore = new CounterStore(TestBed);
|
|
301
301
|
});
|
|
302
302
|
|
|
303
303
|
it('initialState', () => {
|
|
304
|
-
expect(
|
|
304
|
+
expect(counterStore.getCurrentState()).toEqual({ count: 0 });
|
|
305
305
|
});
|
|
306
306
|
|
|
307
307
|
it('increment', () => {
|
|
308
|
-
|
|
309
|
-
expect(
|
|
308
|
+
counterStore.increment();
|
|
309
|
+
expect(counterStore.getCurrentState()).toEqual({ count: 1 });
|
|
310
310
|
});
|
|
311
311
|
|
|
312
312
|
it('decrement', () => {
|
|
313
|
-
|
|
314
|
-
expect(
|
|
313
|
+
counterStore.decrement();
|
|
314
|
+
expect(counterStore.getCurrentState()).toEqual({ count: -1 });
|
|
315
315
|
});
|
|
316
316
|
|
|
317
317
|
it('selectCount', (done) => {
|
|
318
|
-
|
|
318
|
+
counterStore.selectCount().subscribe(value => {
|
|
319
319
|
expect(value).toBe(0);
|
|
320
320
|
done();
|
|
321
321
|
});
|
|
@@ -402,3 +402,15 @@ Aren't you satisfied? there are some valid alternatives:
|
|
|
402
402
|
## Support
|
|
403
403
|
|
|
404
404
|
This is an open-source project. Star this [repository](https://github.com/nigrosimone/ng-simple-state), if you like it, or even [donate](https://www.paypal.com/paypalme/snwp). Thank you so much!
|
|
405
|
+
|
|
406
|
+
## My other libraries
|
|
407
|
+
|
|
408
|
+
I have published some other Angular libraries, take a look:
|
|
409
|
+
|
|
410
|
+
- [NgSimpleState: Simple state management in Angular with only Services and RxJS](https://www.npmjs.com/package/ng-simple-state)
|
|
411
|
+
- [NgPortal: Component property connection in Angular application](https://www.npmjs.com/package/ng-portal)
|
|
412
|
+
- [NgHttpCaching: Cache for HTTP requests in Angular application](https://www.npmjs.com/package/ng-http-caching)
|
|
413
|
+
- [NgGenericPipe: Generic pipe for Angular application](https://www.npmjs.com/package/ng-generic-pipe)
|
|
414
|
+
- [NgLet: Structural directive for sharing data as local variable into html component template](https://www.npmjs.com/package/ng-let)
|
|
415
|
+
- [NgLock: Angular decorator for lock a function and user interface while a task running](https://www.npmjs.com/package/ng-lock)
|
|
416
|
+
- [NgCondition: An alternative to `*ngIf; else` directive for simplify conditions into HTML template for Angular application](https://www.npmjs.com/package/ng-condition)
|
|
@@ -74,6 +74,9 @@
|
|
|
74
74
|
instanceId: this.instanceId
|
|
75
75
|
});
|
|
76
76
|
this.isActiveDevtool = !!this.localDevTool;
|
|
77
|
+
if (this.isActiveDevtool) {
|
|
78
|
+
this.localDevTool.init(this.baseState);
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
/**
|
|
@@ -85,9 +88,10 @@
|
|
|
85
88
|
};
|
|
86
89
|
/**
|
|
87
90
|
* Send to dev tool a new state
|
|
88
|
-
* @param
|
|
91
|
+
* @param storeName The store name
|
|
89
92
|
* @param actionName The action name
|
|
90
|
-
* @
|
|
93
|
+
* @param state the state
|
|
94
|
+
* @returns True if dev tool is enabled and action is send
|
|
91
95
|
*/
|
|
92
96
|
NgSimpleStateDevTool.prototype.send = function (storeName, actionName, state) {
|
|
93
97
|
var _a;
|
|
@@ -200,6 +204,13 @@
|
|
|
200
204
|
enumerable: false,
|
|
201
205
|
configurable: true
|
|
202
206
|
});
|
|
207
|
+
/**
|
|
208
|
+
* When you override this method, you have to call the `super.ngOnDestroy()` method in your `ngOnDestroy()` method.
|
|
209
|
+
*/
|
|
210
|
+
NgSimpleStateBaseStore.prototype.ngOnDestroy = function () {
|
|
211
|
+
this.devToolSend(undefined, 'ngOnDestroy');
|
|
212
|
+
this.state$.complete();
|
|
213
|
+
};
|
|
203
214
|
/**
|
|
204
215
|
* Reset store to first loaded store state
|
|
205
216
|
*/
|
|
@@ -238,7 +249,7 @@
|
|
|
238
249
|
* @returns The current state
|
|
239
250
|
*/
|
|
240
251
|
NgSimpleStateBaseStore.prototype.getCurrentState = function () {
|
|
241
|
-
return this.state$.
|
|
252
|
+
return this.state$.getValue();
|
|
242
253
|
};
|
|
243
254
|
/**
|
|
244
255
|
* Set a new state
|
|
@@ -261,12 +272,6 @@
|
|
|
261
272
|
}
|
|
262
273
|
this.state$.next(state);
|
|
263
274
|
};
|
|
264
|
-
/**
|
|
265
|
-
* Complete the state
|
|
266
|
-
*/
|
|
267
|
-
NgSimpleStateBaseStore.prototype.completeState = function () {
|
|
268
|
-
this.state$.complete();
|
|
269
|
-
};
|
|
270
275
|
/**
|
|
271
276
|
* Send to dev tool a new state
|
|
272
277
|
* @param newState new state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-simple-state.umd.js","sources":["../../../projects/ng-simple-state/src/lib/ng-simple-state-models.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state.module.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-dev-tool.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-local-storage.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-base-store.ts","../../../projects/ng-simple-state/src/public-api.ts","../../../projects/ng-simple-state/src/ng-simple-state.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * NgSimpleState config option\r\n */\r\nexport interface NgSimpleStateConfig {\r\n enableDevTool?: boolean;\r\n enableLocalStorage?: boolean;\r\n}\r\n\r\n/**\r\n * NgSimpleState config option for store\r\n */\r\nexport interface NgSimpleStateStoreConfig extends NgSimpleStateConfig {\r\n storeName?: string;\r\n}\r\n\r\n/**\r\n * NgSimpleState config InjectionToken\r\n */\r\nexport const NG_SIMPLE_STORE_CONFIG = new InjectionToken<NgSimpleStateConfig>(\r\n 'ng-simple-state.config'\r\n);\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgSimpleStateConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n exports: [],\r\n})\r\nexport class NgSimpleStateModule {\r\n static forRoot(\r\n ngHttpCachingConfig?: NgSimpleStateConfig\r\n ): ModuleWithProviders<NgSimpleStateModule> {\r\n return {\r\n ngModule: NgSimpleStateModule,\r\n providers: [\r\n {\r\n provide: NG_SIMPLE_STORE_CONFIG,\r\n useValue: ngHttpCachingConfig,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateDevTool {\r\n\r\n // tslint:disable-next-line: no-string-literal\r\n private globalDevtools: any = window['__REDUX_DEVTOOLS_EXTENSION__'] || window['devToolsExtension'];\r\n private localDevTool: any;\r\n private isActiveDevtool = false;\r\n private instanceId = `ng-simple-state-${Date.now()}`;\r\n private baseState: {[key: string]: any} = {};\r\n\r\n constructor() {\r\n if (this.globalDevtools) {\r\n this.localDevTool = this.globalDevtools.connect({\r\n name: 'NgSimpleState',\r\n instanceId: this.instanceId\r\n });\r\n this.isActiveDevtool = !!this.localDevTool;\r\n }\r\n }\r\n\r\n /**\r\n * Return true if dev tool is actvice\r\n * @returns True if dev tool is actvice\r\n */\r\n isActive(): boolean {\r\n return this.isActiveDevtool;\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param newState new state\r\n * @param actionName The action name\r\n * @returns True if dev tool is enabled\r\n */\r\n send(storeName: string, actionName: string, state: any): boolean {\r\n if (this.isActiveDevtool) {\r\n this.localDevTool.send(`${storeName}.${actionName}`, Object.assign(this.baseState, {[storeName]: state}), false, this.instanceId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport const BASE_KEY = 'NgSimpleState::';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateLocalStorage {\r\n\r\n private isStorageActive = false;\r\n\r\n constructor() {\r\n this.isStorageActive = !!localStorage;\r\n }\r\n\r\n /**\r\n * Return true if local storage is active\r\n * @returns True if local storage is active\r\n */\r\n isActive(): boolean {\r\n return this.isStorageActive;\r\n }\r\n\r\n /**\r\n * Set item into local storage\r\n * @param key key name\r\n * @param state state valie\r\n * @returns True if item is stored into local storage\r\n */\r\n setItem<K>(key: string, state: K): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.setItem(BASE_KEY + key, JSON.stringify(state));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Return item from local storage\r\n * @param key key name\r\n * @returns the item\r\n */\r\n getItem<K>(key: string): K | null {\r\n if (this.isStorageActive) {\r\n const state = localStorage.getItem(BASE_KEY + key);\r\n return JSON.parse(state);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Remove item from local storage\r\n * @param key key name\r\n * @returns True if item is removed\r\n */\r\n removeItem(key: string): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.removeItem(BASE_KEY + key);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable, Injector } from '@angular/core';\r\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\r\nimport { map, distinctUntilChanged, observeOn } from 'rxjs/operators';\r\nimport { NgSimpleStateDevTool } from './ng-simple-state-dev-tool';\r\nimport { NgSimpleStateLocalStorage } from './ng-simple-state-local-storage';\r\nimport { NgSimpleStateStoreConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n@Injectable()\r\nexport abstract class NgSimpleStateBaseStore<S> {\r\n\r\n private state$: BehaviorSubject<S>;\r\n private localStorageIsEnabled: boolean;\r\n private devToolIsEnabled: boolean;\r\n private devTool: NgSimpleStateDevTool;\r\n private localStorage: NgSimpleStateLocalStorage;\r\n private localStoreConfig: NgSimpleStateStoreConfig;\r\n private storeName: string;\r\n private firstState: S;\r\n private isArray: boolean;\r\n\r\n /**\r\n * Return the observable state\r\n * @returns Observable of the state\r\n */\r\n public get state(): BehaviorSubject<S> {\r\n return this.state$;\r\n }\r\n\r\n constructor(@Inject(Injector) injector: Injector) {\r\n this.devTool = injector.get(NgSimpleStateDevTool);\r\n this.localStorage = injector.get(NgSimpleStateLocalStorage);\r\n\r\n const globalConfig = injector.get(NG_SIMPLE_STORE_CONFIG, {});\r\n const storeConfig = this.storeConfig() || {};\r\n this.localStoreConfig = { ...globalConfig, ...storeConfig };\r\n\r\n this.localStorageIsEnabled = typeof this.localStoreConfig.enableLocalStorage === 'boolean' ? this.localStoreConfig.enableLocalStorage : false;\r\n this.devToolIsEnabled = typeof this.localStoreConfig.enableDevTool === 'boolean' ? this.localStoreConfig.enableDevTool : false;\r\n this.storeName = typeof this.localStoreConfig.storeName === 'string' ? this.localStoreConfig.storeName : this.constructor.name;\r\n\r\n if (this.localStorageIsEnabled) {\r\n this.firstState = this.localStorage.getItem<S>(this.storeName);\r\n }\r\n if (!this.firstState) {\r\n this.firstState = this.initialState();\r\n }\r\n\r\n this.devToolSend(this.firstState, `initialState`);\r\n\r\n this.isArray = Array.isArray(this.firstState);\r\n this.state$ = new BehaviorSubject<S>(Object.assign(this.isArray ? [] : {}, this.firstState));\r\n }\r\n\r\n /**\r\n * Reset store to first loaded store state\r\n */\r\n resetState(): void {\r\n this.setState(() => (this.firstState), 'resetState');\r\n }\r\n\r\n /**\r\n * Reset store to initial store state\r\n */\r\n restartState(): void {\r\n this.setState(() => (this.initialState()), 'restartState');\r\n }\r\n\r\n /**\r\n * Override this method for set a specific config for the store\r\n * @returns NgSimpleStateStoreConfig\r\n */\r\n storeConfig(): NgSimpleStateStoreConfig {\r\n return null;\r\n }\r\n\r\n /**\r\n * Set into the store the initial state\r\n * @returns The state object\r\n */\r\n protected abstract initialState(): S;\r\n\r\n /**\r\n * Select a store state\r\n * @param selectFn State selector (if not provided return full state)\r\n * @returns Observable of the selected state\r\n */\r\n selectState<K>(selectFn?: (state: Readonly<S>) => K): Observable<K> {\r\n if (!selectFn) {\r\n selectFn = (tmpState: Readonly<S>): any => Object.assign(this.isArray ? [] : {}, tmpState);\r\n }\r\n return this.state$.pipe(\r\n map(state => selectFn(state as Readonly<S>)),\r\n distinctUntilChanged(),\r\n observeOn(asyncScheduler)\r\n );\r\n }\r\n\r\n /**\r\n * Return the current store state (snapshot)\r\n * @returns The current state\r\n */\r\n getCurrentState(): S {\r\n return this.state$.value;\r\n }\r\n\r\n /**\r\n * Set a new state\r\n * @param selectFn State reducer\r\n * @param actionName The action label into Redux DevTools (default is parent function name)\r\n */\r\n setState(stateFn: (currentState: Readonly<S>) => Partial<S>, actionName?: string): void {\r\n const currState = this.getCurrentState();\r\n const newState = stateFn(currState);\r\n let state: S;\r\n if (this.isArray) {\r\n state = Object.assign([], newState) as any;\r\n } else {\r\n state = Object.assign({}, currState, newState);\r\n }\r\n this.devToolSend(state, actionName);\r\n if (this.localStorageIsEnabled) {\r\n this.localStorage.setItem<S>(this.storeName, state);\r\n }\r\n this.state$.next(state);\r\n }\r\n\r\n /**\r\n * Complete the state\r\n */\r\n completeState(): void {\r\n this.state$.complete();\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param newState new state\r\n * @param actionName The action name\r\n * @returns True if fìdev tools are enabled\r\n */\r\n private devToolSend(newState: S, actionName?: string): boolean {\r\n if (!this.devToolIsEnabled) {\r\n return false;\r\n }\r\n if (!actionName) {\r\n // retrive the parent (of parent) method into the stack trace\r\n actionName = new Error().stack\r\n .split('\\n')[3]\r\n .trim()\r\n .split(' ')[1]\r\n .split('.')[1];\r\n }\r\n return this.devTool.send(this.storeName, actionName, newState);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ng-simple-state\r\n */\r\nexport * from './lib/ng-simple-state.module';\r\nexport * from './lib/ng-simple-state-base-store';\r\nexport * from './lib/ng-simple-state-dev-tool';\r\nexport * from './lib/ng-simple-state-local-storage';\r\nexport * from './lib/ng-simple-state-models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","NgModule","Injectable","BehaviorSubject","map","distinctUntilChanged","observeOn","asyncScheduler","Injector","Inject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-simple-state.umd.js","sources":["../../../projects/ng-simple-state/src/lib/ng-simple-state-models.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state.module.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-dev-tool.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-local-storage.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-base-store.ts","../../../projects/ng-simple-state/src/public-api.ts","../../../projects/ng-simple-state/src/ng-simple-state.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * NgSimpleState config option\r\n */\r\nexport interface NgSimpleStateConfig {\r\n enableDevTool?: boolean;\r\n enableLocalStorage?: boolean;\r\n}\r\n\r\n/**\r\n * NgSimpleState config option for store\r\n */\r\nexport interface NgSimpleStateStoreConfig extends NgSimpleStateConfig {\r\n storeName?: string;\r\n}\r\n\r\n/**\r\n * NgSimpleState config InjectionToken\r\n */\r\nexport const NG_SIMPLE_STORE_CONFIG = new InjectionToken<NgSimpleStateConfig>(\r\n 'ng-simple-state.config'\r\n);\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgSimpleStateConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n exports: [],\r\n})\r\nexport class NgSimpleStateModule {\r\n static forRoot(\r\n ngHttpCachingConfig?: NgSimpleStateConfig\r\n ): ModuleWithProviders<NgSimpleStateModule> {\r\n return {\r\n ngModule: NgSimpleStateModule,\r\n providers: [\r\n {\r\n provide: NG_SIMPLE_STORE_CONFIG,\r\n useValue: ngHttpCachingConfig,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateDevTool {\r\n\r\n // tslint:disable-next-line: no-string-literal\r\n private globalDevtools: any = window['__REDUX_DEVTOOLS_EXTENSION__'] || window['devToolsExtension'];\r\n private localDevTool: any;\r\n private isActiveDevtool = false;\r\n private instanceId = `ng-simple-state-${Date.now()}`;\r\n private baseState: { [key: string]: any } = {};\r\n\r\n constructor() {\r\n if (this.globalDevtools) {\r\n this.localDevTool = this.globalDevtools.connect({\r\n name: 'NgSimpleState',\r\n instanceId: this.instanceId\r\n });\r\n this.isActiveDevtool = !!this.localDevTool;\r\n if (this.isActiveDevtool) {\r\n this.localDevTool.init(this.baseState);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Return true if dev tool is actvice\r\n * @returns True if dev tool is actvice\r\n */\r\n isActive(): boolean {\r\n return this.isActiveDevtool;\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param storeName The store name\r\n * @param actionName The action name\r\n * @param state the state\r\n * @returns True if dev tool is enabled and action is send\r\n */\r\n send(storeName: string, actionName: string, state: any): boolean {\r\n if (this.isActiveDevtool) {\r\n this.localDevTool.send(`${storeName}.${actionName}`, Object.assign(this.baseState, { [storeName]: state }), false, this.instanceId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport const BASE_KEY = 'NgSimpleState::';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateLocalStorage {\r\n\r\n private isStorageActive = false;\r\n\r\n constructor() {\r\n this.isStorageActive = !!localStorage;\r\n }\r\n\r\n /**\r\n * Return true if local storage is active\r\n * @returns True if local storage is active\r\n */\r\n isActive(): boolean {\r\n return this.isStorageActive;\r\n }\r\n\r\n /**\r\n * Set item into local storage\r\n * @param key key name\r\n * @param state state valie\r\n * @returns True if item is stored into local storage\r\n */\r\n setItem<K>(key: string, state: K): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.setItem(BASE_KEY + key, JSON.stringify(state));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Return item from local storage\r\n * @param key key name\r\n * @returns the item\r\n */\r\n getItem<K>(key: string): K | null {\r\n if (this.isStorageActive) {\r\n const state = localStorage.getItem(BASE_KEY + key);\r\n return JSON.parse(state);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Remove item from local storage\r\n * @param key key name\r\n * @returns True if item is removed\r\n */\r\n removeItem(key: string): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.removeItem(BASE_KEY + key);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable, Injector, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\r\nimport { map, distinctUntilChanged, observeOn } from 'rxjs/operators';\r\nimport { NgSimpleStateDevTool } from './ng-simple-state-dev-tool';\r\nimport { NgSimpleStateLocalStorage } from './ng-simple-state-local-storage';\r\nimport { NgSimpleStateStoreConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n@Injectable()\r\nexport abstract class NgSimpleStateBaseStore<S extends object | Array<any>> implements OnDestroy {\r\n\r\n private state$: BehaviorSubject<S>;\r\n private localStorageIsEnabled: boolean;\r\n private devToolIsEnabled: boolean;\r\n private devTool: NgSimpleStateDevTool;\r\n private localStorage: NgSimpleStateLocalStorage;\r\n private localStoreConfig: NgSimpleStateStoreConfig;\r\n private storeName: string;\r\n private firstState: S;\r\n private isArray: boolean;\r\n\r\n /**\r\n * Return the observable state\r\n * @returns Observable of the state\r\n */\r\n public get state(): BehaviorSubject<S> {\r\n return this.state$;\r\n }\r\n\r\n constructor(@Inject(Injector) injector: Injector) {\r\n this.devTool = injector.get(NgSimpleStateDevTool);\r\n this.localStorage = injector.get(NgSimpleStateLocalStorage);\r\n\r\n const globalConfig = injector.get(NG_SIMPLE_STORE_CONFIG, {});\r\n const storeConfig = this.storeConfig() || {};\r\n this.localStoreConfig = { ...globalConfig, ...storeConfig };\r\n\r\n this.localStorageIsEnabled = typeof this.localStoreConfig.enableLocalStorage === 'boolean' ? this.localStoreConfig.enableLocalStorage : false;\r\n this.devToolIsEnabled = typeof this.localStoreConfig.enableDevTool === 'boolean' ? this.localStoreConfig.enableDevTool : false;\r\n this.storeName = typeof this.localStoreConfig.storeName === 'string' ? this.localStoreConfig.storeName : this.constructor.name;\r\n\r\n if (this.localStorageIsEnabled) {\r\n this.firstState = this.localStorage.getItem<S>(this.storeName);\r\n }\r\n if (!this.firstState) {\r\n this.firstState = this.initialState();\r\n }\r\n\r\n this.devToolSend(this.firstState, `initialState`);\r\n\r\n this.isArray = Array.isArray(this.firstState);\r\n this.state$ = new BehaviorSubject<S>(Object.assign(this.isArray ? [] : {}, this.firstState));\r\n }\r\n\r\n /**\r\n * When you override this method, you have to call the `super.ngOnDestroy()` method in your `ngOnDestroy()` method.\r\n */\r\n ngOnDestroy(): void {\r\n this.devToolSend(undefined, 'ngOnDestroy');\r\n this.state$.complete();\r\n }\r\n\r\n /**\r\n * Reset store to first loaded store state\r\n */\r\n resetState(): void {\r\n this.setState(() => (this.firstState), 'resetState');\r\n }\r\n\r\n /**\r\n * Reset store to initial store state\r\n */\r\n restartState(): void {\r\n this.setState(() => (this.initialState()), 'restartState');\r\n }\r\n\r\n /**\r\n * Override this method for set a specific config for the store\r\n * @returns NgSimpleStateStoreConfig\r\n */\r\n storeConfig(): NgSimpleStateStoreConfig {\r\n return null;\r\n }\r\n\r\n /**\r\n * Set into the store the initial state\r\n * @returns The state object\r\n */\r\n protected abstract initialState(): S;\r\n\r\n /**\r\n * Select a store state\r\n * @param selectFn State selector (if not provided return full state)\r\n * @returns Observable of the selected state\r\n */\r\n selectState<K>(selectFn?: (state: Readonly<S>) => K): Observable<K> {\r\n if (!selectFn) {\r\n selectFn = (tmpState: Readonly<S>): any => Object.assign(this.isArray ? [] : {}, tmpState);\r\n }\r\n return this.state$.pipe(\r\n map(state => selectFn(state as Readonly<S>)),\r\n distinctUntilChanged(),\r\n observeOn(asyncScheduler)\r\n );\r\n }\r\n\r\n /**\r\n * Return the current store state (snapshot)\r\n * @returns The current state\r\n */\r\n getCurrentState(): S {\r\n return this.state$.getValue();\r\n }\r\n\r\n /**\r\n * Set a new state\r\n * @param selectFn State reducer\r\n * @param actionName The action label into Redux DevTools (default is parent function name)\r\n */\r\n setState(stateFn: (currentState: Readonly<S>) => Partial<S>, actionName?: string): void {\r\n const currState = this.getCurrentState();\r\n const newState = stateFn(currState);\r\n let state: S;\r\n if (this.isArray) {\r\n state = Object.assign([], newState) as any;\r\n } else {\r\n state = Object.assign({}, currState, newState);\r\n }\r\n this.devToolSend(state, actionName);\r\n if (this.localStorageIsEnabled) {\r\n this.localStorage.setItem<S>(this.storeName, state);\r\n }\r\n this.state$.next(state);\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param newState new state\r\n * @param actionName The action name\r\n * @returns True if fìdev tools are enabled\r\n */\r\n private devToolSend(newState: S, actionName?: string): boolean {\r\n if (!this.devToolIsEnabled) {\r\n return false;\r\n }\r\n if (!actionName) {\r\n // retrive the parent (of parent) method into the stack trace\r\n actionName = new Error().stack\r\n .split('\\n')[3]\r\n .trim()\r\n .split(' ')[1]\r\n .split('.')[1];\r\n }\r\n return this.devTool.send(this.storeName, actionName, newState);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ng-simple-state\r\n */\r\nexport * from './lib/ng-simple-state.module';\r\nexport * from './lib/ng-simple-state-base-store';\r\nexport * from './lib/ng-simple-state-dev-tool';\r\nexport * from './lib/ng-simple-state-local-storage';\r\nexport * from './lib/ng-simple-state-models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","NgModule","Injectable","BehaviorSubject","map","distinctUntilChanged","observeOn","asyncScheduler","Injector","Inject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBA;;;QAGa,sBAAsB,GAAG,IAAIA,iBAAc,CACpD,wBAAwB;;;QCb5B;;QACW,2BAAO,GAAd,UACI,mBAAyC;YAEzC,OAAO;gBACH,QAAQ,EAAE,mBAAmB;gBAC7B,SAAS,EAAE;oBACP;wBACI,OAAO,EAAE,sBAAsB;wBAC/B,QAAQ,EAAE,mBAAmB;qBAChC;iBACJ;aACJ,CAAC;SACL;;;0FAbQ,mBAAmB;oFAAnB,mBAAmB;wFAHnB,EAAE;;2FAGF,mBAAmB;sBAL/BC,WAAQ;uBAAC;wBACN,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,EAAE;qBACd;;;;;QCKG;;YANQ,mBAAc,GAAQ,MAAM,CAAC,8BAA8B,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAE5F,oBAAe,GAAG,KAAK,CAAC;YACxB,eAAU,GAAG,qBAAmB,IAAI,CAAC,GAAG,EAAI,CAAC;YAC7C,cAAS,GAA2B,EAAE,CAAC;YAG3C,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC5C,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC9B,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC3C,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC1C;aACJ;SACJ;;;;;QAMD,uCAAQ,GAAR;YACI,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;;;;;;;;QASD,mCAAI,GAAJ,UAAK,SAAiB,EAAE,UAAkB,EAAE,KAAU;;YAClD,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAI,SAAS,SAAI,UAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,YAAI,GAAC,SAAS,IAAG,KAAK,MAAG,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACpI,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;SAChB;;;4FA3CQ,oBAAoB;yFAApB,oBAAoB,WAApB,oBAAoB,mBADP,MAAM;;2FACnB,oBAAoB;sBADhCC,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;QCArB,QAAQ,GAAG,kBAAkB;;QAOtC;YAFQ,oBAAe,GAAG,KAAK,CAAC;YAG5B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;SACzC;;;;;QAMD,4CAAQ,GAAR;YACI,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;;;;;;;QAQD,2CAAO,GAAP,UAAW,GAAW,EAAE,KAAQ;YAC5B,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,YAAY,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;SAChB;;;;;;QAOD,2CAAO,GAAP,UAAW,GAAW;YAClB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;gBACnD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,OAAO,IAAI,CAAC;SACf;;;;;;QAOD,8CAAU,GAAV,UAAW,GAAW;YAClB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;SAChB;;;sGAtDQ,yBAAyB;8FAAzB,yBAAyB,WAAzB,yBAAyB,mBADZ,MAAM;;2FACnB,yBAAyB;sBADrCA,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;QCuB9B,gCAA8B,QAAkB;YAC5C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAE5D,IAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,gBAAgB,mCAAQ,YAAY,GAAK,WAAW,CAAE,CAAC;YAE5D,IAAI,CAAC,qBAAqB,GAAG,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,KAAK,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAC9I,IAAI,CAAC,gBAAgB,GAAG,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,KAAK,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,KAAK,CAAC;YAC/H,IAAI,CAAC,SAAS,GAAG,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAE/H,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,CAAC;aAClE;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aACzC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAElD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAIC,oBAAe,CAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAChG;QA3BD,sBAAW,yCAAK;;;;;iBAAhB;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;;;WAAA;;;;QA8BD,4CAAW,GAAX;YACI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC1B;;;;QAKD,2CAAU,GAAV;YAAA,iBAEC;YADG,IAAI,CAAC,QAAQ,CAAC,cAAM,QAAC,KAAI,CAAC,UAAU,IAAC,EAAE,YAAY,CAAC,CAAC;SACxD;;;;QAKD,6CAAY,GAAZ;YAAA,iBAEC;YADG,IAAI,CAAC,QAAQ,CAAC,cAAM,QAAC,KAAI,CAAC,YAAY,EAAE,IAAC,EAAE,cAAc,CAAC,CAAC;SAC9D;;;;;QAMD,4CAAW,GAAX;YACI,OAAO,IAAI,CAAC;SACf;;;;;;QAaD,4CAAW,GAAX,UAAe,QAAoC;YAAnD,iBASC;YARG,IAAI,CAAC,QAAQ,EAAE;gBACX,QAAQ,GAAG,UAAC,QAAqB,IAAU,OAAA,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAA,CAAC;aAC9F;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACnBC,aAAG,CAAC,UAAA,KAAK,IAAI,OAAA,QAAQ,CAAC,KAAoB,CAAC,GAAA,CAAC,EAC5CC,8BAAoB,EAAE,EACtBC,mBAAS,CAACC,mBAAc,CAAC,CAC5B,CAAC;SACL;;;;;QAMD,gDAAe,GAAf;YACI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACjC;;;;;;QAOD,yCAAQ,GAAR,UAAS,OAAkD,EAAE,UAAmB;YAC5E,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,KAAQ,CAAC;YACb,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAQ,CAAC;aAC9C;iBAAM;gBACH,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;aAClD;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACvD;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;;;;QAQO,4CAAW,GAAX,UAAY,QAAW,EAAE,UAAmB;YAChD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACxB,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,CAAC,UAAU,EAAE;;gBAEb,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK;qBACzB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACd,IAAI,EAAE;qBACN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACtB;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SAClE;;;gGAjJiB,sBAAsB,yBAoBpBC,WAAQ;2FApBV,sBAAsB,WAAtB,sBAAsB;;2FAAtB,sBAAsB;sBAD3CN,aAAU;;;kCAqBMO,SAAM;mCAACD,WAAQ;;;;;IC3BhC;;;;ICAA;;;;;;;;;;;;;;;;;"}
|
|
@@ -32,6 +32,13 @@ export class NgSimpleStateBaseStore {
|
|
|
32
32
|
get state() {
|
|
33
33
|
return this.state$;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* When you override this method, you have to call the `super.ngOnDestroy()` method in your `ngOnDestroy()` method.
|
|
37
|
+
*/
|
|
38
|
+
ngOnDestroy() {
|
|
39
|
+
this.devToolSend(undefined, 'ngOnDestroy');
|
|
40
|
+
this.state$.complete();
|
|
41
|
+
}
|
|
35
42
|
/**
|
|
36
43
|
* Reset store to first loaded store state
|
|
37
44
|
*/
|
|
@@ -67,7 +74,7 @@ export class NgSimpleStateBaseStore {
|
|
|
67
74
|
* @returns The current state
|
|
68
75
|
*/
|
|
69
76
|
getCurrentState() {
|
|
70
|
-
return this.state$.
|
|
77
|
+
return this.state$.getValue();
|
|
71
78
|
}
|
|
72
79
|
/**
|
|
73
80
|
* Set a new state
|
|
@@ -90,12 +97,6 @@ export class NgSimpleStateBaseStore {
|
|
|
90
97
|
}
|
|
91
98
|
this.state$.next(state);
|
|
92
99
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Complete the state
|
|
95
|
-
*/
|
|
96
|
-
completeState() {
|
|
97
|
-
this.state$.complete();
|
|
98
|
-
}
|
|
99
100
|
/**
|
|
100
101
|
* Send to dev tool a new state
|
|
101
102
|
* @param newState new state
|
|
@@ -125,4 +126,4 @@ NgSimpleStateBaseStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: N
|
|
|
125
126
|
type: Inject,
|
|
126
127
|
args: [Injector]
|
|
127
128
|
}] }]; }, null); })();
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2ltcGxlLXN0YXRlLWJhc2Utc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1zaW1wbGUtc3RhdGUvc3JjL2xpYi9uZy1zaW1wbGUtc3RhdGUtYmFzZS1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQTRCLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRTVGLE1BQU0sT0FBZ0Isc0JBQXNCO0lBb0J4QyxZQUE4QixRQUFrQjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU1RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixtQ0FBUSxZQUFZLEdBQUssV0FBVyxDQUFFLENBQUM7UUFFNUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFr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QUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs0RkFoSmlCLHNCQUFzQixjQW9CcEIsUUFBUTs0RUFwQlYsc0JBQXNCLFdBQXRCLHNCQUFzQjt1RkFBdEIsc0JBQXNCO2NBRDNDLFVBQVU7O3NCQXFCTSxNQUFNO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOZ1NpbXBsZVN0YXRlRGV2VG9vbCB9IGZyb20gJy4vbmctc2ltcGxlLXN0YXRlLWRldi10b29sJztcclxuaW1wb3J0IHsgTmdTaW1wbGVTdGF0ZUxvY2FsU3RvcmFnZSB9IGZyb20gJy4vbmctc2ltcGxlLXN0YXRlLWxvY2FsLXN0b3JhZ2UnO1xyXG5pbXBvcnQgeyBOZ1NpbXBsZVN0YXRlU3RvcmVDb25maWcsIE5HX1NJTVBMRV9TVE9SRV9DT05GSUcgfSBmcm9tICcuL25nLXNpbXBsZS1zdGF0ZS1tb2RlbHMnO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ1NpbXBsZVN0YXRlQmFzZVN0b3JlPFM+IHtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRlJDogQmVoYXZpb3JTdWJqZWN0PFM+O1xyXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VJc0VuYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIGRldlRvb2xJc0VuYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIGRldlRvb2w6IE5nU2ltcGxlU3RhdGVEZXZUb29sO1xyXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IE5nU2ltcGxlU3RhdGVMb2NhbFN0b3JhZ2U7XHJcbiAgICBwcml2YXRlIGxvY2FsU3RvcmVDb25maWc6IE5nU2ltcGxlU3RhdGVTdG9yZUNvbmZpZztcclxuICAgIHByaXZhdGUgc3RvcmVOYW1lOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGZpcnN0U3RhdGU6IFM7XHJcbiAgICBwcml2YXRlIGlzQXJyYXk6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gdGhlIG9ic2VydmFibGUgc3RhdGVcclxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc3RhdGUoKTogQmVoYXZpb3JTdWJqZWN0PFM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJbmplY3RvcikgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5kZXZUb29sID0gaW5qZWN0b3IuZ2V0KE5nU2ltcGxlU3RhdGVEZXZUb29sKTtcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IGluamVjdG9yLmdldChOZ1NpbXBsZVN0YXRlTG9jYWxTdG9yYWdlKTtcclxuXHJcbiAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gaW5qZWN0b3IuZ2V0KE5HX1NJTVBMRV9TVE9SRV9DT05GSUcsIHt9KTtcclxuICAgICAgICBjb25zdCBzdG9yZUNvbmZpZyA9IHRoaXMuc3RvcmVDb25maWcoKSB8fCB7fTtcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmVDb25maWcgPSB7IC4uLmdsb2JhbENvbmZpZywgLi4uc3RvcmVDb25maWcgfTtcclxuXHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VJc0VuYWJsZWQgPSB0eXBlb2YgdGhpcy5sb2NhbFN0b3JlQ29uZmlnLmVuYWJsZUxvY2FsU3RvcmFnZSA9PT0gJ2Jvb2xlYW4nID8gdGhpcy5sb2NhbFN0b3JlQ29uZmlnLmVuYWJsZUxvY2FsU3RvcmFnZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGV2VG9vbElzRW5hYmxlZCA9IHR5cGVvZiB0aGlzLmxvY2FsU3RvcmVDb25maWcuZW5hYmxlRGV2VG9vbCA9PT0gJ2Jvb2xlYW4nID8gdGhpcy5sb2NhbFN0b3JlQ29uZmlnLmVuYWJsZURldlRvb2wgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0b3JlTmFtZSA9IHR5cGVvZiB0aGlzLmxvY2FsU3RvcmVDb25maWcuc3RvcmVOYW1lID09PSAnc3RyaW5nJyA/IHRoaXMubG9jYWxTdG9yZUNvbmZpZy5zdG9yZU5hbWUgOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZUlzRW5hYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcnN0U3RhdGUgPSB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFM+KHRoaXMuc3RvcmVOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpcnN0U3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJzdFN0YXRlID0gdGhpcy5pbml0aWFsU3RhdGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGV2VG9vbFNlbmQodGhpcy5maXJzdFN0YXRlLCBgaW5pdGlhbFN0YXRlYCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGhpcy5maXJzdFN0YXRlKTtcclxuICAgICAgICB0aGlzLnN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Uz4oT2JqZWN0LmFzc2lnbih0aGlzLmlzQXJyYXkgPyBbXSA6IHt9LCB0aGlzLmZpcnN0U3RhdGUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0IHN0b3JlIHRvIGZpcnN0IGxvYWRlZCBzdG9yZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICByZXNldFN0YXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoKCkgPT4gKHRoaXMuZmlyc3RTdGF0ZSksICdyZXNldFN0YXRlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldCBzdG9yZSB0byBpbml0aWFsIHN0b3JlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHJlc3RhcnRTdGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKCgpID0+ICh0aGlzLmluaXRpYWxTdGF0ZSgpKSwgJ3Jlc3RhcnRTdGF0ZScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3ZlcnJpZGUgdGhpcyBtZXRob2QgZm9yIHNldCBhIHNwZWNpZmljIGNvbmZpZyBmb3IgdGhlIHN0b3JlXHJcbiAgICAgKiBAcmV0dXJucyBOZ1NpbXBsZVN0YXRlU3RvcmVDb25maWdcclxuICAgICAqL1xyXG4gICAgc3RvcmVDb25maWcoKTogTmdTaW1wbGVTdGF0ZVN0b3JlQ29uZmlnIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBpbnRvIHRoZSBzdG9yZSB0aGUgaW5pdGlhbCBzdGF0ZVxyXG4gICAgICogQHJldHVybnMgVGhlIHN0YXRlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaW5pdGlhbFN0YXRlKCk6IFM7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWxlY3QgYSBzdG9yZSBzdGF0ZVxyXG4gICAgICogQHBhcmFtIHNlbGVjdEZuIFN0YXRlIHNlbGVjdG9yIChpZiBub3QgcHJvdmlkZWQgcmV0dXJuIGZ1bGwgc3RhdGUpXHJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSBzZWxlY3RlZCBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RTdGF0ZTxLPihzZWxlY3RGbj86IChzdGF0ZTogUmVhZG9ubHk8Uz4pID0+IEspOiBPYnNlcnZhYmxlPEs+IHtcclxuICAgICAgICBpZiAoIXNlbGVjdEZuKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdEZuID0gKHRtcFN0YXRlOiBSZWFkb25seTxTPik6IGFueSA9PiBPYmplY3QuYXNzaWduKHRoaXMuaXNBcnJheSA/IFtdIDoge30sIHRtcFN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChzdGF0ZSA9PiBzZWxlY3RGbihzdGF0ZSBhcyBSZWFkb25seTxTPikpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBzdG9yZSBzdGF0ZSAoc25hcHNob3QpXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBnZXRDdXJyZW50U3RhdGUoKTogUyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGEgbmV3IHN0YXRlXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0Rm4gU3RhdGUgcmVkdWNlclxyXG4gICAgICogQHBhcmFtIGFjdGlvbk5hbWUgVGhlIGFjdGlvbiBsYWJlbCBpbnRvIFJlZHV4IERldlRvb2xzIChkZWZhdWx0IGlzIHBhcmVudCBmdW5jdGlvbiBuYW1lKVxyXG4gICAgICovXHJcbiAgICBzZXRTdGF0ZShzdGF0ZUZuOiAoY3VycmVudFN0YXRlOiBSZWFkb25seTxTPikgPT4gUGFydGlhbDxTPiwgYWN0aW9uTmFtZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGN1cnJTdGF0ZSA9IHRoaXMuZ2V0Q3VycmVudFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBzdGF0ZUZuKGN1cnJTdGF0ZSk7XHJcbiAgICAgICAgbGV0IHN0YXRlOiBTO1xyXG4gICAgICAgIGlmICh0aGlzLmlzQXJyYXkpIHtcclxuICAgICAgICAgICAgc3RhdGUgPSBPYmplY3QuYXNzaWduKFtdLCBuZXdTdGF0ZSkgYXMgYW55O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgY3VyclN0YXRlLCBuZXdTdGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGV2VG9vbFNlbmQoc3RhdGUsIGFjdGlvbk5hbWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZUlzRW5hYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtPFM+KHRoaXMuc3RvcmVOYW1lLCBzdGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGxldGUgdGhlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIGNvbXBsZXRlU3RhdGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbmQgdG8gZGV2IHRvb2wgYSBuZXcgc3RhdGVcclxuICAgICAqIEBwYXJhbSBuZXdTdGF0ZSBuZXcgc3RhdGVcclxuICAgICAqIEBwYXJhbSBhY3Rpb25OYW1lIFRoZSBhY3Rpb24gbmFtZVxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiBmw6xkZXYgdG9vbHMgYXJlIGVuYWJsZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkZXZUb29sU2VuZChuZXdTdGF0ZTogUywgYWN0aW9uTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy5kZXZUb29sSXNFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFhY3Rpb25OYW1lKSB7XHJcbiAgICAgICAgICAgIC8vIHJldHJpdmUgdGhlIHBhcmVudCAob2YgcGFyZW50KSBtZXRob2QgaW50byB0aGUgc3RhY2sgdHJhY2VcclxuICAgICAgICAgICAgYWN0aW9uTmFtZSA9IG5ldyBFcnJvcigpLnN0YWNrXHJcbiAgICAgICAgICAgICAgICAuc3BsaXQoJ1xcbicpWzNdXHJcbiAgICAgICAgICAgICAgICAudHJpbSgpXHJcbiAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKVsxXVxyXG4gICAgICAgICAgICAgICAgLnNwbGl0KCcuJylbMV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmRldlRvb2wuc2VuZCh0aGlzLnN0b3JlTmFtZSwgYWN0aW9uTmFtZSwgbmV3U3RhdGUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2ltcGxlLXN0YXRlLWJhc2Utc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1zaW1wbGUtc3RhdGUvc3JjL2xpYi9uZy1zaW1wbGUtc3RhdGUtYmFzZS1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQTRCLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRTVGLE1BQU0sT0FBZ0Isc0JBQXNCO0lBb0J4QyxZQUE4QixRQUFrQjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU1RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixtQ0FBUSxZQUFZLEdBQUssV0FBVyxDQUFFLENBQUM7UUFFNUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFr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UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OzRGQWpKaUIsc0JBQXNCLGNBb0JwQixRQUFROzRFQXBCVixzQkFBc0IsV0FBdEIsc0JBQXNCO3VGQUF0QixzQkFBc0I7Y0FEM0MsVUFBVTs7c0JBcUJNLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG9ic2VydmVPbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTmdTaW1wbGVTdGF0ZURldlRvb2wgfSBmcm9tICcuL25nLXNpbXBsZS1zdGF0ZS1kZXYtdG9vbCc7XHJcbmltcG9ydCB7IE5nU2ltcGxlU3RhdGVMb2NhbFN0b3JhZ2UgfSBmcm9tICcuL25nLXNpbXBsZS1zdGF0ZS1sb2NhbC1zdG9yYWdlJztcclxuaW1wb3J0IHsgTmdTaW1wbGVTdGF0ZVN0b3JlQ29uZmlnLCBOR19TSU1QTEVfU1RPUkVfQ09ORklHIH0gZnJvbSAnLi9uZy1zaW1wbGUtc3RhdGUtbW9kZWxzJztcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdTaW1wbGVTdGF0ZUJhc2VTdG9yZTxTIGV4dGVuZHMgb2JqZWN0IHwgQXJyYXk8YW55Pj4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8Uz47XHJcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZUlzRW5hYmxlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgZGV2VG9vbElzRW5hYmxlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgZGV2VG9vbDogTmdTaW1wbGVTdGF0ZURldlRvb2w7XHJcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZTogTmdTaW1wbGVTdGF0ZUxvY2FsU3RvcmFnZTtcclxuICAgIHByaXZhdGUgbG9jYWxTdG9yZUNvbmZpZzogTmdTaW1wbGVTdGF0ZVN0b3JlQ29uZmlnO1xyXG4gICAgcHJpdmF0ZSBzdG9yZU5hbWU6IHN0cmluZztcclxuICAgIHByaXZhdGUgZmlyc3RTdGF0ZTogUztcclxuICAgIHByaXZhdGUgaXNBcnJheTogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybiB0aGUgb2JzZXJ2YWJsZSBzdGF0ZVxyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgc3RhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzdGF0ZSgpOiBCZWhhdmlvclN1YmplY3Q8Uz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlJDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEluamVjdG9yKSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICB0aGlzLmRldlRvb2wgPSBpbmplY3Rvci5nZXQoTmdTaW1wbGVTdGF0ZURldlRvb2wpO1xyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlID0gaW5qZWN0b3IuZ2V0KE5nU2ltcGxlU3RhdGVMb2NhbFN0b3JhZ2UpO1xyXG5cclxuICAgICAgICBjb25zdCBnbG9iYWxDb25maWcgPSBpbmplY3Rvci5nZXQoTkdfU0lNUExFX1NUT1JFX0NPTkZJRywge30pO1xyXG4gICAgICAgIGNvbnN0IHN0b3JlQ29uZmlnID0gdGhpcy5zdG9yZUNvbmZpZygpIHx8IHt9O1xyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yZUNvbmZpZyA9IHsgLi4uZ2xvYmFsQ29uZmlnLCAuLi5zdG9yZUNvbmZpZyB9O1xyXG5cclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUlzRW5hYmxlZCA9IHR5cGVvZiB0aGlzLmxvY2FsU3RvcmVDb25maWcuZW5hYmxlTG9jYWxTdG9yYWdlID09PSAnYm9vbGVhbicgPyB0aGlzLmxvY2FsU3RvcmVDb25maWcuZW5hYmxlTG9jYWxTdG9yYWdlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5kZXZUb29sSXNFbmFibGVkID0gdHlwZW9mIHRoaXMubG9jYWxTdG9yZUNvbmZpZy5lbmFibGVEZXZUb29sID09PSAnYm9vbGVhbicgPyB0aGlzLmxvY2FsU3RvcmVDb25maWcuZW5hYmxlRGV2VG9vbCA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RvcmVOYW1lID0gdHlwZW9mIHRoaXMubG9jYWxTdG9yZUNvbmZpZy5zdG9yZU5hbWUgPT09ICdzdHJpbmcnID8gdGhpcy5sb2NhbFN0b3JlQ29uZmlnLnN0b3JlTmFtZSA6IHRoaXMuY29uc3RydWN0b3IubmFtZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubG9jYWxTdG9yYWdlSXNFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlyc3RTdGF0ZSA9IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08Uz4odGhpcy5zdG9yZU5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuZmlyc3RTdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcnN0U3RhdGUgPSB0aGlzLmluaXRpYWxTdGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kZXZUb29sU2VuZCh0aGlzLmZpcnN0U3RhdGUsIGBpbml0aWFsU3RhdGVgKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0FycmF5ID0gQXJyYXkuaXNBcnJheSh0aGlzLmZpcnN0U3RhdGUpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTPihPYmplY3QuYXNzaWduKHRoaXMuaXNBcnJheSA/IFtdIDoge30sIHRoaXMuZmlyc3RTdGF0ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hlbiB5b3Ugb3ZlcnJpZGUgdGhpcyBtZXRob2QsIHlvdSBoYXZlIHRvIGNhbGwgdGhlIGBzdXBlci5uZ09uRGVzdHJveSgpYCBtZXRob2QgaW4geW91ciBgbmdPbkRlc3Ryb3koKWAgbWV0aG9kLlxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRldlRvb2xTZW5kKHVuZGVmaW5lZCwgJ25nT25EZXN0cm95Jyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0IHN0b3JlIHRvIGZpcnN0IGxvYWRlZCBzdG9yZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICByZXNldFN0YXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoKCkgPT4gKHRoaXMuZmlyc3RTdGF0ZSksICdyZXNldFN0YXRlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldCBzdG9yZSB0byBpbml0aWFsIHN0b3JlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHJlc3RhcnRTdGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKCgpID0+ICh0aGlzLmluaXRpYWxTdGF0ZSgpKSwgJ3Jlc3RhcnRTdGF0ZScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3ZlcnJpZGUgdGhpcyBtZXRob2QgZm9yIHNldCBhIHNwZWNpZmljIGNvbmZpZyBmb3IgdGhlIHN0b3JlXHJcbiAgICAgKiBAcmV0dXJucyBOZ1NpbXBsZVN0YXRlU3RvcmVDb25maWdcclxuICAgICAqL1xyXG4gICAgc3RvcmVDb25maWcoKTogTmdTaW1wbGVTdGF0ZVN0b3JlQ29uZmlnIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBpbnRvIHRoZSBzdG9yZSB0aGUgaW5pdGlhbCBzdGF0ZVxyXG4gICAgICogQHJldHVybnMgVGhlIHN0YXRlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaW5pdGlhbFN0YXRlKCk6IFM7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWxlY3QgYSBzdG9yZSBzdGF0ZVxyXG4gICAgICogQHBhcmFtIHNlbGVjdEZuIFN0YXRlIHNlbGVjdG9yIChpZiBub3QgcHJvdmlkZWQgcmV0dXJuIGZ1bGwgc3RhdGUpXHJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSBzZWxlY3RlZCBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RTdGF0ZTxLPihzZWxlY3RGbj86IChzdGF0ZTogUmVhZG9ubHk8Uz4pID0+IEspOiBPYnNlcnZhYmxlPEs+IHtcclxuICAgICAgICBpZiAoIXNlbGVjdEZuKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdEZuID0gKHRtcFN0YXRlOiBSZWFkb25seTxTPik6IGFueSA9PiBPYmplY3QuYXNzaWduKHRoaXMuaXNBcnJheSA/IFtdIDoge30sIHRtcFN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChzdGF0ZSA9PiBzZWxlY3RGbihzdGF0ZSBhcyBSZWFkb25seTxTPikpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBzdG9yZSBzdGF0ZSAoc25hcHNob3QpXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBnZXRDdXJyZW50U3RhdGUoKTogUyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLmdldFZhbHVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgYSBuZXcgc3RhdGVcclxuICAgICAqIEBwYXJhbSBzZWxlY3RGbiBTdGF0ZSByZWR1Y2VyXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uTmFtZSBUaGUgYWN0aW9uIGxhYmVsIGludG8gUmVkdXggRGV2VG9vbHMgKGRlZmF1bHQgaXMgcGFyZW50IGZ1bmN0aW9uIG5hbWUpXHJcbiAgICAgKi9cclxuICAgIHNldFN0YXRlKHN0YXRlRm46IChjdXJyZW50U3RhdGU6IFJlYWRvbmx5PFM+KSA9PiBQYXJ0aWFsPFM+LCBhY3Rpb25OYW1lPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY3VyclN0YXRlID0gdGhpcy5nZXRDdXJyZW50U3RhdGUoKTtcclxuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHN0YXRlRm4oY3VyclN0YXRlKTtcclxuICAgICAgICBsZXQgc3RhdGU6IFM7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBcnJheSkge1xyXG4gICAgICAgICAgICBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oW10sIG5ld1N0YXRlKSBhcyBhbnk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyU3RhdGUsIG5ld1N0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kZXZUb29sU2VuZChzdGF0ZSwgYWN0aW9uTmFtZSk7XHJcbiAgICAgICAgaWYgKHRoaXMubG9jYWxTdG9yYWdlSXNFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW08Uz4odGhpcy5zdG9yZU5hbWUsIHN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdGF0ZSQubmV4dChzdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kIHRvIGRldiB0b29sIGEgbmV3IHN0YXRlXHJcbiAgICAgKiBAcGFyYW0gbmV3U3RhdGUgbmV3IHN0YXRlXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uTmFtZSBUaGUgYWN0aW9uIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgZsOsZGV2IHRvb2xzIGFyZSBlbmFibGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZGV2VG9vbFNlbmQobmV3U3RhdGU6IFMsIGFjdGlvbk5hbWU/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGV2VG9vbElzRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghYWN0aW9uTmFtZSkge1xyXG4gICAgICAgICAgICAvLyByZXRyaXZlIHRoZSBwYXJlbnQgKG9mIHBhcmVudCkgbWV0aG9kIGludG8gdGhlIHN0YWNrIHRyYWNlXHJcbiAgICAgICAgICAgIGFjdGlvbk5hbWUgPSBuZXcgRXJyb3IoKS5zdGFja1xyXG4gICAgICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVszXVxyXG4gICAgICAgICAgICAgICAgLnRyaW0oKVxyXG4gICAgICAgICAgICAgICAgLnNwbGl0KCcgJylbMV1cclxuICAgICAgICAgICAgICAgIC5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5kZXZUb29sLnNlbmQodGhpcy5zdG9yZU5hbWUsIGFjdGlvbk5hbWUsIG5ld1N0YXRlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -13,6 +13,9 @@ export class NgSimpleStateDevTool {
|
|
|
13
13
|
instanceId: this.instanceId
|
|
14
14
|
});
|
|
15
15
|
this.isActiveDevtool = !!this.localDevTool;
|
|
16
|
+
if (this.isActiveDevtool) {
|
|
17
|
+
this.localDevTool.init(this.baseState);
|
|
18
|
+
}
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
/**
|
|
@@ -24,9 +27,10 @@ export class NgSimpleStateDevTool {
|
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
29
|
* Send to dev tool a new state
|
|
27
|
-
* @param
|
|
30
|
+
* @param storeName The store name
|
|
28
31
|
* @param actionName The action name
|
|
29
|
-
* @
|
|
32
|
+
* @param state the state
|
|
33
|
+
* @returns True if dev tool is enabled and action is send
|
|
30
34
|
*/
|
|
31
35
|
send(storeName, actionName, state) {
|
|
32
36
|
if (this.isActiveDevtool) {
|
|
@@ -42,4 +46,4 @@ NgSimpleStateDevTool.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NgS
|
|
|
42
46
|
type: Injectable,
|
|
43
47
|
args: [{ providedIn: 'root' }]
|
|
44
48
|
}], function () { return []; }, null); })();
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2ltcGxlLXN0YXRlLWRldi10b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctc2ltcGxlLXN0YXRlL3NyYy9saWIvbmctc2ltcGxlLXN0YXRlLWRldi10b29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFTN0I7UUFQQSw4Q0FBOEM7UUFDdEMsbUJBQWMsR0FBUSxNQUFNLENBQUMsOEJBQThCLENBQUMsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU1RixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixlQUFVLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQzdDLGNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBRzNDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO2dCQUM1QyxJQUFJLEVBQUUsZUFBZTtnQkFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzlCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDMUM7U0FDSjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQUMsU0FBaUIsRUFBRSxVQUFrQixFQUFFLEtBQVU7UUFDbEQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxJQUFJLFVBQVUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BJLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzt3RkEzQ1Esb0JBQW9COzBFQUFwQixvQkFBb0IsV0FBcEIsb0JBQW9CLG1CQURQLE1BQU07dUZBQ25CLG9CQUFvQjtjQURoQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE5nU2ltcGxlU3RhdGVEZXZUb29sIHtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXN0cmluZy1saXRlcmFsXHJcbiAgICBwcml2YXRlIGdsb2JhbERldnRvb2xzOiBhbnkgPSB3aW5kb3dbJ19fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18nXSB8fCB3aW5kb3dbJ2RldlRvb2xzRXh0ZW5zaW9uJ107XHJcbiAgICBwcml2YXRlIGxvY2FsRGV2VG9vbDogYW55O1xyXG4gICAgcHJpdmF0ZSBpc0FjdGl2ZURldnRvb2wgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgaW5zdGFuY2VJZCA9IGBuZy1zaW1wbGUtc3RhdGUtJHtEYXRlLm5vdygpfWA7XHJcbiAgICBwcml2YXRlIGJhc2VTdGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmdsb2JhbERldnRvb2xzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxEZXZUb29sID0gdGhpcy5nbG9iYWxEZXZ0b29scy5jb25uZWN0KHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdOZ1NpbXBsZVN0YXRlJyxcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2VJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZURldnRvb2wgPSAhIXRoaXMubG9jYWxEZXZUb29sO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZURldnRvb2wpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxEZXZUb29sLmluaXQodGhpcy5iYXNlU3RhdGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJuIHRydWUgaWYgZGV2IHRvb2wgaXMgYWN0dmljZVxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiBkZXYgdG9vbCBpcyBhY3R2aWNlXHJcbiAgICAgKi9cclxuICAgIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQWN0aXZlRGV2dG9vbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbmQgdG8gZGV2IHRvb2wgYSBuZXcgc3RhdGVcclxuICAgICAqIEBwYXJhbSBzdG9yZU5hbWUgVGhlIHN0b3JlIG5hbWVcclxuICAgICAqIEBwYXJhbSBhY3Rpb25OYW1lIFRoZSBhY3Rpb24gbmFtZVxyXG4gICAgICogQHBhcmFtIHN0YXRlIHRoZSBzdGF0ZVxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiBkZXYgdG9vbCBpcyBlbmFibGVkIGFuZCBhY3Rpb24gaXMgc2VuZFxyXG4gICAgICovXHJcbiAgICBzZW5kKHN0b3JlTmFtZTogc3RyaW5nLCBhY3Rpb25OYW1lOiBzdHJpbmcsIHN0YXRlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZURldnRvb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbERldlRvb2wuc2VuZChgJHtzdG9yZU5hbWV9LiR7YWN0aW9uTmFtZX1gLCBPYmplY3QuYXNzaWduKHRoaXMuYmFzZVN0YXRlLCB7IFtzdG9yZU5hbWVdOiBzdGF0ZSB9KSwgZmFsc2UsIHRoaXMuaW5zdGFuY2VJZCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -46,6 +46,9 @@ class NgSimpleStateDevTool {
|
|
|
46
46
|
instanceId: this.instanceId
|
|
47
47
|
});
|
|
48
48
|
this.isActiveDevtool = !!this.localDevTool;
|
|
49
|
+
if (this.isActiveDevtool) {
|
|
50
|
+
this.localDevTool.init(this.baseState);
|
|
51
|
+
}
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
@@ -57,9 +60,10 @@ class NgSimpleStateDevTool {
|
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
62
|
* Send to dev tool a new state
|
|
60
|
-
* @param
|
|
63
|
+
* @param storeName The store name
|
|
61
64
|
* @param actionName The action name
|
|
62
|
-
* @
|
|
65
|
+
* @param state the state
|
|
66
|
+
* @returns True if dev tool is enabled and action is send
|
|
63
67
|
*/
|
|
64
68
|
send(storeName, actionName, state) {
|
|
65
69
|
if (this.isActiveDevtool) {
|
|
@@ -161,6 +165,13 @@ class NgSimpleStateBaseStore {
|
|
|
161
165
|
get state() {
|
|
162
166
|
return this.state$;
|
|
163
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* When you override this method, you have to call the `super.ngOnDestroy()` method in your `ngOnDestroy()` method.
|
|
170
|
+
*/
|
|
171
|
+
ngOnDestroy() {
|
|
172
|
+
this.devToolSend(undefined, 'ngOnDestroy');
|
|
173
|
+
this.state$.complete();
|
|
174
|
+
}
|
|
164
175
|
/**
|
|
165
176
|
* Reset store to first loaded store state
|
|
166
177
|
*/
|
|
@@ -196,7 +207,7 @@ class NgSimpleStateBaseStore {
|
|
|
196
207
|
* @returns The current state
|
|
197
208
|
*/
|
|
198
209
|
getCurrentState() {
|
|
199
|
-
return this.state$.
|
|
210
|
+
return this.state$.getValue();
|
|
200
211
|
}
|
|
201
212
|
/**
|
|
202
213
|
* Set a new state
|
|
@@ -219,12 +230,6 @@ class NgSimpleStateBaseStore {
|
|
|
219
230
|
}
|
|
220
231
|
this.state$.next(state);
|
|
221
232
|
}
|
|
222
|
-
/**
|
|
223
|
-
* Complete the state
|
|
224
|
-
*/
|
|
225
|
-
completeState() {
|
|
226
|
-
this.state$.complete();
|
|
227
|
-
}
|
|
228
233
|
/**
|
|
229
234
|
* Send to dev tool a new state
|
|
230
235
|
* @param newState new state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-simple-state.js","sources":["../../../projects/ng-simple-state/src/lib/ng-simple-state-models.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state.module.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-dev-tool.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-local-storage.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-base-store.ts","../../../projects/ng-simple-state/src/public-api.ts","../../../projects/ng-simple-state/src/ng-simple-state.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * NgSimpleState config option\r\n */\r\nexport interface NgSimpleStateConfig {\r\n enableDevTool?: boolean;\r\n enableLocalStorage?: boolean;\r\n}\r\n\r\n/**\r\n * NgSimpleState config option for store\r\n */\r\nexport interface NgSimpleStateStoreConfig extends NgSimpleStateConfig {\r\n storeName?: string;\r\n}\r\n\r\n/**\r\n * NgSimpleState config InjectionToken\r\n */\r\nexport const NG_SIMPLE_STORE_CONFIG = new InjectionToken<NgSimpleStateConfig>(\r\n 'ng-simple-state.config'\r\n);\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgSimpleStateConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n exports: [],\r\n})\r\nexport class NgSimpleStateModule {\r\n static forRoot(\r\n ngHttpCachingConfig?: NgSimpleStateConfig\r\n ): ModuleWithProviders<NgSimpleStateModule> {\r\n return {\r\n ngModule: NgSimpleStateModule,\r\n providers: [\r\n {\r\n provide: NG_SIMPLE_STORE_CONFIG,\r\n useValue: ngHttpCachingConfig,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateDevTool {\r\n\r\n // tslint:disable-next-line: no-string-literal\r\n private globalDevtools: any = window['__REDUX_DEVTOOLS_EXTENSION__'] || window['devToolsExtension'];\r\n private localDevTool: any;\r\n private isActiveDevtool = false;\r\n private instanceId = `ng-simple-state-${Date.now()}`;\r\n private baseState: {[key: string]: any} = {};\r\n\r\n constructor() {\r\n if (this.globalDevtools) {\r\n this.localDevTool = this.globalDevtools.connect({\r\n name: 'NgSimpleState',\r\n instanceId: this.instanceId\r\n });\r\n this.isActiveDevtool = !!this.localDevTool;\r\n }\r\n }\r\n\r\n /**\r\n * Return true if dev tool is actvice\r\n * @returns True if dev tool is actvice\r\n */\r\n isActive(): boolean {\r\n return this.isActiveDevtool;\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param newState new state\r\n * @param actionName The action name\r\n * @returns True if dev tool is enabled\r\n */\r\n send(storeName: string, actionName: string, state: any): boolean {\r\n if (this.isActiveDevtool) {\r\n this.localDevTool.send(`${storeName}.${actionName}`, Object.assign(this.baseState, {[storeName]: state}), false, this.instanceId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport const BASE_KEY = 'NgSimpleState::';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateLocalStorage {\r\n\r\n private isStorageActive = false;\r\n\r\n constructor() {\r\n this.isStorageActive = !!localStorage;\r\n }\r\n\r\n /**\r\n * Return true if local storage is active\r\n * @returns True if local storage is active\r\n */\r\n isActive(): boolean {\r\n return this.isStorageActive;\r\n }\r\n\r\n /**\r\n * Set item into local storage\r\n * @param key key name\r\n * @param state state valie\r\n * @returns True if item is stored into local storage\r\n */\r\n setItem<K>(key: string, state: K): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.setItem(BASE_KEY + key, JSON.stringify(state));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Return item from local storage\r\n * @param key key name\r\n * @returns the item\r\n */\r\n getItem<K>(key: string): K | null {\r\n if (this.isStorageActive) {\r\n const state = localStorage.getItem(BASE_KEY + key);\r\n return JSON.parse(state);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Remove item from local storage\r\n * @param key key name\r\n * @returns True if item is removed\r\n */\r\n removeItem(key: string): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.removeItem(BASE_KEY + key);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable, Injector } from '@angular/core';\r\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\r\nimport { map, distinctUntilChanged, observeOn } from 'rxjs/operators';\r\nimport { NgSimpleStateDevTool } from './ng-simple-state-dev-tool';\r\nimport { NgSimpleStateLocalStorage } from './ng-simple-state-local-storage';\r\nimport { NgSimpleStateStoreConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n@Injectable()\r\nexport abstract class NgSimpleStateBaseStore<S> {\r\n\r\n private state$: BehaviorSubject<S>;\r\n private localStorageIsEnabled: boolean;\r\n private devToolIsEnabled: boolean;\r\n private devTool: NgSimpleStateDevTool;\r\n private localStorage: NgSimpleStateLocalStorage;\r\n private localStoreConfig: NgSimpleStateStoreConfig;\r\n private storeName: string;\r\n private firstState: S;\r\n private isArray: boolean;\r\n\r\n /**\r\n * Return the observable state\r\n * @returns Observable of the state\r\n */\r\n public get state(): BehaviorSubject<S> {\r\n return this.state$;\r\n }\r\n\r\n constructor(@Inject(Injector) injector: Injector) {\r\n this.devTool = injector.get(NgSimpleStateDevTool);\r\n this.localStorage = injector.get(NgSimpleStateLocalStorage);\r\n\r\n const globalConfig = injector.get(NG_SIMPLE_STORE_CONFIG, {});\r\n const storeConfig = this.storeConfig() || {};\r\n this.localStoreConfig = { ...globalConfig, ...storeConfig };\r\n\r\n this.localStorageIsEnabled = typeof this.localStoreConfig.enableLocalStorage === 'boolean' ? this.localStoreConfig.enableLocalStorage : false;\r\n this.devToolIsEnabled = typeof this.localStoreConfig.enableDevTool === 'boolean' ? this.localStoreConfig.enableDevTool : false;\r\n this.storeName = typeof this.localStoreConfig.storeName === 'string' ? this.localStoreConfig.storeName : this.constructor.name;\r\n\r\n if (this.localStorageIsEnabled) {\r\n this.firstState = this.localStorage.getItem<S>(this.storeName);\r\n }\r\n if (!this.firstState) {\r\n this.firstState = this.initialState();\r\n }\r\n\r\n this.devToolSend(this.firstState, `initialState`);\r\n\r\n this.isArray = Array.isArray(this.firstState);\r\n this.state$ = new BehaviorSubject<S>(Object.assign(this.isArray ? [] : {}, this.firstState));\r\n }\r\n\r\n /**\r\n * Reset store to first loaded store state\r\n */\r\n resetState(): void {\r\n this.setState(() => (this.firstState), 'resetState');\r\n }\r\n\r\n /**\r\n * Reset store to initial store state\r\n */\r\n restartState(): void {\r\n this.setState(() => (this.initialState()), 'restartState');\r\n }\r\n\r\n /**\r\n * Override this method for set a specific config for the store\r\n * @returns NgSimpleStateStoreConfig\r\n */\r\n storeConfig(): NgSimpleStateStoreConfig {\r\n return null;\r\n }\r\n\r\n /**\r\n * Set into the store the initial state\r\n * @returns The state object\r\n */\r\n protected abstract initialState(): S;\r\n\r\n /**\r\n * Select a store state\r\n * @param selectFn State selector (if not provided return full state)\r\n * @returns Observable of the selected state\r\n */\r\n selectState<K>(selectFn?: (state: Readonly<S>) => K): Observable<K> {\r\n if (!selectFn) {\r\n selectFn = (tmpState: Readonly<S>): any => Object.assign(this.isArray ? [] : {}, tmpState);\r\n }\r\n return this.state$.pipe(\r\n map(state => selectFn(state as Readonly<S>)),\r\n distinctUntilChanged(),\r\n observeOn(asyncScheduler)\r\n );\r\n }\r\n\r\n /**\r\n * Return the current store state (snapshot)\r\n * @returns The current state\r\n */\r\n getCurrentState(): S {\r\n return this.state$.value;\r\n }\r\n\r\n /**\r\n * Set a new state\r\n * @param selectFn State reducer\r\n * @param actionName The action label into Redux DevTools (default is parent function name)\r\n */\r\n setState(stateFn: (currentState: Readonly<S>) => Partial<S>, actionName?: string): void {\r\n const currState = this.getCurrentState();\r\n const newState = stateFn(currState);\r\n let state: S;\r\n if (this.isArray) {\r\n state = Object.assign([], newState) as any;\r\n } else {\r\n state = Object.assign({}, currState, newState);\r\n }\r\n this.devToolSend(state, actionName);\r\n if (this.localStorageIsEnabled) {\r\n this.localStorage.setItem<S>(this.storeName, state);\r\n }\r\n this.state$.next(state);\r\n }\r\n\r\n /**\r\n * Complete the state\r\n */\r\n completeState(): void {\r\n this.state$.complete();\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param newState new state\r\n * @param actionName The action name\r\n * @returns True if fìdev tools are enabled\r\n */\r\n private devToolSend(newState: S, actionName?: string): boolean {\r\n if (!this.devToolIsEnabled) {\r\n return false;\r\n }\r\n if (!actionName) {\r\n // retrive the parent (of parent) method into the stack trace\r\n actionName = new Error().stack\r\n .split('\\n')[3]\r\n .trim()\r\n .split(' ')[1]\r\n .split('.')[1];\r\n }\r\n return this.devTool.send(this.storeName, actionName, newState);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ng-simple-state\r\n */\r\nexport * from './lib/ng-simple-state.module';\r\nexport * from './lib/ng-simple-state-base-store';\r\nexport * from './lib/ng-simple-state-dev-tool';\r\nexport * from './lib/ng-simple-state-local-storage';\r\nexport * from './lib/ng-simple-state-models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-simple-state.js","sources":["../../../projects/ng-simple-state/src/lib/ng-simple-state-models.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state.module.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-dev-tool.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-local-storage.ts","../../../projects/ng-simple-state/src/lib/ng-simple-state-base-store.ts","../../../projects/ng-simple-state/src/public-api.ts","../../../projects/ng-simple-state/src/ng-simple-state.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * NgSimpleState config option\r\n */\r\nexport interface NgSimpleStateConfig {\r\n enableDevTool?: boolean;\r\n enableLocalStorage?: boolean;\r\n}\r\n\r\n/**\r\n * NgSimpleState config option for store\r\n */\r\nexport interface NgSimpleStateStoreConfig extends NgSimpleStateConfig {\r\n storeName?: string;\r\n}\r\n\r\n/**\r\n * NgSimpleState config InjectionToken\r\n */\r\nexport const NG_SIMPLE_STORE_CONFIG = new InjectionToken<NgSimpleStateConfig>(\r\n 'ng-simple-state.config'\r\n);\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgSimpleStateConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n exports: [],\r\n})\r\nexport class NgSimpleStateModule {\r\n static forRoot(\r\n ngHttpCachingConfig?: NgSimpleStateConfig\r\n ): ModuleWithProviders<NgSimpleStateModule> {\r\n return {\r\n ngModule: NgSimpleStateModule,\r\n providers: [\r\n {\r\n provide: NG_SIMPLE_STORE_CONFIG,\r\n useValue: ngHttpCachingConfig,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateDevTool {\r\n\r\n // tslint:disable-next-line: no-string-literal\r\n private globalDevtools: any = window['__REDUX_DEVTOOLS_EXTENSION__'] || window['devToolsExtension'];\r\n private localDevTool: any;\r\n private isActiveDevtool = false;\r\n private instanceId = `ng-simple-state-${Date.now()}`;\r\n private baseState: { [key: string]: any } = {};\r\n\r\n constructor() {\r\n if (this.globalDevtools) {\r\n this.localDevTool = this.globalDevtools.connect({\r\n name: 'NgSimpleState',\r\n instanceId: this.instanceId\r\n });\r\n this.isActiveDevtool = !!this.localDevTool;\r\n if (this.isActiveDevtool) {\r\n this.localDevTool.init(this.baseState);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Return true if dev tool is actvice\r\n * @returns True if dev tool is actvice\r\n */\r\n isActive(): boolean {\r\n return this.isActiveDevtool;\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param storeName The store name\r\n * @param actionName The action name\r\n * @param state the state\r\n * @returns True if dev tool is enabled and action is send\r\n */\r\n send(storeName: string, actionName: string, state: any): boolean {\r\n if (this.isActiveDevtool) {\r\n this.localDevTool.send(`${storeName}.${actionName}`, Object.assign(this.baseState, { [storeName]: state }), false, this.instanceId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport const BASE_KEY = 'NgSimpleState::';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgSimpleStateLocalStorage {\r\n\r\n private isStorageActive = false;\r\n\r\n constructor() {\r\n this.isStorageActive = !!localStorage;\r\n }\r\n\r\n /**\r\n * Return true if local storage is active\r\n * @returns True if local storage is active\r\n */\r\n isActive(): boolean {\r\n return this.isStorageActive;\r\n }\r\n\r\n /**\r\n * Set item into local storage\r\n * @param key key name\r\n * @param state state valie\r\n * @returns True if item is stored into local storage\r\n */\r\n setItem<K>(key: string, state: K): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.setItem(BASE_KEY + key, JSON.stringify(state));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Return item from local storage\r\n * @param key key name\r\n * @returns the item\r\n */\r\n getItem<K>(key: string): K | null {\r\n if (this.isStorageActive) {\r\n const state = localStorage.getItem(BASE_KEY + key);\r\n return JSON.parse(state);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Remove item from local storage\r\n * @param key key name\r\n * @returns True if item is removed\r\n */\r\n removeItem(key: string): boolean {\r\n if (this.isStorageActive) {\r\n localStorage.removeItem(BASE_KEY + key);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable, Injector, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\r\nimport { map, distinctUntilChanged, observeOn } from 'rxjs/operators';\r\nimport { NgSimpleStateDevTool } from './ng-simple-state-dev-tool';\r\nimport { NgSimpleStateLocalStorage } from './ng-simple-state-local-storage';\r\nimport { NgSimpleStateStoreConfig, NG_SIMPLE_STORE_CONFIG } from './ng-simple-state-models';\r\n@Injectable()\r\nexport abstract class NgSimpleStateBaseStore<S extends object | Array<any>> implements OnDestroy {\r\n\r\n private state$: BehaviorSubject<S>;\r\n private localStorageIsEnabled: boolean;\r\n private devToolIsEnabled: boolean;\r\n private devTool: NgSimpleStateDevTool;\r\n private localStorage: NgSimpleStateLocalStorage;\r\n private localStoreConfig: NgSimpleStateStoreConfig;\r\n private storeName: string;\r\n private firstState: S;\r\n private isArray: boolean;\r\n\r\n /**\r\n * Return the observable state\r\n * @returns Observable of the state\r\n */\r\n public get state(): BehaviorSubject<S> {\r\n return this.state$;\r\n }\r\n\r\n constructor(@Inject(Injector) injector: Injector) {\r\n this.devTool = injector.get(NgSimpleStateDevTool);\r\n this.localStorage = injector.get(NgSimpleStateLocalStorage);\r\n\r\n const globalConfig = injector.get(NG_SIMPLE_STORE_CONFIG, {});\r\n const storeConfig = this.storeConfig() || {};\r\n this.localStoreConfig = { ...globalConfig, ...storeConfig };\r\n\r\n this.localStorageIsEnabled = typeof this.localStoreConfig.enableLocalStorage === 'boolean' ? this.localStoreConfig.enableLocalStorage : false;\r\n this.devToolIsEnabled = typeof this.localStoreConfig.enableDevTool === 'boolean' ? this.localStoreConfig.enableDevTool : false;\r\n this.storeName = typeof this.localStoreConfig.storeName === 'string' ? this.localStoreConfig.storeName : this.constructor.name;\r\n\r\n if (this.localStorageIsEnabled) {\r\n this.firstState = this.localStorage.getItem<S>(this.storeName);\r\n }\r\n if (!this.firstState) {\r\n this.firstState = this.initialState();\r\n }\r\n\r\n this.devToolSend(this.firstState, `initialState`);\r\n\r\n this.isArray = Array.isArray(this.firstState);\r\n this.state$ = new BehaviorSubject<S>(Object.assign(this.isArray ? [] : {}, this.firstState));\r\n }\r\n\r\n /**\r\n * When you override this method, you have to call the `super.ngOnDestroy()` method in your `ngOnDestroy()` method.\r\n */\r\n ngOnDestroy(): void {\r\n this.devToolSend(undefined, 'ngOnDestroy');\r\n this.state$.complete();\r\n }\r\n\r\n /**\r\n * Reset store to first loaded store state\r\n */\r\n resetState(): void {\r\n this.setState(() => (this.firstState), 'resetState');\r\n }\r\n\r\n /**\r\n * Reset store to initial store state\r\n */\r\n restartState(): void {\r\n this.setState(() => (this.initialState()), 'restartState');\r\n }\r\n\r\n /**\r\n * Override this method for set a specific config for the store\r\n * @returns NgSimpleStateStoreConfig\r\n */\r\n storeConfig(): NgSimpleStateStoreConfig {\r\n return null;\r\n }\r\n\r\n /**\r\n * Set into the store the initial state\r\n * @returns The state object\r\n */\r\n protected abstract initialState(): S;\r\n\r\n /**\r\n * Select a store state\r\n * @param selectFn State selector (if not provided return full state)\r\n * @returns Observable of the selected state\r\n */\r\n selectState<K>(selectFn?: (state: Readonly<S>) => K): Observable<K> {\r\n if (!selectFn) {\r\n selectFn = (tmpState: Readonly<S>): any => Object.assign(this.isArray ? [] : {}, tmpState);\r\n }\r\n return this.state$.pipe(\r\n map(state => selectFn(state as Readonly<S>)),\r\n distinctUntilChanged(),\r\n observeOn(asyncScheduler)\r\n );\r\n }\r\n\r\n /**\r\n * Return the current store state (snapshot)\r\n * @returns The current state\r\n */\r\n getCurrentState(): S {\r\n return this.state$.getValue();\r\n }\r\n\r\n /**\r\n * Set a new state\r\n * @param selectFn State reducer\r\n * @param actionName The action label into Redux DevTools (default is parent function name)\r\n */\r\n setState(stateFn: (currentState: Readonly<S>) => Partial<S>, actionName?: string): void {\r\n const currState = this.getCurrentState();\r\n const newState = stateFn(currState);\r\n let state: S;\r\n if (this.isArray) {\r\n state = Object.assign([], newState) as any;\r\n } else {\r\n state = Object.assign({}, currState, newState);\r\n }\r\n this.devToolSend(state, actionName);\r\n if (this.localStorageIsEnabled) {\r\n this.localStorage.setItem<S>(this.storeName, state);\r\n }\r\n this.state$.next(state);\r\n }\r\n\r\n /**\r\n * Send to dev tool a new state\r\n * @param newState new state\r\n * @param actionName The action name\r\n * @returns True if fìdev tools are enabled\r\n */\r\n private devToolSend(newState: S, actionName?: string): boolean {\r\n if (!this.devToolIsEnabled) {\r\n return false;\r\n }\r\n if (!actionName) {\r\n // retrive the parent (of parent) method into the stack trace\r\n actionName = new Error().stack\r\n .split('\\n')[3]\r\n .trim()\r\n .split(' ')[1]\r\n .split('.')[1];\r\n }\r\n return this.devTool.send(this.storeName, actionName, newState);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ng-simple-state\r\n */\r\nexport * from './lib/ng-simple-state.module';\r\nexport * from './lib/ng-simple-state-base-store';\r\nexport * from './lib/ng-simple-state-dev-tool';\r\nexport * from './lib/ng-simple-state-local-storage';\r\nexport * from './lib/ng-simple-state-models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injector } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
3
|
import { NgSimpleStateStoreConfig } from './ng-simple-state-models';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare abstract class NgSimpleStateBaseStore<S
|
|
5
|
+
export declare abstract class NgSimpleStateBaseStore<S extends object | Array<any>> implements OnDestroy {
|
|
6
6
|
private state$;
|
|
7
7
|
private localStorageIsEnabled;
|
|
8
8
|
private devToolIsEnabled;
|
|
@@ -18,6 +18,10 @@ export declare abstract class NgSimpleStateBaseStore<S> {
|
|
|
18
18
|
*/
|
|
19
19
|
get state(): BehaviorSubject<S>;
|
|
20
20
|
constructor(injector: Injector);
|
|
21
|
+
/**
|
|
22
|
+
* When you override this method, you have to call the `super.ngOnDestroy()` method in your `ngOnDestroy()` method.
|
|
23
|
+
*/
|
|
24
|
+
ngOnDestroy(): void;
|
|
21
25
|
/**
|
|
22
26
|
* Reset store to first loaded store state
|
|
23
27
|
*/
|
|
@@ -53,10 +57,6 @@ export declare abstract class NgSimpleStateBaseStore<S> {
|
|
|
53
57
|
* @param actionName The action label into Redux DevTools (default is parent function name)
|
|
54
58
|
*/
|
|
55
59
|
setState(stateFn: (currentState: Readonly<S>) => Partial<S>, actionName?: string): void;
|
|
56
|
-
/**
|
|
57
|
-
* Complete the state
|
|
58
|
-
*/
|
|
59
|
-
completeState(): void;
|
|
60
60
|
/**
|
|
61
61
|
* Send to dev tool a new state
|
|
62
62
|
* @param newState new state
|
|
@@ -13,9 +13,10 @@ export declare class NgSimpleStateDevTool {
|
|
|
13
13
|
isActive(): boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Send to dev tool a new state
|
|
16
|
-
* @param
|
|
16
|
+
* @param storeName The store name
|
|
17
17
|
* @param actionName The action name
|
|
18
|
-
* @
|
|
18
|
+
* @param state the state
|
|
19
|
+
* @returns True if dev tool is enabled and action is send
|
|
19
20
|
*/
|
|
20
21
|
send(storeName: string, actionName: string, state: any): boolean;
|
|
21
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgSimpleStateDevTool, never>;
|