@progressive-development/pd-spa-helper 0.9.0 → 0.9.1
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/dist/auth/AuthController.d.ts +37 -0
- package/dist/auth/AuthController.d.ts.map +1 -0
- package/dist/auth/AuthController.js +65 -0
- package/dist/auth/auth-directives.d.ts +59 -0
- package/dist/auth/auth-directives.d.ts.map +1 -0
- package/dist/auth/auth-directives.js +81 -0
- package/dist/auth/auth-utils.d.ts +45 -0
- package/dist/auth/auth-utils.d.ts.map +1 -0
- package/dist/auth/auth-utils.js +42 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/components/default-login/DefaultLogin.d.ts +15 -0
- package/dist/components/default-login/DefaultLogin.d.ts.map +1 -0
- package/dist/components/default-login/DefaultLogin.js +120 -0
- package/dist/components/default-not-found/DefaultNotFound.d.ts +6 -0
- package/dist/components/default-not-found/DefaultNotFound.d.ts.map +1 -0
- package/dist/{defaultpage/default-not-found.js → components/default-not-found/DefaultNotFound.js} +10 -3
- package/dist/components/pd-section-page/PdSectionPage.d.ts +55 -0
- package/dist/components/pd-section-page/PdSectionPage.d.ts.map +1 -0
- package/dist/components/pd-section-page/PdSectionPage.js +40 -0
- package/dist/components/pd-spa-helper/PdSpaHelper.d.ts +160 -0
- package/dist/components/pd-spa-helper/PdSpaHelper.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/PdSpaHelper.js +651 -0
- package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts +77 -0
- package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/controllers/ScrollController.js +102 -0
- package/dist/components/pd-spa-helper/spa-config.d.ts +87 -0
- package/dist/components/pd-spa-helper/spa-config.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/spa-config.js +167 -0
- package/dist/components/pd-spa-helper/spa-events.d.ts +121 -0
- package/dist/components/pd-spa-helper/spa-events.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/spa-events.js +18 -0
- package/dist/db/index.d.ts +3 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/{store → db}/indexDB.d.ts +9 -9
- package/dist/db/indexDB.d.ts.map +1 -0
- package/dist/{store → db}/indexDB.js +14 -12
- package/dist/generated/locales/be.d.ts +1 -15
- package/dist/generated/locales/be.d.ts.map +1 -1
- package/dist/generated/locales/be.js +1 -15
- package/dist/generated/locales/de.d.ts +1 -15
- package/dist/generated/locales/de.d.ts.map +1 -1
- package/dist/generated/locales/de.js +1 -15
- package/dist/generated/locales/en.d.ts +1 -15
- package/dist/generated/locales/en.d.ts.map +1 -1
- package/dist/generated/locales/en.js +1 -15
- package/dist/helper/logger.d.ts +11 -12
- package/dist/helper/logger.d.ts.map +1 -1
- package/dist/helper/logger.js +10 -49
- package/dist/helper/refresh-id-token.d.ts.map +1 -1
- package/dist/helper/refresh-id-token.js +6 -4
- package/dist/index.d.ts +31 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -50
- package/dist/model/index.d.ts +4 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/spa-model.d.ts +14 -15
- package/dist/model/spa-model.d.ts.map +1 -1
- package/dist/router/PdRouterService.d.ts +4 -1
- package/dist/router/PdRouterService.d.ts.map +1 -1
- package/dist/router/PdRouterService.js +40 -16
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/screen-size/ScreenSizeController.d.ts +34 -0
- package/dist/screen-size/ScreenSizeController.d.ts.map +1 -0
- package/dist/screen-size/ScreenSizeController.js +58 -0
- package/dist/screen-size/ScreenSizeService.d.ts +49 -0
- package/dist/screen-size/ScreenSizeService.d.ts.map +1 -0
- package/dist/screen-size/ScreenSizeService.js +107 -0
- package/dist/screen-size/index.d.ts +13 -0
- package/dist/screen-size/index.d.ts.map +1 -0
- package/dist/screen-size/responsive-directives.d.ts +59 -0
- package/dist/screen-size/responsive-directives.d.ts.map +1 -0
- package/dist/screen-size/responsive-directives.js +71 -0
- package/dist/screen-size/types.d.ts +44 -0
- package/dist/screen-size/types.d.ts.map +1 -0
- package/dist/service-provider/ServiceRegistry.d.ts +67 -0
- package/dist/service-provider/ServiceRegistry.d.ts.map +1 -0
- package/dist/service-provider/ServiceRegistry.js +76 -0
- package/dist/service-provider/function-utils.d.ts +55 -0
- package/dist/service-provider/function-utils.d.ts.map +1 -0
- package/dist/service-provider/function-utils.js +30 -0
- package/dist/service-provider/index.d.ts +10 -0
- package/dist/service-provider/index.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IAuthProvider.d.ts +68 -0
- package/dist/service-provider/interfaces/IAuthProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IDatabaseProvider.d.ts +75 -0
- package/dist/service-provider/interfaces/IDatabaseProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IFunctionProvider.d.ts +49 -0
- package/dist/service-provider/interfaces/IFunctionProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IStorageProvider.d.ts +118 -0
- package/dist/service-provider/interfaces/IStorageProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/ServiceProvider.d.ts +24 -0
- package/dist/service-provider/interfaces/ServiceProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/common.d.ts +5 -0
- package/dist/service-provider/interfaces/common.d.ts.map +1 -0
- package/dist/service-provider/service-provider-model.d.ts +26 -7
- package/dist/service-provider/service-provider-model.d.ts.map +1 -1
- package/dist/services/fire-once-service.d.ts +35 -0
- package/dist/services/fire-once-service.d.ts.map +1 -0
- package/dist/services/fire-once-service.js +61 -0
- package/dist/store/async-action-effects.d.ts +179 -0
- package/dist/store/async-action-effects.d.ts.map +1 -0
- package/dist/store/async-action-effects.js +97 -0
- package/dist/store/async-action-utils.d.ts +151 -0
- package/dist/store/async-action-utils.d.ts.map +1 -0
- package/dist/store/async-action-utils.js +41 -0
- package/dist/store/index.d.ts +9 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/mini-rx.store.d.ts.map +1 -1
- package/dist/store/mini-rx.store.js +1 -3
- package/dist/store/spa-app-actions.d.ts +5 -22
- package/dist/store/spa-app-actions.d.ts.map +1 -1
- package/dist/store/spa-app-actions.js +4 -8
- package/dist/store/spa-app-effects.d.ts +0 -17
- package/dist/store/spa-app-effects.d.ts.map +1 -1
- package/dist/store/spa-app-effects.js +2 -40
- package/dist/store/spa-app-reducer.d.ts +5 -10
- package/dist/store/spa-app-reducer.d.ts.map +1 -1
- package/dist/store/spa-app-reducer.js +17 -8
- package/dist/store/spa-app-selector.d.ts +2 -2
- package/dist/store/spa-app-selector.d.ts.map +1 -1
- package/dist/store/spa-app-selector.js +1 -1
- package/dist/stories/introduction.stories.d.ts +11 -0
- package/dist/stories/introduction.stories.d.ts.map +1 -0
- package/package.json +13 -9
- package/dist/PdSpaHelper.d.ts +0 -83
- package/dist/PdSpaHelper.d.ts.map +0 -1
- package/dist/PdSpaHelper.js +0 -492
- package/dist/defaultpage/default-confirm-popup.d.ts +0 -19
- package/dist/defaultpage/default-confirm-popup.d.ts.map +0 -1
- package/dist/defaultpage/default-confirm-popup.js +0 -70
- package/dist/defaultpage/default-dialog-popup.d.ts +0 -19
- package/dist/defaultpage/default-dialog-popup.d.ts.map +0 -1
- package/dist/defaultpage/default-dialog-popup.js +0 -103
- package/dist/defaultpage/default-login.d.ts +0 -6
- package/dist/defaultpage/default-login.d.ts.map +0 -1
- package/dist/defaultpage/default-login.js +0 -33
- package/dist/defaultpage/default-not-found.d.ts +0 -6
- package/dist/defaultpage/default-not-found.d.ts.map +0 -1
- package/dist/defaultpage/default-popup.d.ts +0 -7
- package/dist/defaultpage/default-popup.d.ts.map +0 -1
- package/dist/defaultpage/default-popup.js +0 -24
- package/dist/defaultpage/default-step-address.d.ts +0 -14
- package/dist/defaultpage/default-step-address.d.ts.map +0 -1
- package/dist/defaultpage/default-step-address.js +0 -77
- package/dist/defaultpage/default-step-summary.d.ts +0 -28
- package/dist/defaultpage/default-step-summary.d.ts.map +0 -1
- package/dist/defaultpage/default-step-summary.js +0 -67
- package/dist/defaultpage/default-view-page.d.ts +0 -10
- package/dist/defaultpage/default-view-page.d.ts.map +0 -1
- package/dist/defaultpage/default-view-page.js +0 -70
- package/dist/defaultpage/default-wizard.d.ts +0 -37
- package/dist/defaultpage/default-wizard.d.ts.map +0 -1
- package/dist/defaultpage/default-wizard.js +0 -255
- package/dist/defaultpage/pd-default-wizard-step.d.ts +0 -60
- package/dist/defaultpage/pd-default-wizard-step.d.ts.map +0 -1
- package/dist/defaultpage/pd-default-wizard-step.js +0 -144
- package/dist/generated/locale-wrapper/be-wrapper.d.ts +0 -63
- package/dist/generated/locale-wrapper/be-wrapper.d.ts.map +0 -1
- package/dist/generated/locale-wrapper/de-wrapper.d.ts +0 -63
- package/dist/generated/locale-wrapper/de-wrapper.d.ts.map +0 -1
- package/dist/generated/locale-wrapper/en-wrapper.d.ts +0 -63
- package/dist/generated/locale-wrapper/en-wrapper.d.ts.map +0 -1
- package/dist/helper/blob-helper.d.ts +0 -3
- package/dist/helper/blob-helper.d.ts.map +0 -1
- package/dist/helper/blob-helper.js +0 -35
- package/dist/helper/date-helper.d.ts +0 -27
- package/dist/helper/date-helper.d.ts.map +0 -1
- package/dist/helper/date-helper.js +0 -129
- package/dist/helper/locale-format.d.ts +0 -4
- package/dist/helper/locale-format.d.ts.map +0 -1
- package/dist/helper/locale-format.js +0 -16
- package/dist/helper/number-helper.d.ts +0 -2
- package/dist/helper/number-helper.d.ts.map +0 -1
- package/dist/helper/number-helper.js +0 -13
- package/dist/helper/price-helper.d.ts +0 -5
- package/dist/helper/price-helper.d.ts.map +0 -1
- package/dist/helper/price-helper.js +0 -22
- package/dist/helper/text-helper.d.ts +0 -3
- package/dist/helper/text-helper.d.ts.map +0 -1
- package/dist/helper/text-helper.js +0 -4
- package/dist/popup/wizard-close-popup.d.ts +0 -11
- package/dist/popup/wizard-close-popup.d.ts.map +0 -1
- package/dist/popup/wizard-close-popup.js +0 -63
- package/dist/popup/wizard-reload-popup.d.ts +0 -14
- package/dist/popup/wizard-reload-popup.d.ts.map +0 -1
- package/dist/popup/wizard-reload-popup.js +0 -76
- package/dist/service-provider/firebase/auth.d.ts +0 -19
- package/dist/service-provider/firebase/auth.d.ts.map +0 -1
- package/dist/service-provider/firebase/auth.js +0 -62
- package/dist/service-provider/firebase/firestorage-client.d.ts +0 -22
- package/dist/service-provider/firebase/firestorage-client.d.ts.map +0 -1
- package/dist/service-provider/firebase/firestorage-client.js +0 -226
- package/dist/service-provider/firebase/firestore-client.d.ts +0 -12
- package/dist/service-provider/firebase/firestore-client.d.ts.map +0 -1
- package/dist/service-provider/firebase/firestore-client.js +0 -25
- package/dist/service-provider/firebase/functions-client.d.ts +0 -10
- package/dist/service-provider/firebase/functions-client.d.ts.map +0 -1
- package/dist/service-provider/firebase/functions-client.js +0 -63
- package/dist/service-provider/firebase/messagingFirebaseClient.d.ts +0 -9
- package/dist/service-provider/firebase/messagingFirebaseClient.d.ts.map +0 -1
- package/dist/service-provider/firebase/messagingFirebaseClient.js +0 -69
- package/dist/service-provider/mock/auth.d.ts +0 -6
- package/dist/service-provider/mock/auth.d.ts.map +0 -1
- package/dist/service-provider/mock/auth.js +0 -60
- package/dist/service-provider/mock/function-client.d.ts +0 -7
- package/dist/service-provider/mock/function-client.d.ts.map +0 -1
- package/dist/service-provider/mock/function-client.js +0 -30
- package/dist/service-provider/mock/storage-client.d.ts +0 -11
- package/dist/service-provider/mock/storage-client.d.ts.map +0 -1
- package/dist/service-provider/mock/storage-client.js +0 -106
- package/dist/service-provider/service-provider-impl.d.ts +0 -27
- package/dist/service-provider/service-provider-impl.d.ts.map +0 -1
- package/dist/service-provider/service-provider-impl.js +0 -222
- package/dist/store/indexDB.d.ts.map +0 -1
- package/dist/stories/address-edit.stories.d.ts +0 -27
- package/dist/stories/address-edit.stories.d.ts.map +0 -1
- package/dist/stories/address-new.stories.d.ts +0 -33
- package/dist/stories/address-new.stories.d.ts.map +0 -1
- package/dist/stories/default-confirm-popup.stories.d.ts +0 -24
- package/dist/stories/default-confirm-popup.stories.d.ts.map +0 -1
- package/dist/stories/default-dialog-popup.stories.d.ts +0 -23
- package/dist/stories/default-dialog-popup.stories.d.ts.map +0 -1
- package/dist/stories/default-login.stories.d.ts +0 -10
- package/dist/stories/default-login.stories.d.ts.map +0 -1
- package/dist/stories/default-popup.stories.d.ts +0 -9
- package/dist/stories/default-popup.stories.d.ts.map +0 -1
- package/dist/stories/pd-loading-state.stories.d.ts +0 -30
- package/dist/stories/pd-loading-state.stories.d.ts.map +0 -1
- package/dist/stories/pd-toast.stories.d.ts +0 -27
- package/dist/stories/pd-toast.stories.d.ts.map +0 -1
- package/dist/stories/routing.stories.d.ts +0 -24
- package/dist/stories/routing.stories.d.ts.map +0 -1
- package/dist/stories/test-impls/address-test.d.ts +0 -6
- package/dist/stories/test-impls/address-test.d.ts.map +0 -1
- package/dist/stories/test-impls/test-mock-app.d.ts +0 -15
- package/dist/stories/test-impls/test-mock-app.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts +0 -7
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts +0 -5
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts +0 -17
- package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts +0 -16
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts +0 -8
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts +0 -8
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts +0 -8
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts +0 -13
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts +0 -5
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts.map +0 -1
- package/dist/stories/test-wizard-step.stories.d.ts +0 -11
- package/dist/stories/test-wizard-step.stories.d.ts.map +0 -1
- package/dist/stories/test-wizard.stories.d.ts +0 -9
- package/dist/stories/test-wizard.stories.d.ts.map +0 -1
- package/dist/tmpown/pd-loading-state.d.ts +0 -9
- package/dist/tmpown/pd-loading-state.d.ts.map +0 -1
- package/dist/tmpown/pd-loading-state.js +0 -196
- package/dist/tmpown/pd-login.d.ts +0 -13
- package/dist/tmpown/pd-login.d.ts.map +0 -1
- package/dist/tmpown/pd-login.js +0 -165
- package/dist/tmpown/pd-toast.d.ts +0 -13
- package/dist/tmpown/pd-toast.d.ts.map +0 -1
- package/dist/tmpown/pd-toast.js +0 -127
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-provider-model.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAErC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAA6B;CAMjE;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACzC,MAAM,MAAM,4BAA4B,GACpC,uBAAuB,GACvB,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;IACpC,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"service-provider-model.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Action } from 'ts-action';
|
|
2
|
+
declare class FireOnceService {
|
|
3
|
+
private _firedKeys;
|
|
4
|
+
/**
|
|
5
|
+
* Execute an action only if it hasn't been fired before for the given key.
|
|
6
|
+
*
|
|
7
|
+
* @param key - Unique identifier for this fire-once action
|
|
8
|
+
* @param action - The action to dispatch
|
|
9
|
+
* @returns true if action was dispatched, false if already fired
|
|
10
|
+
*/
|
|
11
|
+
fireOnce(key: string, action: Action): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Check if a key has been fired.
|
|
14
|
+
*
|
|
15
|
+
* @param key - The key to check
|
|
16
|
+
* @returns true if the key has been fired
|
|
17
|
+
*/
|
|
18
|
+
hasFired(key: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Reset a specific key or all keys.
|
|
21
|
+
* Useful for logout scenarios or testing.
|
|
22
|
+
*
|
|
23
|
+
* @param key - Optional key to reset. If not provided, resets all keys.
|
|
24
|
+
*/
|
|
25
|
+
reset(key?: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get all fired keys (for debugging).
|
|
28
|
+
*
|
|
29
|
+
* @returns Array of all fired keys
|
|
30
|
+
*/
|
|
31
|
+
getFiredKeys(): string[];
|
|
32
|
+
}
|
|
33
|
+
export declare const fireOnceService: FireOnceService;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=fire-once-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fire-once-service.d.ts","sourceRoot":"","sources":["../../src/services/fire-once-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIxC,cAAM,eAAe;IACnB,OAAO,CAAC,UAAU,CAAqB;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAY9C;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAUzB;;;;OAIG;IACH,YAAY,IAAI,MAAM,EAAE;CAGzB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { pdStore } from '../store/mini-rx.store.js';
|
|
2
|
+
import { createLogger } from '../helper/logger.js';
|
|
3
|
+
|
|
4
|
+
const logger = createLogger("FireOnceService");
|
|
5
|
+
class FireOnceService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._firedKeys = /* @__PURE__ */ new Set();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Execute an action only if it hasn't been fired before for the given key.
|
|
11
|
+
*
|
|
12
|
+
* @param key - Unique identifier for this fire-once action
|
|
13
|
+
* @param action - The action to dispatch
|
|
14
|
+
* @returns true if action was dispatched, false if already fired
|
|
15
|
+
*/
|
|
16
|
+
fireOnce(key, action) {
|
|
17
|
+
if (this._firedKeys.has(key)) {
|
|
18
|
+
logger.debug(`Key already fired, skipping: ${key}`);
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
this._firedKeys.add(key);
|
|
22
|
+
pdStore().dispatch(action);
|
|
23
|
+
logger.debug(`Action fired for key: ${key}`);
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check if a key has been fired.
|
|
28
|
+
*
|
|
29
|
+
* @param key - The key to check
|
|
30
|
+
* @returns true if the key has been fired
|
|
31
|
+
*/
|
|
32
|
+
hasFired(key) {
|
|
33
|
+
return this._firedKeys.has(key);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Reset a specific key or all keys.
|
|
37
|
+
* Useful for logout scenarios or testing.
|
|
38
|
+
*
|
|
39
|
+
* @param key - Optional key to reset. If not provided, resets all keys.
|
|
40
|
+
*/
|
|
41
|
+
reset(key) {
|
|
42
|
+
if (key) {
|
|
43
|
+
this._firedKeys.delete(key);
|
|
44
|
+
logger.debug(`Reset key: ${key}`);
|
|
45
|
+
} else {
|
|
46
|
+
this._firedKeys.clear();
|
|
47
|
+
logger.debug("Reset all keys");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get all fired keys (for debugging).
|
|
52
|
+
*
|
|
53
|
+
* @returns Array of all fired keys
|
|
54
|
+
*/
|
|
55
|
+
getFiredKeys() {
|
|
56
|
+
return Array.from(this._firedKeys);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const fireOnceService = new FireOnceService();
|
|
60
|
+
|
|
61
|
+
export { fireOnceService };
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { Action } from 'ts-action';
|
|
2
|
+
import { AsyncActionGroupBase } from './async-action-utils.js';
|
|
3
|
+
export interface LoadingEffectOptions {
|
|
4
|
+
/** Show modal overlay (default: false) */
|
|
5
|
+
modal?: boolean;
|
|
6
|
+
/** Show small background loader (default: false) */
|
|
7
|
+
smallBackground?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ErrorToastOptions {
|
|
10
|
+
/** Custom function to get error message from error code */
|
|
11
|
+
getErrorMessage?: (code: number) => string;
|
|
12
|
+
/** Default error message when code not found */
|
|
13
|
+
defaultErrorMessage?: string;
|
|
14
|
+
/** Toast duration in ms (default: -1 = persistent, user must close manually) */
|
|
15
|
+
duration?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface SuccessToastOptions {
|
|
18
|
+
/** Default toast duration in ms (default: 4000) */
|
|
19
|
+
defaultDuration?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates an effect that adds loading state when async actions start.
|
|
23
|
+
*
|
|
24
|
+
* @param groups - Array of async action groups to monitor
|
|
25
|
+
* @param options - Loading state display options
|
|
26
|
+
* @returns Effect that dispatches addLoadingState actions
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Modal loading for specific groups
|
|
31
|
+
* export const modalLoadingEffect = createLoadingEffect(
|
|
32
|
+
* [loadProfile, saveProfile],
|
|
33
|
+
* { modal: true }
|
|
34
|
+
* );
|
|
35
|
+
*
|
|
36
|
+
* // Background loading for other groups
|
|
37
|
+
* export const bgLoadingEffect = createLoadingEffect(
|
|
38
|
+
* [loadEvents, loadRequests],
|
|
39
|
+
* { smallBackground: true }
|
|
40
|
+
* );
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function createLoadingEffect(groups: AsyncActionGroupBase[], options?: LoadingEffectOptions): import('rxjs').Observable<{
|
|
44
|
+
payload: import('@progressive-development/pd-content').LoadingState;
|
|
45
|
+
} & {
|
|
46
|
+
type: "SPA_APP_ADD_LOADING";
|
|
47
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an effect that removes loading state when async actions complete.
|
|
50
|
+
*
|
|
51
|
+
* @param groups - Array of async action groups to monitor
|
|
52
|
+
* @returns Effect that dispatches removeLoadingState actions
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* export const removeLoadingEffect = createRemoveLoadingEffect([
|
|
57
|
+
* loadProfile, saveProfile, loadEvents, loadRequests
|
|
58
|
+
* ]);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function createRemoveLoadingEffect(groups: AsyncActionGroupBase[]): import('rxjs').Observable<{
|
|
62
|
+
payload: string;
|
|
63
|
+
} & {
|
|
64
|
+
type: "SPA_APP_REMOVE_LOADING";
|
|
65
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
66
|
+
/**
|
|
67
|
+
* Creates an effect that shows success toast when async actions succeed.
|
|
68
|
+
* Only shows toast if successTxt is defined and non-empty.
|
|
69
|
+
*
|
|
70
|
+
* @param groups - Array of async action groups to monitor
|
|
71
|
+
* @param options - Toast display options
|
|
72
|
+
* @returns Non-dispatching effect (uses toastBus directly)
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* export const successToastEffect = createSuccessToastEffect([
|
|
77
|
+
* saveProfile, // Has successTxt: "Profile saved!"
|
|
78
|
+
* loadProfile, // Has successTxt: "" (no toast)
|
|
79
|
+
* ]);
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function createSuccessToastEffect(groups: AsyncActionGroupBase[], options?: SuccessToastOptions): import('rxjs').Observable<Action<string>> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
83
|
+
/**
|
|
84
|
+
* Creates an effect that shows error toast when async actions fail.
|
|
85
|
+
* Handles BusinessError to show appropriate error messages.
|
|
86
|
+
*
|
|
87
|
+
* @param groups - Array of async action groups to monitor
|
|
88
|
+
* @param options - Error handling options
|
|
89
|
+
* @returns Non-dispatching effect (uses toastBus directly)
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* export const errorToastEffect = createErrorToastEffect(
|
|
94
|
+
* [loadProfile, saveProfile],
|
|
95
|
+
* {
|
|
96
|
+
* getErrorMessage: (code) => {
|
|
97
|
+
* const messages: Record<number, string> = {
|
|
98
|
+
* [-150]: "Access denied",
|
|
99
|
+
* [-180]: "Technical error",
|
|
100
|
+
* };
|
|
101
|
+
* return messages[code] || "An error occurred";
|
|
102
|
+
* },
|
|
103
|
+
* }
|
|
104
|
+
* );
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare function createErrorToastEffect(groups: AsyncActionGroupBase[], options?: ErrorToastOptions): import('rxjs').Observable<Action<string> & {
|
|
108
|
+
payload?: unknown;
|
|
109
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
110
|
+
/**
|
|
111
|
+
* Options for creating all loading-related effects at once.
|
|
112
|
+
*/
|
|
113
|
+
export interface CreateLoadingEffectsOptions {
|
|
114
|
+
/** Groups that show modal loading */
|
|
115
|
+
modalGroups?: AsyncActionGroupBase[];
|
|
116
|
+
/** Groups that show background loading */
|
|
117
|
+
backgroundGroups?: AsyncActionGroupBase[];
|
|
118
|
+
/** Groups that show success toasts */
|
|
119
|
+
successToastGroups?: AsyncActionGroupBase[];
|
|
120
|
+
/** All groups for error handling */
|
|
121
|
+
errorGroups?: AsyncActionGroupBase[];
|
|
122
|
+
/** Error message resolver */
|
|
123
|
+
getErrorMessage?: (code: number) => string;
|
|
124
|
+
/** Default error message */
|
|
125
|
+
defaultErrorMessage?: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Creates all standard loading-related effects at once.
|
|
129
|
+
* Returns an object with all effects that can be spread into the effects array.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const {
|
|
134
|
+
* modalLoadingEffect,
|
|
135
|
+
* bgLoadingEffect,
|
|
136
|
+
* removeLoadingEffect,
|
|
137
|
+
* successToastEffect,
|
|
138
|
+
* errorToastEffect
|
|
139
|
+
* } = createAllLoadingEffects({
|
|
140
|
+
* modalGroups: [loadProfile, saveProfile],
|
|
141
|
+
* backgroundGroups: [loadEvents],
|
|
142
|
+
* successToastGroups: [saveProfile],
|
|
143
|
+
* errorGroups: [loadProfile, saveProfile, loadEvents],
|
|
144
|
+
* getErrorMessage: myErrorMessageFn,
|
|
145
|
+
* });
|
|
146
|
+
*
|
|
147
|
+
* // In store config:
|
|
148
|
+
* effects: [
|
|
149
|
+
* modalLoadingEffect,
|
|
150
|
+
* bgLoadingEffect,
|
|
151
|
+
* removeLoadingEffect,
|
|
152
|
+
* successToastEffect,
|
|
153
|
+
* errorToastEffect,
|
|
154
|
+
* // ... other effects
|
|
155
|
+
* ]
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare function createAllLoadingEffects(options: CreateLoadingEffectsOptions): {
|
|
159
|
+
modalLoadingEffect: (import('rxjs').Observable<{
|
|
160
|
+
payload: import('@progressive-development/pd-content').LoadingState;
|
|
161
|
+
} & {
|
|
162
|
+
type: "SPA_APP_ADD_LOADING";
|
|
163
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata) | null;
|
|
164
|
+
bgLoadingEffect: (import('rxjs').Observable<{
|
|
165
|
+
payload: import('@progressive-development/pd-content').LoadingState;
|
|
166
|
+
} & {
|
|
167
|
+
type: "SPA_APP_ADD_LOADING";
|
|
168
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata) | null;
|
|
169
|
+
removeLoadingEffect: (import('rxjs').Observable<{
|
|
170
|
+
payload: string;
|
|
171
|
+
} & {
|
|
172
|
+
type: "SPA_APP_REMOVE_LOADING";
|
|
173
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata) | null;
|
|
174
|
+
successToastEffect: (import('rxjs').Observable<Action<string>> & import('mini-rx-store/lib/models.js').HasEffectMetadata) | null;
|
|
175
|
+
errorToastEffect: (import('rxjs').Observable<Action<string> & {
|
|
176
|
+
payload?: unknown;
|
|
177
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata) | null;
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=async-action-effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-action-effects.d.ts","sourceRoot":"","sources":["../../src/store/async-action-effects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAOpE,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,oBAAoB,EAAE,EAC9B,OAAO,GAAE,oBAAyB;;;;6DAoBnC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,EAAE;;;;6DAevE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,oBAAoB,EAAE,EAC9B,OAAO,GAAE,mBAAwB,uGAoBlC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAAE,EAC9B,OAAO,GAAE,iBAAsB;cASO,OAAO;6DAmB9C;AAMD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qCAAqC;IACrC,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC1C,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC5C,oCAAoC;IACpC,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,6BAA6B;IAC7B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;kBA1EpC,OAAO;;EAoG9C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createEffect, actions$ } from 'mini-rx-store';
|
|
2
|
+
import { filter, map, tap } from 'rxjs/operators';
|
|
3
|
+
import { toastBus } from '@progressive-development/pd-page';
|
|
4
|
+
import { addLoadingState, removeLoadingState } from './spa-app-actions.js';
|
|
5
|
+
import { isBusinessError } from '../service-provider/function-utils.js';
|
|
6
|
+
import { getConfigForAction } from './async-action-utils.js';
|
|
7
|
+
|
|
8
|
+
function createLoadingEffect(groups, options = {}) {
|
|
9
|
+
const startTypes = groups.map((g) => g.types.action);
|
|
10
|
+
return createEffect(
|
|
11
|
+
actions$.pipe(
|
|
12
|
+
filter((action) => startTypes.includes(action.type)),
|
|
13
|
+
map((action) => {
|
|
14
|
+
const config = getConfigForAction(action, groups);
|
|
15
|
+
return addLoadingState({
|
|
16
|
+
actionKey: config?.actionKey || "unknown",
|
|
17
|
+
loadingTxt: config?.loadingTxt || "Loading...",
|
|
18
|
+
isLoading: true,
|
|
19
|
+
modal: options.modal ?? config?.modal ?? false,
|
|
20
|
+
smallBackground: options.smallBackground ?? config?.smallBackground ?? false
|
|
21
|
+
});
|
|
22
|
+
})
|
|
23
|
+
)
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
function createRemoveLoadingEffect(groups) {
|
|
27
|
+
const completionTypes = groups.flatMap((g) => [
|
|
28
|
+
g.types.success,
|
|
29
|
+
g.types.fail
|
|
30
|
+
]);
|
|
31
|
+
return createEffect(
|
|
32
|
+
actions$.pipe(
|
|
33
|
+
filter((action) => completionTypes.includes(action.type)),
|
|
34
|
+
map((action) => {
|
|
35
|
+
const config = getConfigForAction(action, groups);
|
|
36
|
+
return removeLoadingState(config?.actionKey || "unknown");
|
|
37
|
+
})
|
|
38
|
+
)
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function createSuccessToastEffect(groups, options = {}) {
|
|
42
|
+
const successTypes = groups.filter((g) => g.config.successTxt).map((g) => g.types.success);
|
|
43
|
+
return createEffect(
|
|
44
|
+
actions$.pipe(
|
|
45
|
+
filter((action) => successTypes.includes(action.type)),
|
|
46
|
+
tap((action) => {
|
|
47
|
+
const config = getConfigForAction(action, groups);
|
|
48
|
+
if (config?.successTxt) {
|
|
49
|
+
const duration = config.successDuration || options.defaultDuration || 4e3;
|
|
50
|
+
toastBus.success(config.successTxt, duration);
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
),
|
|
54
|
+
{ dispatch: false }
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function createErrorToastEffect(groups, options = {}) {
|
|
58
|
+
const failTypes = groups.map((g) => g.types.fail);
|
|
59
|
+
const defaultMessage = options.defaultErrorMessage || "An error occurred";
|
|
60
|
+
const duration = options.duration ?? -1;
|
|
61
|
+
return createEffect(
|
|
62
|
+
actions$.pipe(
|
|
63
|
+
filter((action) => failTypes.includes(action.type)),
|
|
64
|
+
tap((action) => {
|
|
65
|
+
const error = action.payload;
|
|
66
|
+
let message;
|
|
67
|
+
if (isBusinessError(error)) {
|
|
68
|
+
message = options.getErrorMessage ? options.getErrorMessage(error.code) : error.message || defaultMessage;
|
|
69
|
+
} else if (error instanceof Error) {
|
|
70
|
+
message = error.message || defaultMessage;
|
|
71
|
+
} else {
|
|
72
|
+
message = defaultMessage;
|
|
73
|
+
}
|
|
74
|
+
toastBus.error(message, duration);
|
|
75
|
+
})
|
|
76
|
+
),
|
|
77
|
+
{ dispatch: false }
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
function createAllLoadingEffects(options) {
|
|
81
|
+
const allGroups = [
|
|
82
|
+
...options.modalGroups || [],
|
|
83
|
+
...options.backgroundGroups || []
|
|
84
|
+
];
|
|
85
|
+
return {
|
|
86
|
+
modalLoadingEffect: options.modalGroups?.length ? createLoadingEffect(options.modalGroups, { modal: true }) : null,
|
|
87
|
+
bgLoadingEffect: options.backgroundGroups?.length ? createLoadingEffect(options.backgroundGroups, { smallBackground: true }) : null,
|
|
88
|
+
removeLoadingEffect: allGroups.length ? createRemoveLoadingEffect(allGroups) : null,
|
|
89
|
+
successToastEffect: options.successToastGroups?.length ? createSuccessToastEffect(options.successToastGroups) : null,
|
|
90
|
+
errorToastEffect: options.errorGroups?.length ? createErrorToastEffect(options.errorGroups, {
|
|
91
|
+
getErrorMessage: options.getErrorMessage,
|
|
92
|
+
defaultErrorMessage: options.defaultErrorMessage
|
|
93
|
+
}) : null
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { createAllLoadingEffects, createErrorToastEffect, createLoadingEffect, createRemoveLoadingEffect, createSuccessToastEffect };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { ActionCreator, Action } from 'ts-action';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for loading state and toast messages.
|
|
4
|
+
*/
|
|
5
|
+
export interface AsyncActionConfig {
|
|
6
|
+
/** Unique key for identifying the loading state */
|
|
7
|
+
actionKey: string;
|
|
8
|
+
/** Text shown during loading */
|
|
9
|
+
loadingTxt: string;
|
|
10
|
+
/** Text shown on success (empty string = no toast) */
|
|
11
|
+
successTxt?: string;
|
|
12
|
+
/** Show modal overlay during loading */
|
|
13
|
+
modal?: boolean;
|
|
14
|
+
/** Show small background loader */
|
|
15
|
+
smallBackground?: boolean;
|
|
16
|
+
/** Duration for success toast in ms */
|
|
17
|
+
successDuration?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Typed action creator that preserves payload type for ts-action compatibility.
|
|
21
|
+
* This enables proper type inference with on() and ofType().
|
|
22
|
+
*/
|
|
23
|
+
type TypedActionCreator<P> = ActionCreator<string, (payload: P) => {
|
|
24
|
+
type: string;
|
|
25
|
+
payload: P;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Action creator without payload.
|
|
29
|
+
*/
|
|
30
|
+
type TypedActionCreatorVoid = ActionCreator<string, () => {
|
|
31
|
+
type: string;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Base interface for async action groups.
|
|
35
|
+
* Use this type for arrays containing groups with different payload types.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const allGroups: AsyncActionGroupBase[] = [
|
|
40
|
+
* loadProfile, // AsyncActionGroup<void, ProfileData>
|
|
41
|
+
* sendRequest, // AsyncActionGroup<RequestData, void>
|
|
42
|
+
* ];
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export interface AsyncActionGroupBase {
|
|
46
|
+
/** Loading state and toast configuration */
|
|
47
|
+
config: AsyncActionConfig;
|
|
48
|
+
/** Base action type (e.g., "LOAD_PROFILE") */
|
|
49
|
+
baseType: string;
|
|
50
|
+
/** All action types for this group */
|
|
51
|
+
types: {
|
|
52
|
+
action: string;
|
|
53
|
+
success: string;
|
|
54
|
+
fail: string;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* An async action group containing action, success, and fail action creators
|
|
59
|
+
* plus the associated configuration.
|
|
60
|
+
*
|
|
61
|
+
* The action creators preserve their full ts-action types for compatibility
|
|
62
|
+
* with on() and ofType().
|
|
63
|
+
*/
|
|
64
|
+
export interface AsyncActionGroup<TPayload = void, TResult = unknown, TError = Error> extends AsyncActionGroupBase {
|
|
65
|
+
/** The initiating action creator - typed for ts-action compatibility */
|
|
66
|
+
action: TPayload extends void ? TypedActionCreatorVoid : TypedActionCreator<TPayload>;
|
|
67
|
+
/** The success action creator - typed for ts-action compatibility */
|
|
68
|
+
success: TypedActionCreator<TResult>;
|
|
69
|
+
/** The fail action creator - typed for ts-action compatibility */
|
|
70
|
+
fail: TypedActionCreator<TError>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Options for creating an async action group.
|
|
74
|
+
* actionKey is derived from baseType if not provided.
|
|
75
|
+
*/
|
|
76
|
+
export type AsyncActionOptions = Omit<AsyncActionConfig, "actionKey"> & {
|
|
77
|
+
actionKey?: string;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Creates an async action group with action/success/fail creators and config.
|
|
81
|
+
*
|
|
82
|
+
* @param baseType - Base action type (e.g., "LOAD_PROFILE")
|
|
83
|
+
* @param options - Loading state and toast configuration
|
|
84
|
+
* @returns AsyncActionGroup with all creators and config
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* // Without payload on action
|
|
89
|
+
* export const loadProfile = createAsyncAction<ProfileData>("LOAD_PROFILE", {
|
|
90
|
+
* loadingTxt: msg("Loading profile...", { id: "..." }),
|
|
91
|
+
* modal: true,
|
|
92
|
+
* });
|
|
93
|
+
*
|
|
94
|
+
* // With typed payloads
|
|
95
|
+
* export const updateProfile = createAsyncActionGroup<
|
|
96
|
+
* UpdateData, // Action payload
|
|
97
|
+
* ProfileData, // Success payload
|
|
98
|
+
* >("UPDATE_PROFILE", {
|
|
99
|
+
* loadingTxt: "Updating...",
|
|
100
|
+
* successTxt: "Profile updated!",
|
|
101
|
+
* modal: true,
|
|
102
|
+
* });
|
|
103
|
+
*
|
|
104
|
+
* // Usage in effect with ofType():
|
|
105
|
+
* actions$.pipe(
|
|
106
|
+
* ofType(loadProfile.action),
|
|
107
|
+
* mergeMap(() => profileService.load().pipe(
|
|
108
|
+
* map((data) => loadProfile.success(data)),
|
|
109
|
+
* catchError((err) => of(loadProfile.fail(err)))
|
|
110
|
+
* ))
|
|
111
|
+
* );
|
|
112
|
+
*
|
|
113
|
+
* // Usage in reducer with on():
|
|
114
|
+
* reducer(
|
|
115
|
+
* initialState,
|
|
116
|
+
* on(loadProfile.success, (state, { payload }) => ({
|
|
117
|
+
* ...state,
|
|
118
|
+
* profile: payload
|
|
119
|
+
* }))
|
|
120
|
+
* );
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function createAsyncActionGroup<TPayload = void, TResult = unknown, TError = Error>(baseType: string, options: AsyncActionOptions): AsyncActionGroup<TPayload, TResult, TError>;
|
|
124
|
+
/**
|
|
125
|
+
* Creates an async action group without payload on the initiating action.
|
|
126
|
+
* This is a convenience wrapper for the common case.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* export const loadProfile = createAsyncAction<ProfileData>("LOAD_PROFILE", {
|
|
131
|
+
* loadingTxt: "Loading...",
|
|
132
|
+
* modal: true,
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* // loadProfile.action() - no payload
|
|
136
|
+
* // loadProfile.success(data) - ProfileData payload
|
|
137
|
+
* // loadProfile.fail(error) - Error payload
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export declare function createAsyncAction<TResult = unknown, TError = Error>(baseType: string, options: AsyncActionOptions): AsyncActionGroup<void, TResult, TError>;
|
|
141
|
+
/**
|
|
142
|
+
* Type guard to check if an action belongs to an async action group.
|
|
143
|
+
*/
|
|
144
|
+
export declare function isActionFromGroup(actionObj: Action, group: AsyncActionGroupBase): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Gets the config for an action from a list of groups.
|
|
147
|
+
* Returns undefined if no matching group is found.
|
|
148
|
+
*/
|
|
149
|
+
export declare function getConfigForAction(actionObj: Action, groups: AsyncActionGroupBase[]): AsyncActionConfig | undefined;
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=async-action-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-action-utils.d.ts","sourceRoot":"","sources":["../../src/store/async-action-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAmB,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,KAAK,kBAAkB,CAAC,CAAC,IAAI,aAAa,CACxC,MAAM,EACN,CAAC,OAAO,EAAE,CAAC,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAC7C,CAAC;AAEF;;GAEG;AACH,KAAK,sBAAsB,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE5E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB,CAC/B,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,OAAO,EACjB,MAAM,GAAG,KAAK,CACd,SAAQ,oBAAoB;IAC5B,wEAAwE;IACxE,MAAM,EAAE,QAAQ,SAAS,IAAI,GACzB,sBAAsB,GACtB,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACjC,qEAAqE;IACrE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,kEAAkE;IAClE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,OAAO,EACjB,MAAM,GAAG,KAAK,EAEd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAuC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK,EACjE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAEzC;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAMT;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,EAAE,GAC7B,iBAAiB,GAAG,SAAS,CAG/B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { action, payload } from 'ts-action';
|
|
2
|
+
|
|
3
|
+
function createAsyncActionGroup(baseType, options) {
|
|
4
|
+
const types = {
|
|
5
|
+
action: baseType,
|
|
6
|
+
success: `${baseType}_SUCCESS`,
|
|
7
|
+
fail: `${baseType}_FAIL`
|
|
8
|
+
};
|
|
9
|
+
const actionKey = options.actionKey || baseType.toLowerCase().replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
10
|
+
const config = {
|
|
11
|
+
actionKey,
|
|
12
|
+
loadingTxt: options.loadingTxt,
|
|
13
|
+
successTxt: options.successTxt,
|
|
14
|
+
modal: options.modal,
|
|
15
|
+
smallBackground: options.smallBackground,
|
|
16
|
+
successDuration: options.successDuration
|
|
17
|
+
};
|
|
18
|
+
const actionCreator = action(types.action, payload());
|
|
19
|
+
const successCreator = action(types.success, payload());
|
|
20
|
+
const failCreator = action(types.fail, payload());
|
|
21
|
+
return {
|
|
22
|
+
action: actionCreator,
|
|
23
|
+
success: successCreator,
|
|
24
|
+
fail: failCreator,
|
|
25
|
+
config,
|
|
26
|
+
baseType,
|
|
27
|
+
types
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function createAsyncAction(baseType, options) {
|
|
31
|
+
return createAsyncActionGroup(baseType, options);
|
|
32
|
+
}
|
|
33
|
+
function isActionFromGroup(actionObj, group) {
|
|
34
|
+
return actionObj.type === group.types.action || actionObj.type === group.types.success || actionObj.type === group.types.fail;
|
|
35
|
+
}
|
|
36
|
+
function getConfigForAction(actionObj, groups) {
|
|
37
|
+
const group = groups.find((g) => isActionFromGroup(actionObj, g));
|
|
38
|
+
return group?.config;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { createAsyncAction, createAsyncActionGroup, getConfigForAction, isActionFromGroup };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { pdStore, initializeStore } from './mini-rx.store.js';
|
|
2
|
+
export { initIndexDBSuccess, loginSuccess, logoutSuccess, nologin, routeAction, updateInternetOffline, addLoadingState, changeSubTask, removeLoadingState, updateNewNotificationToken, updateNewNotificationTokenSuccess, updateNewNotificationTokenFail, } from './spa-app-actions.js';
|
|
3
|
+
export { getLoadingSelector, getOfflineSelector, getInitStatusSelector, selectAuthUser, } from './spa-app-selector.js';
|
|
4
|
+
export { setRouteElement } from './spa-app-effects.js';
|
|
5
|
+
export { spaAppReducer } from './spa-app-reducer.js';
|
|
6
|
+
export type { SpaAppState } from './spa-app-reducer.js';
|
|
7
|
+
export * as SpaActions from './spa-app-actions.js';
|
|
8
|
+
export * as SpaSelectors from './spa-app-selector.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mini-rx.store.d.ts","sourceRoot":"","sources":["../../src/store/mini-rx.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"mini-rx.store.d.ts","sourceRoot":"","sources":["../../src/store/mini-rx.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAmB5E,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,SA0BjD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,KAAc,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { configureStore, LoggerExtension, ReduxDevtoolsExtension, ImmutableStateExtension } from 'mini-rx-store';
|
|
2
2
|
import { spaAppReducer } from './spa-app-reducer.js';
|
|
3
|
-
import { appRouteEffect
|
|
3
|
+
import { appRouteEffect } from './spa-app-effects.js';
|
|
4
4
|
import { defaultLogger } from '../helper/logger.js';
|
|
5
5
|
|
|
6
6
|
let store;
|
|
7
7
|
const registerEffects = (effects) => {
|
|
8
8
|
if (store) {
|
|
9
9
|
store.effect(appRouteEffect);
|
|
10
|
-
store.effect(appToastEffect);
|
|
11
|
-
store.effect(registerNotificationTokenSuccessEffect);
|
|
12
10
|
effects.forEach((effect) => store.effect(effect));
|
|
13
11
|
} else {
|
|
14
12
|
defaultLogger.error("Store is not initialized. Cannot register effects.");
|