@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
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveControllerHost } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Options for ScrollController
|
|
4
|
+
*/
|
|
5
|
+
export interface ScrollControllerOptions {
|
|
6
|
+
/** Scroll threshold in pixels for triggering state changes */
|
|
7
|
+
threshold?: number;
|
|
8
|
+
/** Callback when scroll passes threshold (scrolled down) */
|
|
9
|
+
onScrolledDown?: () => void;
|
|
10
|
+
/** Callback when scroll returns above threshold (scrolled up) */
|
|
11
|
+
onScrolledUp?: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Reactive Controller for scroll threshold detection.
|
|
15
|
+
*
|
|
16
|
+
* Provides:
|
|
17
|
+
* - Threshold-based callbacks for scroll state changes
|
|
18
|
+
* - scrollToTop() utility for navigation
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* class MyComponent extends LitElement {
|
|
23
|
+
* private scrollController = new ScrollController(this, {
|
|
24
|
+
* threshold: 380, // Teaser height
|
|
25
|
+
* onScrolledDown: () => this.teaserCollapsed = true,
|
|
26
|
+
* onScrolledUp: () => this.teaserCollapsed = false,
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* render() {
|
|
30
|
+
* return html`
|
|
31
|
+
* <button @click=${() => this.scrollController.scrollToTop()}>
|
|
32
|
+
* Back to top
|
|
33
|
+
* </button>
|
|
34
|
+
* `;
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class ScrollController implements ReactiveController {
|
|
40
|
+
private _host;
|
|
41
|
+
private _options;
|
|
42
|
+
private _handler;
|
|
43
|
+
private _ticking;
|
|
44
|
+
private _isPastThreshold;
|
|
45
|
+
private _teaserCollapseEnabled;
|
|
46
|
+
constructor(host: ReactiveControllerHost, options?: ScrollControllerOptions);
|
|
47
|
+
/**
|
|
48
|
+
* Whether the scroll position is past the threshold
|
|
49
|
+
*/
|
|
50
|
+
get isPastThreshold(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Scroll to the top of the page smoothly
|
|
53
|
+
*/
|
|
54
|
+
scrollToTop(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Update the threshold value dynamically
|
|
57
|
+
*/
|
|
58
|
+
setThreshold(threshold: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Enable/disable teaser collapse behavior.
|
|
61
|
+
* When disabled, scroll threshold callbacks are not triggered.
|
|
62
|
+
* Use this on pages without teaser to prevent scroll events from
|
|
63
|
+
* incorrectly toggling teaserCollapsed state.
|
|
64
|
+
*/
|
|
65
|
+
setTeaserCollapseEnabled(enabled: boolean): void;
|
|
66
|
+
hostConnected(): void;
|
|
67
|
+
hostDisconnected(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Create the scroll handler with requestAnimationFrame throttling
|
|
70
|
+
*/
|
|
71
|
+
private _createScrollHandler;
|
|
72
|
+
/**
|
|
73
|
+
* Check if threshold is crossed and trigger callbacks
|
|
74
|
+
*/
|
|
75
|
+
private _checkThreshold;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=ScrollController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollController.d.ts","sourceRoot":"","sources":["../../../../src/components/pd-spa-helper/controllers/ScrollController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,sBAAsB,CAAQ;gBAGpC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,GAAE,uBAA4B;IAgBvC;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQhD,aAAa,IAAI,IAAI;IAQrB,gBAAgB,IAAI,IAAI;IAWxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,eAAe;CAoBxB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
class ScrollController {
|
|
2
|
+
constructor(host, options = {}) {
|
|
3
|
+
this._handler = null;
|
|
4
|
+
this._ticking = false;
|
|
5
|
+
this._isPastThreshold = false;
|
|
6
|
+
this._teaserCollapseEnabled = true;
|
|
7
|
+
this._host = host;
|
|
8
|
+
this._options = {
|
|
9
|
+
threshold: options.threshold ?? 100,
|
|
10
|
+
onScrolledDown: options.onScrolledDown ?? (() => {
|
|
11
|
+
}),
|
|
12
|
+
onScrolledUp: options.onScrolledUp ?? (() => {
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
host.addController(this);
|
|
16
|
+
}
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Public API
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/**
|
|
21
|
+
* Whether the scroll position is past the threshold
|
|
22
|
+
*/
|
|
23
|
+
get isPastThreshold() {
|
|
24
|
+
return this._isPastThreshold;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Scroll to the top of the page smoothly
|
|
28
|
+
*/
|
|
29
|
+
scrollToTop() {
|
|
30
|
+
window.scrollTo({
|
|
31
|
+
top: 0,
|
|
32
|
+
left: 0,
|
|
33
|
+
behavior: "smooth"
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Update the threshold value dynamically
|
|
38
|
+
*/
|
|
39
|
+
setThreshold(threshold) {
|
|
40
|
+
this._options.threshold = threshold;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Enable/disable teaser collapse behavior.
|
|
44
|
+
* When disabled, scroll threshold callbacks are not triggered.
|
|
45
|
+
* Use this on pages without teaser to prevent scroll events from
|
|
46
|
+
* incorrectly toggling teaserCollapsed state.
|
|
47
|
+
*/
|
|
48
|
+
setTeaserCollapseEnabled(enabled) {
|
|
49
|
+
this._teaserCollapseEnabled = enabled;
|
|
50
|
+
}
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Lifecycle
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
hostConnected() {
|
|
55
|
+
this._handler = this._createScrollHandler();
|
|
56
|
+
document.addEventListener("scroll", this._handler, { passive: true });
|
|
57
|
+
this._checkThreshold(window.scrollY);
|
|
58
|
+
}
|
|
59
|
+
hostDisconnected() {
|
|
60
|
+
if (this._handler) {
|
|
61
|
+
document.removeEventListener("scroll", this._handler);
|
|
62
|
+
this._handler = null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Private Methods
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
/**
|
|
69
|
+
* Create the scroll handler with requestAnimationFrame throttling
|
|
70
|
+
*/
|
|
71
|
+
_createScrollHandler() {
|
|
72
|
+
return () => {
|
|
73
|
+
if (!this._ticking) {
|
|
74
|
+
window.requestAnimationFrame(() => {
|
|
75
|
+
this._checkThreshold(window.scrollY);
|
|
76
|
+
this._ticking = false;
|
|
77
|
+
});
|
|
78
|
+
this._ticking = true;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if threshold is crossed and trigger callbacks
|
|
84
|
+
*/
|
|
85
|
+
_checkThreshold(scrollY) {
|
|
86
|
+
if (!this._teaserCollapseEnabled) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const wasPastThreshold = this._isPastThreshold;
|
|
90
|
+
this._isPastThreshold = scrollY > this._options.threshold;
|
|
91
|
+
if (this._isPastThreshold !== wasPastThreshold) {
|
|
92
|
+
if (this._isPastThreshold) {
|
|
93
|
+
this._options.onScrolledDown();
|
|
94
|
+
} else {
|
|
95
|
+
this._options.onScrolledUp();
|
|
96
|
+
}
|
|
97
|
+
this._host.requestUpdate();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export { ScrollController };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { AppConfiguration, NavigationConfig, NavigationPage } from '../../service-provider/service-provider-model.js';
|
|
2
|
+
import { RouteDefinition } from '../../router/rout-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Internal SPA configuration state
|
|
5
|
+
*/
|
|
6
|
+
export interface SpaConfigState {
|
|
7
|
+
/** Navigation configuration with pages and settings */
|
|
8
|
+
navigation: NavigationConfig;
|
|
9
|
+
/** Transformed route definitions for the router */
|
|
10
|
+
routes: RouteDefinition[];
|
|
11
|
+
/** Map for quick page lookup by route name */
|
|
12
|
+
routeMap: Map<string, NavigationPage>;
|
|
13
|
+
/** Whether the configuration has been initialized */
|
|
14
|
+
initialized: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Singleton configuration manager for SPA settings.
|
|
18
|
+
* Handles initialization, route transformation, and page lookup.
|
|
19
|
+
*/
|
|
20
|
+
declare class SpaConfigManager {
|
|
21
|
+
private _state;
|
|
22
|
+
/**
|
|
23
|
+
* Check if configuration has been initialized
|
|
24
|
+
*/
|
|
25
|
+
get isInitialized(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get the current configuration state
|
|
28
|
+
* @throws Error if not initialized
|
|
29
|
+
*/
|
|
30
|
+
get state(): SpaConfigState;
|
|
31
|
+
/**
|
|
32
|
+
* Initialize the SPA configuration.
|
|
33
|
+
* This sets up the store, routes, and navigation.
|
|
34
|
+
*
|
|
35
|
+
* IMPORTANT: ServiceProvider must be initialized via services.initialize()
|
|
36
|
+
* BEFORE calling this method.
|
|
37
|
+
*
|
|
38
|
+
* @param config - The application configuration
|
|
39
|
+
*/
|
|
40
|
+
initialize(config: AppConfiguration): void;
|
|
41
|
+
/**
|
|
42
|
+
* Get a navigation page by route name
|
|
43
|
+
*
|
|
44
|
+
* @param routeName - The name of the route
|
|
45
|
+
* @returns The navigation page configuration
|
|
46
|
+
* @throws Error if page not found
|
|
47
|
+
*/
|
|
48
|
+
getNavigationPage(routeName: string): NavigationPage;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a route exists
|
|
51
|
+
*
|
|
52
|
+
* @param routeName - The name of the route
|
|
53
|
+
*/
|
|
54
|
+
hasRoute(routeName: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Get the navigation configuration
|
|
57
|
+
*/
|
|
58
|
+
getNavigationConfig(): NavigationConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Check if login is included in the configuration
|
|
61
|
+
* Safe to call even if not initialized (returns false)
|
|
62
|
+
*/
|
|
63
|
+
get includesLogin(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Get the route to redirect to after logout.
|
|
66
|
+
* Defaults to "/" (home) if not configured.
|
|
67
|
+
*/
|
|
68
|
+
get logoutRedirect(): string;
|
|
69
|
+
/**
|
|
70
|
+
* Reset the configuration (useful for testing)
|
|
71
|
+
*/
|
|
72
|
+
reset(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Build the navigation config with system pages
|
|
75
|
+
*/
|
|
76
|
+
private _buildNavigationConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Transform navigation pages to route definitions
|
|
79
|
+
*/
|
|
80
|
+
private _transformRoutes;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Global SPA configuration manager instance
|
|
84
|
+
*/
|
|
85
|
+
export declare const spaConfig: SpaConfigManager;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=spa-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spa-config.d.ts","sourceRoot":"","sources":["../../../src/components/pd-spa-helper/spa-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAY7D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,UAAU,EAAE,gBAAgB,CAAC;IAC7B,mDAAmD;IACnD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,qDAAqD;IACrD,WAAW,EAAE,OAAO,CAAC;CACtB;AAwCD;;;GAGG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA+B;IAE7C;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,cAAc,CAO1B;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA6C1C;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAQpD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;;OAGG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CASzB;AAMD;;GAEG;AACH,eAAO,MAAM,SAAS,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { pdRouterService } from '../../router/PdRouterService.js';
|
|
2
|
+
import { services } from '../../service-provider/ServiceRegistry.js';
|
|
3
|
+
import { initializeStore } from '../../store/mini-rx.store.js';
|
|
4
|
+
import { createLogger } from '../../helper/logger.js';
|
|
5
|
+
|
|
6
|
+
const configLogger = createLogger("SpaConfig");
|
|
7
|
+
const SYSTEM_PAGES = {
|
|
8
|
+
login: {
|
|
9
|
+
name: "login",
|
|
10
|
+
menu: [],
|
|
11
|
+
pattern: ["/login"],
|
|
12
|
+
auth: false
|
|
13
|
+
},
|
|
14
|
+
unauthorized: {
|
|
15
|
+
name: "unauthorized",
|
|
16
|
+
menu: [],
|
|
17
|
+
pattern: ["/unauthorized"],
|
|
18
|
+
auth: false
|
|
19
|
+
},
|
|
20
|
+
notFound: {
|
|
21
|
+
name: "not-found",
|
|
22
|
+
menu: [],
|
|
23
|
+
pattern: ["/*wildcard"],
|
|
24
|
+
auth: false
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
class SpaConfigManager {
|
|
28
|
+
constructor() {
|
|
29
|
+
this._state = null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if configuration has been initialized
|
|
33
|
+
*/
|
|
34
|
+
get isInitialized() {
|
|
35
|
+
return this._state?.initialized ?? false;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the current configuration state
|
|
39
|
+
* @throws Error if not initialized
|
|
40
|
+
*/
|
|
41
|
+
get state() {
|
|
42
|
+
if (!this._state) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
"SPA Configuration not initialized. Call spaConfig.initialize() first."
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
return this._state;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Initialize the SPA configuration.
|
|
51
|
+
* This sets up the store, routes, and navigation.
|
|
52
|
+
*
|
|
53
|
+
* IMPORTANT: ServiceProvider must be initialized via services.initialize()
|
|
54
|
+
* BEFORE calling this method.
|
|
55
|
+
*
|
|
56
|
+
* @param config - The application configuration
|
|
57
|
+
*/
|
|
58
|
+
initialize(config) {
|
|
59
|
+
configLogger.debug("Initializing SPA configuration", config);
|
|
60
|
+
if (!services.isInitialized) {
|
|
61
|
+
throw new Error(
|
|
62
|
+
"ServiceRegistry not initialized. Call services.initialize(provider) before spaConfig.initialize()"
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
if (config.storeConfigParam) {
|
|
66
|
+
initializeStore(config.storeConfigParam);
|
|
67
|
+
}
|
|
68
|
+
if (config.functionsConfig?.region) {
|
|
69
|
+
services.functions.setRegion(config.functionsConfig.region);
|
|
70
|
+
}
|
|
71
|
+
const navigation = this._buildNavigationConfig(
|
|
72
|
+
config.navigationConfigParam
|
|
73
|
+
);
|
|
74
|
+
const routes = this._transformRoutes(navigation);
|
|
75
|
+
const routeMap = new Map(navigation.pages.map((p) => [p.name, p]));
|
|
76
|
+
pdRouterService.configureRoutes(routes);
|
|
77
|
+
this._state = {
|
|
78
|
+
navigation,
|
|
79
|
+
routes,
|
|
80
|
+
routeMap,
|
|
81
|
+
initialized: true
|
|
82
|
+
};
|
|
83
|
+
configLogger.debug("SPA configuration initialized successfully");
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get a navigation page by route name
|
|
87
|
+
*
|
|
88
|
+
* @param routeName - The name of the route
|
|
89
|
+
* @returns The navigation page configuration
|
|
90
|
+
* @throws Error if page not found
|
|
91
|
+
*/
|
|
92
|
+
getNavigationPage(routeName) {
|
|
93
|
+
const page = this.state.routeMap.get(routeName);
|
|
94
|
+
if (!page) {
|
|
95
|
+
throw new Error(`Navigation page not defined for route: ${routeName}`);
|
|
96
|
+
}
|
|
97
|
+
return page;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if a route exists
|
|
101
|
+
*
|
|
102
|
+
* @param routeName - The name of the route
|
|
103
|
+
*/
|
|
104
|
+
hasRoute(routeName) {
|
|
105
|
+
return this.state.routeMap.has(routeName);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get the navigation configuration
|
|
109
|
+
*/
|
|
110
|
+
getNavigationConfig() {
|
|
111
|
+
return this.state.navigation;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check if login is included in the configuration
|
|
115
|
+
* Safe to call even if not initialized (returns false)
|
|
116
|
+
*/
|
|
117
|
+
get includesLogin() {
|
|
118
|
+
return this._state?.navigation.includeLogin ?? false;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get the route to redirect to after logout.
|
|
122
|
+
* Defaults to "/" (home) if not configured.
|
|
123
|
+
*/
|
|
124
|
+
get logoutRedirect() {
|
|
125
|
+
return this.state.navigation.logoutRedirect ?? "/";
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Reset the configuration (useful for testing)
|
|
129
|
+
*/
|
|
130
|
+
reset() {
|
|
131
|
+
this._state = null;
|
|
132
|
+
configLogger.debug("SPA configuration reset");
|
|
133
|
+
}
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// Private Methods
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
/**
|
|
138
|
+
* Build the navigation config with system pages
|
|
139
|
+
*/
|
|
140
|
+
_buildNavigationConfig(baseConfig) {
|
|
141
|
+
const pages = [...baseConfig.pages];
|
|
142
|
+
if (baseConfig.includeLogin) {
|
|
143
|
+
pages.push(SYSTEM_PAGES.login);
|
|
144
|
+
}
|
|
145
|
+
pages.push(SYSTEM_PAGES.unauthorized);
|
|
146
|
+
pages.push(SYSTEM_PAGES.notFound);
|
|
147
|
+
return {
|
|
148
|
+
...baseConfig,
|
|
149
|
+
pages
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Transform navigation pages to route definitions
|
|
154
|
+
*/
|
|
155
|
+
_transformRoutes(navigation) {
|
|
156
|
+
return navigation.pages.map((page) => ({
|
|
157
|
+
name: page.name,
|
|
158
|
+
pattern: page.pattern,
|
|
159
|
+
auth: page.auth,
|
|
160
|
+
authFallback: page.authFallback,
|
|
161
|
+
roles: page.roles
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const spaConfig = new SpaConfigManager();
|
|
166
|
+
|
|
167
|
+
export { spaConfig };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* SPA event name constants.
|
|
4
|
+
* All events use the `pd-spa:` prefix for namespacing.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SPA_EVENTS: {
|
|
7
|
+
/** Fired when the SPA has been initialized */
|
|
8
|
+
readonly INIT: "pd-spa:init";
|
|
9
|
+
/** Fired to show a toast notification */
|
|
10
|
+
readonly TOAST: "pd-spa:toast";
|
|
11
|
+
/** Fired for navigation events */
|
|
12
|
+
readonly ROUTE: "pd-spa:route";
|
|
13
|
+
/** Fired when login was successful */
|
|
14
|
+
readonly LOGIN_SUCCESS: "pd-spa:login-success";
|
|
15
|
+
/** Fired when locale changes */
|
|
16
|
+
readonly LOCALE_CHANGE: "pd-spa:locale-change";
|
|
17
|
+
/** Fired to initialize menu sections */
|
|
18
|
+
readonly INIT_MENU_SECTIONS: "pd-spa:init-menu-sections";
|
|
19
|
+
/** Fired to request app configuration */
|
|
20
|
+
readonly APP_CONFIG: "pd-spa:app-config";
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Type for SPA event names
|
|
24
|
+
*/
|
|
25
|
+
export type SpaEventName = (typeof SPA_EVENTS)[keyof typeof SPA_EVENTS];
|
|
26
|
+
/**
|
|
27
|
+
* Toast notification types
|
|
28
|
+
*/
|
|
29
|
+
export type ToastType = "success" | "error" | "info";
|
|
30
|
+
/**
|
|
31
|
+
* Detail for toast events
|
|
32
|
+
*/
|
|
33
|
+
export interface ToastEventDetail {
|
|
34
|
+
/** The message to display (can be string or TemplateResult) */
|
|
35
|
+
message: string | TemplateResult;
|
|
36
|
+
/** The type of toast */
|
|
37
|
+
type: ToastType;
|
|
38
|
+
/** Duration in ms before auto-hide (-1 for no auto-hide) */
|
|
39
|
+
duration?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Detail for route events
|
|
43
|
+
*/
|
|
44
|
+
export interface RouteEventDetail {
|
|
45
|
+
/** Target route path */
|
|
46
|
+
route?: string;
|
|
47
|
+
/** Element to scroll to */
|
|
48
|
+
element?: HTMLElement;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Detail for locale change events
|
|
52
|
+
*/
|
|
53
|
+
export interface LocaleChangeEventDetail {
|
|
54
|
+
/** The new locale code */
|
|
55
|
+
locale: string;
|
|
56
|
+
/** The previous locale code */
|
|
57
|
+
previousLocale?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Detail for menu section initialization
|
|
61
|
+
*/
|
|
62
|
+
export interface MenuSectionsEventDetail {
|
|
63
|
+
/** Map of section IDs to element references (keys match MenuElement.sec) */
|
|
64
|
+
menuRefs: Record<string, HTMLElement | null | undefined>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Detail for login success events
|
|
68
|
+
*/
|
|
69
|
+
export interface LoginSuccessEventDetail {
|
|
70
|
+
/** The authenticated user */
|
|
71
|
+
user: {
|
|
72
|
+
uid: string;
|
|
73
|
+
email: string | null;
|
|
74
|
+
emailVerified: boolean;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Detail for app config request events
|
|
79
|
+
*/
|
|
80
|
+
export interface AppConfigEventDetail {
|
|
81
|
+
/** Will be populated with the app configuration */
|
|
82
|
+
appConf?: unknown;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Map of event names to their detail types.
|
|
86
|
+
* Use with CustomEvent<SpaEventMap[typeof SPA_EVENTS.TOAST]>
|
|
87
|
+
*/
|
|
88
|
+
export interface SpaEventMap {
|
|
89
|
+
[SPA_EVENTS.INIT]: void;
|
|
90
|
+
[SPA_EVENTS.TOAST]: ToastEventDetail;
|
|
91
|
+
[SPA_EVENTS.ROUTE]: RouteEventDetail;
|
|
92
|
+
[SPA_EVENTS.LOGIN_SUCCESS]: LoginSuccessEventDetail;
|
|
93
|
+
[SPA_EVENTS.LOCALE_CHANGE]: LocaleChangeEventDetail;
|
|
94
|
+
[SPA_EVENTS.INIT_MENU_SECTIONS]: MenuSectionsEventDetail;
|
|
95
|
+
[SPA_EVENTS.APP_CONFIG]: AppConfigEventDetail;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Dispatch a toast event
|
|
99
|
+
*/
|
|
100
|
+
export declare function dispatchToast(target: EventTarget, message: string | TemplateResult, type?: ToastType, duration?: number): void;
|
|
101
|
+
/**
|
|
102
|
+
* Dispatch a route event
|
|
103
|
+
*/
|
|
104
|
+
export declare function dispatchRoute(target: EventTarget, route?: string, element?: HTMLElement): void;
|
|
105
|
+
/**
|
|
106
|
+
* Dispatch an init event
|
|
107
|
+
*/
|
|
108
|
+
export declare function dispatchInit(target?: EventTarget): void;
|
|
109
|
+
/**
|
|
110
|
+
* Dispatch a locale change event
|
|
111
|
+
*/
|
|
112
|
+
export declare function dispatchLocaleChange(target: EventTarget, locale: string, previousLocale?: string): void;
|
|
113
|
+
/**
|
|
114
|
+
* Type guard to check if an event is a SPA toast event
|
|
115
|
+
*/
|
|
116
|
+
export declare function isToastEvent(event: Event): event is CustomEvent<ToastEventDetail>;
|
|
117
|
+
/**
|
|
118
|
+
* Type guard to check if an event is a SPA route event
|
|
119
|
+
*/
|
|
120
|
+
export declare function isRouteEvent(event: Event): event is CustomEvent<RouteEventDetail>;
|
|
121
|
+
//# sourceMappingURL=spa-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spa-events.d.ts","sourceRoot":"","sources":["../../../src/components/pd-spa-helper/spa-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const SPA_EVENTS = {
|
|
2
|
+
/** Fired when the SPA has been initialized */
|
|
3
|
+
INIT: "pd-spa:init",
|
|
4
|
+
/** Fired to request app configuration */
|
|
5
|
+
APP_CONFIG: "pd-spa:app-config"
|
|
6
|
+
};
|
|
7
|
+
function createSpaEvent(type, detail, options) {
|
|
8
|
+
return new CustomEvent(type, {
|
|
9
|
+
detail,
|
|
10
|
+
bubbles: true,
|
|
11
|
+
composed: true
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function dispatchInit(target = document) {
|
|
15
|
+
target.dispatchEvent(createSpaEvent(SPA_EVENTS.INIT, void 0));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { SPA_EVENTS, dispatchInit };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,EACT,GAAG,EACH,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -6,16 +6,10 @@ export declare const addAll: <T>(table: string, elArray: T[], ignoreDuplicates:
|
|
|
6
6
|
export declare const deleteAllEl: (table: string, elIdArray: string[]) => Promise<unknown>;
|
|
7
7
|
export declare const get: <T>(table: string, id: string) => Promise<T>;
|
|
8
8
|
export declare const getAll: <T>(table: string, index?: string) => Promise<T[]>;
|
|
9
|
-
export declare const getAllIds: (table: string) => Promise<unknown>;
|
|
9
|
+
export declare const getAllIds: (table: string) => Promise<unknown[]>;
|
|
10
10
|
export declare const deleteAll: (table: string) => Promise<unknown>;
|
|
11
11
|
export declare const removeDatabase: (dbName: string) => Promise<unknown>;
|
|
12
|
-
|
|
13
|
-
* Init indexDB for application.
|
|
14
|
-
*
|
|
15
|
-
* @param config - config for index db
|
|
16
|
-
* @param successCallback - callback function after db is successfully initialized
|
|
17
|
-
*/
|
|
18
|
-
export declare const initDB: (config: {
|
|
12
|
+
export interface IndexDBConfig {
|
|
19
13
|
dbName: string;
|
|
20
14
|
dbVersion: number;
|
|
21
15
|
collections: {
|
|
@@ -24,5 +18,11 @@ export declare const initDB: (config: {
|
|
|
24
18
|
keyPath?: string;
|
|
25
19
|
};
|
|
26
20
|
}[];
|
|
27
|
-
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Init indexDB for application.
|
|
24
|
+
*
|
|
25
|
+
* @param config - config for index db
|
|
26
|
+
*/
|
|
27
|
+
export declare const initDB: (config: IndexDBConfig) => void;
|
|
28
28
|
//# sourceMappingURL=indexDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexDB.d.ts","sourceRoot":"","sources":["../../src/db/indexDB.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAKhD,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,OAAO,qBAelE,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,CAAC,qBAY1C,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,qBAUpD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,CAAC,EACtB,OAAO,MAAM,EACb,SAAS,CAAC,EAAE,EACZ,kBAAkB,OAAO,qBAWvB,CAAC;AAaL,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,WAAW,MAAM,EAAE,qBAU1D,CAAC;AAEL,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,CAAC,CAKxD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,CAAC,EAAE,CAqBjE,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAkBvD,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,qBASnC,CAAC;AAEL,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,qBAMzC,CAAC;AAEL,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,EAAE,CAAC;CACL;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,aAAa,SA2C3C,CAAC"}
|