@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.
Files changed (269) hide show
  1. package/dist/auth/AuthController.d.ts +37 -0
  2. package/dist/auth/AuthController.d.ts.map +1 -0
  3. package/dist/auth/AuthController.js +65 -0
  4. package/dist/auth/auth-directives.d.ts +59 -0
  5. package/dist/auth/auth-directives.d.ts.map +1 -0
  6. package/dist/auth/auth-directives.js +81 -0
  7. package/dist/auth/auth-utils.d.ts +45 -0
  8. package/dist/auth/auth-utils.d.ts.map +1 -0
  9. package/dist/auth/auth-utils.js +42 -0
  10. package/dist/auth/index.d.ts +7 -0
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/components/default-login/DefaultLogin.d.ts +15 -0
  13. package/dist/components/default-login/DefaultLogin.d.ts.map +1 -0
  14. package/dist/components/default-login/DefaultLogin.js +120 -0
  15. package/dist/components/default-not-found/DefaultNotFound.d.ts +6 -0
  16. package/dist/components/default-not-found/DefaultNotFound.d.ts.map +1 -0
  17. package/dist/{defaultpage/default-not-found.js → components/default-not-found/DefaultNotFound.js} +10 -3
  18. package/dist/components/pd-section-page/PdSectionPage.d.ts +55 -0
  19. package/dist/components/pd-section-page/PdSectionPage.d.ts.map +1 -0
  20. package/dist/components/pd-section-page/PdSectionPage.js +40 -0
  21. package/dist/components/pd-spa-helper/PdSpaHelper.d.ts +160 -0
  22. package/dist/components/pd-spa-helper/PdSpaHelper.d.ts.map +1 -0
  23. package/dist/components/pd-spa-helper/PdSpaHelper.js +651 -0
  24. package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts +77 -0
  25. package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts.map +1 -0
  26. package/dist/components/pd-spa-helper/controllers/ScrollController.js +102 -0
  27. package/dist/components/pd-spa-helper/spa-config.d.ts +87 -0
  28. package/dist/components/pd-spa-helper/spa-config.d.ts.map +1 -0
  29. package/dist/components/pd-spa-helper/spa-config.js +167 -0
  30. package/dist/components/pd-spa-helper/spa-events.d.ts +121 -0
  31. package/dist/components/pd-spa-helper/spa-events.d.ts.map +1 -0
  32. package/dist/components/pd-spa-helper/spa-events.js +18 -0
  33. package/dist/db/index.d.ts +3 -0
  34. package/dist/db/index.d.ts.map +1 -0
  35. package/dist/{store → db}/indexDB.d.ts +9 -9
  36. package/dist/db/indexDB.d.ts.map +1 -0
  37. package/dist/{store → db}/indexDB.js +14 -12
  38. package/dist/generated/locales/be.d.ts +1 -15
  39. package/dist/generated/locales/be.d.ts.map +1 -1
  40. package/dist/generated/locales/be.js +1 -15
  41. package/dist/generated/locales/de.d.ts +1 -15
  42. package/dist/generated/locales/de.d.ts.map +1 -1
  43. package/dist/generated/locales/de.js +1 -15
  44. package/dist/generated/locales/en.d.ts +1 -15
  45. package/dist/generated/locales/en.d.ts.map +1 -1
  46. package/dist/generated/locales/en.js +1 -15
  47. package/dist/helper/logger.d.ts +11 -12
  48. package/dist/helper/logger.d.ts.map +1 -1
  49. package/dist/helper/logger.js +10 -49
  50. package/dist/helper/refresh-id-token.d.ts.map +1 -1
  51. package/dist/helper/refresh-id-token.js +6 -4
  52. package/dist/index.d.ts +31 -29
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +27 -50
  55. package/dist/model/index.d.ts +4 -0
  56. package/dist/model/index.d.ts.map +1 -0
  57. package/dist/model/spa-model.d.ts +14 -15
  58. package/dist/model/spa-model.d.ts.map +1 -1
  59. package/dist/router/PdRouterService.d.ts +4 -1
  60. package/dist/router/PdRouterService.d.ts.map +1 -1
  61. package/dist/router/PdRouterService.js +40 -16
  62. package/dist/router/index.d.ts +3 -0
  63. package/dist/router/index.d.ts.map +1 -0
  64. package/dist/screen-size/ScreenSizeController.d.ts +34 -0
  65. package/dist/screen-size/ScreenSizeController.d.ts.map +1 -0
  66. package/dist/screen-size/ScreenSizeController.js +58 -0
  67. package/dist/screen-size/ScreenSizeService.d.ts +49 -0
  68. package/dist/screen-size/ScreenSizeService.d.ts.map +1 -0
  69. package/dist/screen-size/ScreenSizeService.js +107 -0
  70. package/dist/screen-size/index.d.ts +13 -0
  71. package/dist/screen-size/index.d.ts.map +1 -0
  72. package/dist/screen-size/responsive-directives.d.ts +59 -0
  73. package/dist/screen-size/responsive-directives.d.ts.map +1 -0
  74. package/dist/screen-size/responsive-directives.js +71 -0
  75. package/dist/screen-size/types.d.ts +44 -0
  76. package/dist/screen-size/types.d.ts.map +1 -0
  77. package/dist/service-provider/ServiceRegistry.d.ts +67 -0
  78. package/dist/service-provider/ServiceRegistry.d.ts.map +1 -0
  79. package/dist/service-provider/ServiceRegistry.js +76 -0
  80. package/dist/service-provider/function-utils.d.ts +55 -0
  81. package/dist/service-provider/function-utils.d.ts.map +1 -0
  82. package/dist/service-provider/function-utils.js +30 -0
  83. package/dist/service-provider/index.d.ts +10 -0
  84. package/dist/service-provider/index.d.ts.map +1 -0
  85. package/dist/service-provider/interfaces/IAuthProvider.d.ts +68 -0
  86. package/dist/service-provider/interfaces/IAuthProvider.d.ts.map +1 -0
  87. package/dist/service-provider/interfaces/IDatabaseProvider.d.ts +75 -0
  88. package/dist/service-provider/interfaces/IDatabaseProvider.d.ts.map +1 -0
  89. package/dist/service-provider/interfaces/IFunctionProvider.d.ts +49 -0
  90. package/dist/service-provider/interfaces/IFunctionProvider.d.ts.map +1 -0
  91. package/dist/service-provider/interfaces/IStorageProvider.d.ts +118 -0
  92. package/dist/service-provider/interfaces/IStorageProvider.d.ts.map +1 -0
  93. package/dist/service-provider/interfaces/ServiceProvider.d.ts +24 -0
  94. package/dist/service-provider/interfaces/ServiceProvider.d.ts.map +1 -0
  95. package/dist/service-provider/interfaces/common.d.ts +5 -0
  96. package/dist/service-provider/interfaces/common.d.ts.map +1 -0
  97. package/dist/service-provider/service-provider-model.d.ts +26 -7
  98. package/dist/service-provider/service-provider-model.d.ts.map +1 -1
  99. package/dist/services/fire-once-service.d.ts +35 -0
  100. package/dist/services/fire-once-service.d.ts.map +1 -0
  101. package/dist/services/fire-once-service.js +61 -0
  102. package/dist/store/async-action-effects.d.ts +179 -0
  103. package/dist/store/async-action-effects.d.ts.map +1 -0
  104. package/dist/store/async-action-effects.js +97 -0
  105. package/dist/store/async-action-utils.d.ts +151 -0
  106. package/dist/store/async-action-utils.d.ts.map +1 -0
  107. package/dist/store/async-action-utils.js +41 -0
  108. package/dist/store/index.d.ts +9 -0
  109. package/dist/store/index.d.ts.map +1 -0
  110. package/dist/store/mini-rx.store.d.ts.map +1 -1
  111. package/dist/store/mini-rx.store.js +1 -3
  112. package/dist/store/spa-app-actions.d.ts +5 -22
  113. package/dist/store/spa-app-actions.d.ts.map +1 -1
  114. package/dist/store/spa-app-actions.js +4 -8
  115. package/dist/store/spa-app-effects.d.ts +0 -17
  116. package/dist/store/spa-app-effects.d.ts.map +1 -1
  117. package/dist/store/spa-app-effects.js +2 -40
  118. package/dist/store/spa-app-reducer.d.ts +5 -10
  119. package/dist/store/spa-app-reducer.d.ts.map +1 -1
  120. package/dist/store/spa-app-reducer.js +17 -8
  121. package/dist/store/spa-app-selector.d.ts +2 -2
  122. package/dist/store/spa-app-selector.d.ts.map +1 -1
  123. package/dist/store/spa-app-selector.js +1 -1
  124. package/dist/stories/introduction.stories.d.ts +11 -0
  125. package/dist/stories/introduction.stories.d.ts.map +1 -0
  126. package/package.json +13 -9
  127. package/dist/PdSpaHelper.d.ts +0 -83
  128. package/dist/PdSpaHelper.d.ts.map +0 -1
  129. package/dist/PdSpaHelper.js +0 -492
  130. package/dist/defaultpage/default-confirm-popup.d.ts +0 -19
  131. package/dist/defaultpage/default-confirm-popup.d.ts.map +0 -1
  132. package/dist/defaultpage/default-confirm-popup.js +0 -70
  133. package/dist/defaultpage/default-dialog-popup.d.ts +0 -19
  134. package/dist/defaultpage/default-dialog-popup.d.ts.map +0 -1
  135. package/dist/defaultpage/default-dialog-popup.js +0 -103
  136. package/dist/defaultpage/default-login.d.ts +0 -6
  137. package/dist/defaultpage/default-login.d.ts.map +0 -1
  138. package/dist/defaultpage/default-login.js +0 -33
  139. package/dist/defaultpage/default-not-found.d.ts +0 -6
  140. package/dist/defaultpage/default-not-found.d.ts.map +0 -1
  141. package/dist/defaultpage/default-popup.d.ts +0 -7
  142. package/dist/defaultpage/default-popup.d.ts.map +0 -1
  143. package/dist/defaultpage/default-popup.js +0 -24
  144. package/dist/defaultpage/default-step-address.d.ts +0 -14
  145. package/dist/defaultpage/default-step-address.d.ts.map +0 -1
  146. package/dist/defaultpage/default-step-address.js +0 -77
  147. package/dist/defaultpage/default-step-summary.d.ts +0 -28
  148. package/dist/defaultpage/default-step-summary.d.ts.map +0 -1
  149. package/dist/defaultpage/default-step-summary.js +0 -67
  150. package/dist/defaultpage/default-view-page.d.ts +0 -10
  151. package/dist/defaultpage/default-view-page.d.ts.map +0 -1
  152. package/dist/defaultpage/default-view-page.js +0 -70
  153. package/dist/defaultpage/default-wizard.d.ts +0 -37
  154. package/dist/defaultpage/default-wizard.d.ts.map +0 -1
  155. package/dist/defaultpage/default-wizard.js +0 -255
  156. package/dist/defaultpage/pd-default-wizard-step.d.ts +0 -60
  157. package/dist/defaultpage/pd-default-wizard-step.d.ts.map +0 -1
  158. package/dist/defaultpage/pd-default-wizard-step.js +0 -144
  159. package/dist/generated/locale-wrapper/be-wrapper.d.ts +0 -63
  160. package/dist/generated/locale-wrapper/be-wrapper.d.ts.map +0 -1
  161. package/dist/generated/locale-wrapper/de-wrapper.d.ts +0 -63
  162. package/dist/generated/locale-wrapper/de-wrapper.d.ts.map +0 -1
  163. package/dist/generated/locale-wrapper/en-wrapper.d.ts +0 -63
  164. package/dist/generated/locale-wrapper/en-wrapper.d.ts.map +0 -1
  165. package/dist/helper/blob-helper.d.ts +0 -3
  166. package/dist/helper/blob-helper.d.ts.map +0 -1
  167. package/dist/helper/blob-helper.js +0 -35
  168. package/dist/helper/date-helper.d.ts +0 -27
  169. package/dist/helper/date-helper.d.ts.map +0 -1
  170. package/dist/helper/date-helper.js +0 -129
  171. package/dist/helper/locale-format.d.ts +0 -4
  172. package/dist/helper/locale-format.d.ts.map +0 -1
  173. package/dist/helper/locale-format.js +0 -16
  174. package/dist/helper/number-helper.d.ts +0 -2
  175. package/dist/helper/number-helper.d.ts.map +0 -1
  176. package/dist/helper/number-helper.js +0 -13
  177. package/dist/helper/price-helper.d.ts +0 -5
  178. package/dist/helper/price-helper.d.ts.map +0 -1
  179. package/dist/helper/price-helper.js +0 -22
  180. package/dist/helper/text-helper.d.ts +0 -3
  181. package/dist/helper/text-helper.d.ts.map +0 -1
  182. package/dist/helper/text-helper.js +0 -4
  183. package/dist/popup/wizard-close-popup.d.ts +0 -11
  184. package/dist/popup/wizard-close-popup.d.ts.map +0 -1
  185. package/dist/popup/wizard-close-popup.js +0 -63
  186. package/dist/popup/wizard-reload-popup.d.ts +0 -14
  187. package/dist/popup/wizard-reload-popup.d.ts.map +0 -1
  188. package/dist/popup/wizard-reload-popup.js +0 -76
  189. package/dist/service-provider/firebase/auth.d.ts +0 -19
  190. package/dist/service-provider/firebase/auth.d.ts.map +0 -1
  191. package/dist/service-provider/firebase/auth.js +0 -62
  192. package/dist/service-provider/firebase/firestorage-client.d.ts +0 -22
  193. package/dist/service-provider/firebase/firestorage-client.d.ts.map +0 -1
  194. package/dist/service-provider/firebase/firestorage-client.js +0 -226
  195. package/dist/service-provider/firebase/firestore-client.d.ts +0 -12
  196. package/dist/service-provider/firebase/firestore-client.d.ts.map +0 -1
  197. package/dist/service-provider/firebase/firestore-client.js +0 -25
  198. package/dist/service-provider/firebase/functions-client.d.ts +0 -10
  199. package/dist/service-provider/firebase/functions-client.d.ts.map +0 -1
  200. package/dist/service-provider/firebase/functions-client.js +0 -63
  201. package/dist/service-provider/firebase/messagingFirebaseClient.d.ts +0 -9
  202. package/dist/service-provider/firebase/messagingFirebaseClient.d.ts.map +0 -1
  203. package/dist/service-provider/firebase/messagingFirebaseClient.js +0 -69
  204. package/dist/service-provider/mock/auth.d.ts +0 -6
  205. package/dist/service-provider/mock/auth.d.ts.map +0 -1
  206. package/dist/service-provider/mock/auth.js +0 -60
  207. package/dist/service-provider/mock/function-client.d.ts +0 -7
  208. package/dist/service-provider/mock/function-client.d.ts.map +0 -1
  209. package/dist/service-provider/mock/function-client.js +0 -30
  210. package/dist/service-provider/mock/storage-client.d.ts +0 -11
  211. package/dist/service-provider/mock/storage-client.d.ts.map +0 -1
  212. package/dist/service-provider/mock/storage-client.js +0 -106
  213. package/dist/service-provider/service-provider-impl.d.ts +0 -27
  214. package/dist/service-provider/service-provider-impl.d.ts.map +0 -1
  215. package/dist/service-provider/service-provider-impl.js +0 -222
  216. package/dist/store/indexDB.d.ts.map +0 -1
  217. package/dist/stories/address-edit.stories.d.ts +0 -27
  218. package/dist/stories/address-edit.stories.d.ts.map +0 -1
  219. package/dist/stories/address-new.stories.d.ts +0 -33
  220. package/dist/stories/address-new.stories.d.ts.map +0 -1
  221. package/dist/stories/default-confirm-popup.stories.d.ts +0 -24
  222. package/dist/stories/default-confirm-popup.stories.d.ts.map +0 -1
  223. package/dist/stories/default-dialog-popup.stories.d.ts +0 -23
  224. package/dist/stories/default-dialog-popup.stories.d.ts.map +0 -1
  225. package/dist/stories/default-login.stories.d.ts +0 -10
  226. package/dist/stories/default-login.stories.d.ts.map +0 -1
  227. package/dist/stories/default-popup.stories.d.ts +0 -9
  228. package/dist/stories/default-popup.stories.d.ts.map +0 -1
  229. package/dist/stories/pd-loading-state.stories.d.ts +0 -30
  230. package/dist/stories/pd-loading-state.stories.d.ts.map +0 -1
  231. package/dist/stories/pd-toast.stories.d.ts +0 -27
  232. package/dist/stories/pd-toast.stories.d.ts.map +0 -1
  233. package/dist/stories/routing.stories.d.ts +0 -24
  234. package/dist/stories/routing.stories.d.ts.map +0 -1
  235. package/dist/stories/test-impls/address-test.d.ts +0 -6
  236. package/dist/stories/test-impls/address-test.d.ts.map +0 -1
  237. package/dist/stories/test-impls/test-mock-app.d.ts +0 -15
  238. package/dist/stories/test-impls/test-mock-app.d.ts.map +0 -1
  239. package/dist/stories/test-impls/test-pages/test-home-page.d.ts +0 -7
  240. package/dist/stories/test-impls/test-pages/test-home-page.d.ts.map +0 -1
  241. package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts +0 -5
  242. package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts.map +0 -1
  243. package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts +0 -17
  244. package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts.map +0 -1
  245. package/dist/stories/test-impls/test-pages/test-wizard.d.ts +0 -16
  246. package/dist/stories/test-impls/test-pages/test-wizard.d.ts.map +0 -1
  247. package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts +0 -8
  248. package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts.map +0 -1
  249. package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts +0 -8
  250. package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts.map +0 -1
  251. package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts +0 -8
  252. package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts.map +0 -1
  253. package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts +0 -13
  254. package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts.map +0 -1
  255. package/dist/stories/test-impls/test-popups/default-popup-test.d.ts +0 -5
  256. package/dist/stories/test-impls/test-popups/default-popup-test.d.ts.map +0 -1
  257. package/dist/stories/test-wizard-step.stories.d.ts +0 -11
  258. package/dist/stories/test-wizard-step.stories.d.ts.map +0 -1
  259. package/dist/stories/test-wizard.stories.d.ts +0 -9
  260. package/dist/stories/test-wizard.stories.d.ts.map +0 -1
  261. package/dist/tmpown/pd-loading-state.d.ts +0 -9
  262. package/dist/tmpown/pd-loading-state.d.ts.map +0 -1
  263. package/dist/tmpown/pd-loading-state.js +0 -196
  264. package/dist/tmpown/pd-login.d.ts +0 -13
  265. package/dist/tmpown/pd-login.d.ts.map +0 -1
  266. package/dist/tmpown/pd-login.js +0 -165
  267. package/dist/tmpown/pd-toast.d.ts +0 -13
  268. package/dist/tmpown/pd-toast.d.ts.map +0 -1
  269. 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,3 @@
1
+ export { initDB, add, addAll, update, updateAll, get, getAll, getAllIds, deleteAll, deleteAllEl, removeDatabase, USER_COLLECTION, } from './indexDB.js';
2
+ export type { IndexDBConfig } from './indexDB.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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
- }) => void;
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"}