http-request-manager 18.3.1 → 18.3.2

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.
@@ -2,6 +2,7 @@
2
2
  export * from "./local-storage-manager-service/index";
3
3
  export * from "./request-manager-services/index";
4
4
  export * from "./request-manager-state-service/index";
5
+ export * from "./store-state-manager-service/index";
5
6
  export * from "./ws-manager-service/index";
6
7
  export * from "./utils/index";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHFEQUFxRDtBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBleHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2VzL2luZGV4XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sb2NhbC1zdG9yYWdlLW1hbmFnZXItc2VydmljZS9pbmRleFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9yZXF1ZXN0LW1hbmFnZXItc2VydmljZXMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL2luZGV4XCI7XG5leHBvcnQgKiBmcm9tIFwiLi93cy1tYW5hZ2VyLXNlcnZpY2UvaW5kZXhcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvaW5kZXhcIjtcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHFEQUFxRDtBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIGV4cG9ydCAqIGZyb20gXCIuL2RhdGFiYXNlLW1hbmFnZXItc2VydmljZXMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsLXN0b3JhZ2UtbWFuYWdlci1zZXJ2aWNlL2luZGV4XCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3JlcXVlc3QtbWFuYWdlci1zZXJ2aWNlcy9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVxdWVzdC1tYW5hZ2VyLXN0YXRlLXNlcnZpY2UvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlLXN0YXRlLW1hbmFnZXItc2VydmljZS9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vd3MtbWFuYWdlci1zZXJ2aWNlL2luZGV4XCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL2luZGV4XCI7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from "./store-state-manager.service";
2
+ export * from "./models/index";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLXN0YXRlLW1hbmFnZXItc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9zdG9yZS1zdGF0ZS1tYW5hZ2VyLnNlcnZpY2VcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2luZGV4XCI7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from "./state-storage-options.model";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLXN0YXRlLW1hbmFnZXItc2VydmljZS9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N0YXRlLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbFwiO1xuXG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { SettingOptions } from "../../local-storage-manager-service";
2
+ export class StateStorageOptions {
3
+ constructor(store, options, model) {
4
+ this.store = store;
5
+ this.options = options;
6
+ this.model = model;
7
+ }
8
+ static adapt(item) {
9
+ return new StateStorageOptions(item?.store ?? 'temp', item?.options ? SettingOptions.adapt(item.options) : SettingOptions.adapt(), item?.model);
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc3RvcmFnZS1vcHRpb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS1zdGF0ZS1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL3N0YXRlLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFRckUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUNTLEtBQWMsRUFDZCxPQUF3QixFQUN4QixLQUEyQjtRQUYzQixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBc0I7SUFDakMsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUNyQixPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksRUFBRSxLQUFLLElBQUksTUFBTSxFQUNyQixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUMzRSxJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXR0aW5nT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9sb2NhbC1zdG9yYWdlLW1hbmFnZXItc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlU3RvcmFnZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBzdG9yZT86IHN0cmluZztcbiAgb3B0aW9ucz86IFNldHRpbmdPcHRpb25zO1xuICBtb2RlbD86IChzdGF0ZTogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0ZVN0b3JhZ2VPcHRpb25zIGltcGxlbWVudHMgU3RhdGVTdG9yYWdlT3B0aW9uc0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0b3JlPzogc3RyaW5nLFxuICAgIHB1YmxpYyBvcHRpb25zPzogU2V0dGluZ09wdGlvbnMsXG4gICAgcHVibGljIG1vZGVsPzogKHN0YXRlOiBhbnkpID0+IGFueVxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBTdGF0ZVN0b3JhZ2VPcHRpb25zIHtcbiAgICByZXR1cm4gbmV3IFN0YXRlU3RvcmFnZU9wdGlvbnMoXG4gICAgICBpdGVtPy5zdG9yZSA/PyAndGVtcCcsXG4gICAgICBpdGVtPy5vcHRpb25zID8gU2V0dGluZ09wdGlvbnMuYWRhcHQoaXRlbS5vcHRpb25zKSA6IFNldHRpbmdPcHRpb25zLmFkYXB0KCksXG4gICAgICBpdGVtPy5tb2RlbFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ComponentStore } from '@ngrx/component-store';
3
+ import { take } from 'rxjs';
4
+ import { LocalStorageManagerService } from './../local-storage-manager-service/local-storage-manager.service';
5
+ import { StateStorageOptions } from './models/state-storage-options.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./models/state-storage-options.model";
8
+ export class StoreStateManagerService extends ComponentStore {
9
+ constructor(options = StateStorageOptions.adapt()) {
10
+ super(StoreStateManagerService.init(options));
11
+ this.options = options;
12
+ this.localStorageManagerService = inject(LocalStorageManagerService);
13
+ this.settings = null;
14
+ this.isRestoring = false;
15
+ // Selectors
16
+ this.data$ = this.select((state) => {
17
+ const model = this.options.model;
18
+ return (typeof model === 'function' && !model.prototype) ? model(state) : state;
19
+ });
20
+ // Updaters
21
+ this.updateData = this.updater((state, data) => {
22
+ const key = Object.keys(data)[0];
23
+ const hasKey = Object.keys(state).includes(key);
24
+ if (!hasKey)
25
+ return state;
26
+ const newState = { ...state, [key]: data[key] };
27
+ this.updateState(newState);
28
+ return { ...state, ...newState };
29
+ });
30
+ this.init(options);
31
+ }
32
+ static init(options) {
33
+ const model = options?.model;
34
+ return (model) ? model() : {};
35
+ }
36
+ init(options) {
37
+ this.settings = options;
38
+ this.localStorageManagerService.createStore({
39
+ name: this.settings?.store,
40
+ data: this.settings?.model(),
41
+ options: this.settings?.options,
42
+ });
43
+ this.localStorageManagerService.store$(this.settings?.store)
44
+ .pipe(take(1))
45
+ .subscribe(data => this.setState(data));
46
+ }
47
+ restoreState() {
48
+ return this.localStorageManagerService.store$(this.settings?.store)
49
+ .pipe(take(1))
50
+ .subscribe(data => {
51
+ this.updateData(data);
52
+ });
53
+ }
54
+ updateState(state) {
55
+ if (this.isRestoring)
56
+ return;
57
+ this.localStorageManagerService.updateStore({
58
+ name: this.settings?.store,
59
+ data: state
60
+ });
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, deps: [{ token: i1.StateStorageOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
63
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, providedIn: 'root' }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, decorators: [{
66
+ type: Injectable,
67
+ args: [{
68
+ providedIn: 'root'
69
+ }]
70
+ }], ctorParameters: () => [{ type: i1.StateStorageOptions }] });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtc3RhdGUtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS1zdGF0ZS1tYW5hZ2VyLXNlcnZpY2Uvc3RvcmUtc3RhdGUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBTzNFLE1BQU0sT0FBTyx3QkFBd0UsU0FBUSxjQUFpQjtJQVE1RyxZQUNVLFVBQStCLG1CQUFtQixDQUFDLEtBQUssRUFBRTtRQUVsRSxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFGckMsWUFBTyxHQUFQLE9BQU8sQ0FBbUQ7UUFQcEUsK0JBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFFL0QsYUFBUSxHQUFRLElBQUksQ0FBQTtRQUVaLGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBaUQzQixZQUFZO1FBQ0gsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNqQyxPQUFPLENBQUMsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUNqRixDQUFDLENBQUMsQ0FBQztRQUVILFdBQVc7UUFDRixlQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFTLEVBQUUsRUFBRTtZQUV0RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBRS9DLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sS0FBSyxDQUFBO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQTtZQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzFCLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFBO1FBRWxDLENBQUMsQ0FBQyxDQUFBO1FBNURBLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBNEI7UUFDOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFFLEtBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQzlDLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBNkI7UUFFaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFFdkIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztZQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLO1lBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUM1QixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPO1NBQ2hDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7YUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUV6QyxDQUFDO0lBRUQsWUFBWTtRQUVWLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQzthQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBRyxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU07UUFDM0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztZQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLO1lBQzFCLElBQUksRUFBRSxLQUFLO1NBQ1osQ0FBQyxDQUFBO0lBRUosQ0FBQzsrR0FyRFUsd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi8uLi9sb2NhbC1zdG9yYWdlLW1hbmFnZXItc2VydmljZS9sb2NhbC1zdG9yYWdlLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0ZVN0b3JhZ2VPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvc3RhdGUtc3RvcmFnZS1vcHRpb25zLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZVN0b3JlTWFuYWdlckRhdGE8VD4ge31cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVTdGF0ZU1hbmFnZXJTZXJ2aWNlPFQgZXh0ZW5kcyBvYmplY3QgPSBTdGF0ZVN0b3JlTWFuYWdlckRhdGE8YW55Pj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxUPiB7XG5cbiAgbG9jYWxTdG9yYWdlTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlTWFuYWdlclNlcnZpY2UpXG5cbiAgc2V0dGluZ3M6IGFueSA9IG51bGxcblxuICBwcml2YXRlIGlzUmVzdG9yaW5nID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wdGlvbnM6IFN0YXRlU3RvcmFnZU9wdGlvbnMgPSBTdGF0ZVN0b3JhZ2VPcHRpb25zLmFkYXB0KClcbiAgKSB7XG4gICAgc3VwZXIoU3RvcmVTdGF0ZU1hbmFnZXJTZXJ2aWNlLmluaXQob3B0aW9ucykpXG4gICAgdGhpcy5pbml0KG9wdGlvbnMpXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpbml0KG9wdGlvbnM6IFN0YXRlU3RvcmFnZU9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IG1vZGVsID0gb3B0aW9ucz8ubW9kZWxcbiAgICByZXR1cm4gKG1vZGVsKSA/IChtb2RlbCBhcyAoKSA9PiBhbnkpKCkgOiB7fVxuICB9XG5cbiAgaW5pdChvcHRpb25zPzogU3RhdGVTdG9yYWdlT3B0aW9ucykge1xuXG4gICAgdGhpcy5zZXR0aW5ncyA9IG9wdGlvbnNcblxuICAgIHRoaXMubG9jYWxTdG9yYWdlTWFuYWdlclNlcnZpY2UuY3JlYXRlU3RvcmUoe1xuICAgICAgbmFtZTogdGhpcy5zZXR0aW5ncz8uc3RvcmUsXG4gICAgICBkYXRhOiB0aGlzLnNldHRpbmdzPy5tb2RlbCgpLFxuICAgICAgb3B0aW9uczogdGhpcy5zZXR0aW5ncz8ub3B0aW9ucyxcbiAgICB9KVxuXG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZS5zdG9yZSQodGhpcy5zZXR0aW5ncz8uc3RvcmUpXG4gICAgLnBpcGUodGFrZSgxKSlcbiAgICAuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5zZXRTdGF0ZShkYXRhKSlcblxuICB9XG5cbiAgcmVzdG9yZVN0YXRlKCk6IFN1YnNjcmlwdGlvbiB7XG5cbiAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZS5zdG9yZSQodGhpcy5zZXR0aW5ncz8uc3RvcmUpXG4gICAgLnBpcGUodGFrZSgxKSlcbiAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy51cGRhdGVEYXRhKGRhdGEpXG4gICAgfSlcblxuICB9XG5cbiAgdXBkYXRlU3RhdGUoc3RhdGU6IGFueSkge1xuICAgIGlmKHRoaXMuaXNSZXN0b3JpbmcpIHJldHVyblxuICAgIHRoaXMubG9jYWxTdG9yYWdlTWFuYWdlclNlcnZpY2UudXBkYXRlU3RvcmUoe1xuICAgICAgbmFtZTogdGhpcy5zZXR0aW5ncz8uc3RvcmUsXG4gICAgICBkYXRhOiBzdGF0ZVxuICAgIH0pXG5cbiAgfVxuXG4gIC8vIFNlbGVjdG9yc1xuICByZWFkb25seSBkYXRhJCA9IHRoaXMuc2VsZWN0KChzdGF0ZTogYW55KSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm9wdGlvbnMubW9kZWw7XG4gICAgcmV0dXJuICh0eXBlb2YgbW9kZWwgPT09ICdmdW5jdGlvbicgJiYgIW1vZGVsLnByb3RvdHlwZSkgPyBtb2RlbChzdGF0ZSkgOiBzdGF0ZVxuICB9KTtcblxuICAvLyBVcGRhdGVyc1xuICByZWFkb25seSB1cGRhdGVEYXRhID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YTogYW55KSA9PiB7XG5cbiAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhkYXRhKVswXVxuICAgIGNvbnN0IGhhc0tleSA9IE9iamVjdC5rZXlzKHN0YXRlKS5pbmNsdWRlcyhrZXkpXG5cbiAgICBpZiAoIWhhc0tleSkgcmV0dXJuIHN0YXRlXG4gICAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlLCBba2V5XTogZGF0YVtrZXldIH1cbiAgICB0aGlzLnVwZGF0ZVN0YXRlKG5ld1N0YXRlKVxuICAgIHJldHVybiB7IC4uLnN0YXRlLCAuLi5uZXdTdGF0ZSB9XG5cbiAgfSlcblxufVxuIl19
@@ -4,7 +4,7 @@ import { ComponentStore } from '@ngrx/component-store';
4
4
  import { map, catchError, filter, delay, finalize, takeWhile, retry, startWith, tap, mergeMap, takeUntil, withLatestFrom, switchMap, concatMap, scan, distinctUntilChanged } from 'rxjs/operators';
5
5
  import { HttpClient, HttpHeaders, HttpEventType, HttpHeaderResponse, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
6
6
  import * as CryptoJS from 'crypto-js';
7
- import { from, BehaviorSubject, EMPTY, throwError, defer, interval, timer, Subject, of, Subscription, catchError as catchError$1, map as map$1, tap as tap$1 } from 'rxjs';
7
+ import { from, BehaviorSubject, EMPTY, throwError, defer, interval, timer, Subject, of, take, Subscription, catchError as catchError$1, map as map$1, tap as tap$1 } from 'rxjs';
8
8
  import { ToastMessageDisplayService, ToastDisplay, ToastColors, ToastMessageDisplayModule } from 'toast-message-display';
9
9
  import * as i1 from '@ngx-translate/core';
10
10
  import { TranslateModule } from '@ngx-translate/core';
@@ -2788,6 +2788,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2788
2788
  args: ["database"]
2789
2789
  }] }] });
2790
2790
 
2791
+ class StateStorageOptions {
2792
+ constructor(store, options, model) {
2793
+ this.store = store;
2794
+ this.options = options;
2795
+ this.model = model;
2796
+ }
2797
+ static adapt(item) {
2798
+ return new StateStorageOptions(item?.store ?? 'temp', item?.options ? SettingOptions.adapt(item.options) : SettingOptions.adapt(), item?.model);
2799
+ }
2800
+ }
2801
+
2802
+ class StoreStateManagerService extends ComponentStore {
2803
+ constructor(options = StateStorageOptions.adapt()) {
2804
+ super(StoreStateManagerService.init(options));
2805
+ this.options = options;
2806
+ this.localStorageManagerService = inject(LocalStorageManagerService);
2807
+ this.settings = null;
2808
+ this.isRestoring = false;
2809
+ // Selectors
2810
+ this.data$ = this.select((state) => {
2811
+ const model = this.options.model;
2812
+ return (typeof model === 'function' && !model.prototype) ? model(state) : state;
2813
+ });
2814
+ // Updaters
2815
+ this.updateData = this.updater((state, data) => {
2816
+ const key = Object.keys(data)[0];
2817
+ const hasKey = Object.keys(state).includes(key);
2818
+ if (!hasKey)
2819
+ return state;
2820
+ const newState = { ...state, [key]: data[key] };
2821
+ this.updateState(newState);
2822
+ return { ...state, ...newState };
2823
+ });
2824
+ this.init(options);
2825
+ }
2826
+ static init(options) {
2827
+ const model = options?.model;
2828
+ return (model) ? model() : {};
2829
+ }
2830
+ init(options) {
2831
+ this.settings = options;
2832
+ this.localStorageManagerService.createStore({
2833
+ name: this.settings?.store,
2834
+ data: this.settings?.model(),
2835
+ options: this.settings?.options,
2836
+ });
2837
+ this.localStorageManagerService.store$(this.settings?.store)
2838
+ .pipe(take(1))
2839
+ .subscribe(data => this.setState(data));
2840
+ }
2841
+ restoreState() {
2842
+ return this.localStorageManagerService.store$(this.settings?.store)
2843
+ .pipe(take(1))
2844
+ .subscribe(data => {
2845
+ this.updateData(data);
2846
+ });
2847
+ }
2848
+ updateState(state) {
2849
+ if (this.isRestoring)
2850
+ return;
2851
+ this.localStorageManagerService.updateStore({
2852
+ name: this.settings?.store,
2853
+ data: state
2854
+ });
2855
+ }
2856
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, deps: [{ token: StateStorageOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
2857
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, providedIn: 'root' }); }
2858
+ }
2859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, decorators: [{
2860
+ type: Injectable,
2861
+ args: [{
2862
+ providedIn: 'root'
2863
+ }]
2864
+ }], ctorParameters: () => [{ type: StateStorageOptions }] });
2865
+
2791
2866
  // export * from "./database-manager-services/index";
2792
2867
 
2793
2868
  class ErrorDisplaySettings {
@@ -4988,5 +5063,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4988
5063
  * Generated bundle index. Do not edit.
4989
5064
  */
4990
5065
 
4991
- export { ApiRequest, AppService, AsymmetricalEncryptionService, ChannelInfo, ChannelMessage, ConfigHTTPOptions, ConfigOptions, DataType, DatabaseDataDemoComponent, DatabaseStorage, ErrorDisplaySettings, GlobalStoreOptions, HTTPManagerService, HTTPManagerSignalsService, HTTPManagerStateService, HeadersService, HttpRequestManagerModule, HttpRequestServicesDemoComponent, LocalStorageDemoComponent, LocalStorageManagerService, LocalStorageOptions, LocalStorageSignalsManagerService, PathQueryService, Random, RandomNumber, RandomNumbers, RandomNumbersUnique, RandomSignature, RandomStr, RequestErrorInterceptor, RequestHeadersInterceptor, RequestManagerDemoComponent, RequestManagerStateDemoComponent, RequestOptions, RetryOptions, SettingOptions, StorageData, StorageOption, StorageType, SymmetricalEncryptionService, UUID, UserInfo, UserMessage, UserNameInfo, UtilsService, WSOptions, WebsocketService, WithCredentialsInterceptor, countdown, delayedRetry, requestPolling, requestStreaming };
5066
+ export { ApiRequest, AppService, AsymmetricalEncryptionService, ChannelInfo, ChannelMessage, ConfigHTTPOptions, ConfigOptions, DataType, DatabaseDataDemoComponent, DatabaseStorage, ErrorDisplaySettings, GlobalStoreOptions, HTTPManagerService, HTTPManagerSignalsService, HTTPManagerStateService, HeadersService, HttpRequestManagerModule, HttpRequestServicesDemoComponent, LocalStorageDemoComponent, LocalStorageManagerService, LocalStorageOptions, LocalStorageSignalsManagerService, PathQueryService, Random, RandomNumber, RandomNumbers, RandomNumbersUnique, RandomSignature, RandomStr, RequestErrorInterceptor, RequestHeadersInterceptor, RequestManagerDemoComponent, RequestManagerStateDemoComponent, RequestOptions, RetryOptions, SettingOptions, StateStorageOptions, StorageData, StorageOption, StorageType, StoreStateManagerService, SymmetricalEncryptionService, UUID, UserInfo, UserMessage, UserNameInfo, UtilsService, WSOptions, WebsocketService, WithCredentialsInterceptor, countdown, delayedRetry, requestPolling, requestStreaming };
4992
5067
  //# sourceMappingURL=http-request-manager.mjs.map