@progressive-development/pd-spa-helper 0.9.1 → 0.9.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"PdSectionPage.d.ts","sourceRoot":"","sources":["../../../src/components/pd-section-page/PdSectionPage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,UAAU,EAAO,cAAc,EAAE,MAAM,KAAK,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzE;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,EAAE,WAAW,CAAC;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;GAIG;AACH,8BAAsB,aAAc,SAAQ,UAAU;IACpD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAO3B;IAEF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,aAAa;IAEpD;;;OAGG;IACM,YAAY,IAAI,IAAI;CAS9B"}
1
+ {"version":3,"file":"PdSectionPage.d.ts","sourceRoot":"","sources":["../../../src/components/pd-section-page/PdSectionPage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,UAAU,EAAO,cAAc,EAAE,MAAM,KAAK,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzE;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,EAAE,WAAW,CAAC;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;GAIG;AACH,8BAAsB,aAAc,SAAQ,UAAU;IACpD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAI3B;IAEF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,aAAa;IAEpD;;;OAGG;IACM,YAAY,IAAI,IAAI;CAS9B"}
@@ -15,10 +15,7 @@ class PdSectionPage extends LitElement {
15
15
  */
16
16
  this.styles = css`
17
17
  section {
18
- scroll-margin-top: calc(
19
- var(--pd-menu-height, 60px) + var(--pd-top-menu-height, 30px) +
20
- var(--pd-teaser-height, 0px) + 20px
21
- );
18
+ scroll-margin-top: calc(var(--pd-site-header-height, 90px) + 20px);
22
19
  }
23
20
  `;
24
21
  }
@@ -2,6 +2,7 @@ import { LitElement, CSSResultGroup, TemplateResult, PropertyValues } from 'lit'
2
2
  import { ButtonData } from '@progressive-development/pd-forms';
3
3
  import { AppConfiguration, Footer, NavigationPage } from '../../service-provider/service-provider-model.js';
4
4
  import { LoadingState } from '@progressive-development/pd-content';
5
+ import { PdActionEventDetail } from './spa-events.js';
5
6
  import { ScrollController } from './controllers/ScrollController.js';
6
7
  /**
7
8
  * Initialize the SPA framework.
@@ -105,9 +106,9 @@ export declare abstract class PdSpaHelper extends LitElement {
105
106
  * Handle login popup close (user aborted login via Escape or backdrop click)
106
107
  */
107
108
  private _handleLoginPopupClose;
108
- protected _renderMenu(pageConfig: NavigationPage, showTeaser: boolean): TemplateResult | string;
109
- protected _renderTopMenu(pageConfig: NavigationPage, showTeaser: boolean): TemplateResult | string;
110
- protected _renderTeaser(): TemplateResult | string;
109
+ protected _renderSiteHeader(pageConf: NavigationPage, showTeaser: boolean): TemplateResult;
110
+ private _getVisibleMenuItems;
111
+ private _getVisibleTopMenuItems;
111
112
  protected _renderFooter(): TemplateResult;
112
113
  /**
113
114
  * Render the content for the given route
@@ -131,12 +132,46 @@ export declare abstract class PdSpaHelper extends LitElement {
131
132
  */
132
133
  protected abstract _getAppConfiguration(): unknown;
133
134
  /**
134
- * Get teaser content panels
135
- * Override to provide teaser content, or return empty array for no teaser
135
+ * Whether the app has teaser content. Default: false.
136
+ * Override in subclass to enable teaser rendering.
137
+ * Used together with pageConf.withTeaser to determine if the teaser is shown.
136
138
  */
137
- protected _getTeaserContent(): TemplateResult[];
139
+ protected _hasTeaserContent(): boolean;
140
+ /**
141
+ * Render teaser slot content for pd-site-header.
142
+ * Override in subclass (or intermediate layer like PdVisitcardApp)
143
+ * to provide teaser content. The returned template must include
144
+ * `slot="teaser-content"` on its root element.
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * protected override _renderTeaserSlotContent(): TemplateResult {
149
+ * return html`<img slot="teaser-content" src="hero.jpg" />`;
150
+ * }
151
+ * ```
152
+ */
153
+ protected _renderTeaserSlotContent(): TemplateResult;
138
154
  private _handleRouteEvent;
139
155
  private _handleFooterLink;
156
+ /**
157
+ * Handle pd-action events dispatched by scoped interceptors on data-pd-action elements.
158
+ * Handles generic actions (route, section). Override in subclass for app-specific
159
+ * actions (e.g., "wizard").
160
+ *
161
+ * Unknown actions are silently ignored.
162
+ * "url" actions are handled natively by the browser via href — no handler needed.
163
+ */
164
+ protected _handlePdAction(e: CustomEvent<PdActionEventDetail>): void;
165
+ /**
166
+ * Scroll to a section by its ID on the current page.
167
+ * Uses the existing menu-ref mechanism from init-menu-sections.
168
+ *
169
+ * TODO: Navigate-and-scroll for sections on other pages is not yet supported
170
+ * via pd-action. Currently only scrolls if the section is on the current page.
171
+ * For cross-page section navigation, the calling code should use route-event
172
+ * with { route, sectionId } directly — same mechanism pd-menu uses.
173
+ */
174
+ protected _navigateToSection(sectionId: string): void;
140
175
  private _handleInitMenuSections;
141
176
  /**
142
177
  * Handle section-activated event from pd-menu.
@@ -147,6 +182,7 @@ export declare abstract class PdSpaHelper extends LitElement {
147
182
  private _handleAppConfigEvent;
148
183
  private _activateLoginHandler;
149
184
  private _getMainClass;
185
+ private _handleHeaderHeightChange;
150
186
  private _navigateToPage;
151
187
  /**
152
188
  * Scroll to a section element. Collapses teaser if expanded.
@@ -1 +1 @@
1
- {"version":3,"file":"PdSpaHelper.d.ts","sourceRoot":"","sources":["../../../src/components/pd-spa-helper/PdSpaHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PdSpaHelper.d.ts","sourceRoot":"","sources":["../../../src/components/pd-spa-helper/PdSpaHelper.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  import { LitElement, css, html } from 'lit';
2
2
  import { property, state } from 'lit/decorators.js';
3
- import '@progressive-development/pd-page/pd-menu';
3
+ import { styleMap } from 'lit/directives/style-map.js';
4
+ import '@progressive-development/pd-page/pd-site-header';
4
5
  import '@progressive-development/pd-page/pd-footer';
5
- import '@progressive-development/pd-content/pd-panel-viewer';
6
- import '@progressive-development/pd-content/pd-panel';
6
+ import { mapMenuBg, mapFooterBg, toastBus } from '@progressive-development/pd-page';
7
7
  import { pdStore } from '../../store/mini-rx.store.js';
8
8
  import { services } from '../../service-provider/ServiceRegistry.js';
9
9
  import { getLoadingSelector } from '../../store/spa-app-selector.js';
10
10
  import { setRouteElement } from '../../store/spa-app-effects.js';
11
- import { loginSuccess, nologin } from '../../store/spa-app-actions.js';
11
+ import { loginSuccess, nologin, logoutSuccess } from '../../store/spa-app-actions.js';
12
12
  import { setCurrentFormatLocale } from '@progressive-development/pd-utils';
13
13
  import { pdRouterService, POST_LOGIN_REDIRECT_KEY } from '../../router/PdRouterService.js';
14
14
  import { createLogger } from '../../helper/logger.js';
15
- import { toastBus } from '@progressive-development/pd-page';
16
15
  import { spaConfig } from './spa-config.js';
17
16
  import { SPA_EVENTS, dispatchInit } from './spa-events.js';
18
17
  import { ScrollController } from './controllers/ScrollController.js';
@@ -97,6 +96,7 @@ class PdSpaHelper extends LitElement {
97
96
  "route-event",
98
97
  this._handleRouteEvent
99
98
  );
99
+ this.addEventListener("pd-action", this._handlePdAction);
100
100
  }
101
101
  static {
102
102
  // ---------------------------------------------------------------------------
@@ -104,16 +104,11 @@ class PdSpaHelper extends LitElement {
104
104
  // ---------------------------------------------------------------------------
105
105
  this.styles = css`
106
106
  /* ═══════════════════════════════════════════════════════════════════════
107
- CSS CUSTOM PROPERTIES - Mobile First (configurable by host application)
107
+ CSS CUSTOM PROPERTIES
108
108
  ═══════════════════════════════════════════════════════════════════════ */
109
109
  :host {
110
- /* Header heights - Mobile defaults */
111
- --pd-top-menu-height: 30px;
112
- --pd-teaser-height: 200px;
113
- --pd-menu-height: 50px;
114
-
115
- /* Transition timing */
116
- --pd-header-transition: 300ms ease-out;
110
+ /* Single header height variable — set by pd-site-header height-change event */
111
+ --pd-site-header-height: 90px;
117
112
 
118
113
  /* Layout */
119
114
  display: flex;
@@ -121,22 +116,6 @@ class PdSpaHelper extends LitElement {
121
116
  height: 100%;
122
117
  }
123
118
 
124
- /* Tablet (768px+) */
125
- @media (min-width: 768px) {
126
- :host {
127
- --pd-teaser-height: 280px;
128
- --pd-menu-height: 56px;
129
- }
130
- }
131
-
132
- /* Desktop (1024px+) */
133
- @media (min-width: 1024px) {
134
- :host {
135
- --pd-teaser-height: 380px;
136
- --pd-menu-height: 60px;
137
- }
138
- }
139
-
140
119
  /* ═══════════════════════════════════════════════════════════════════════
141
120
  HEADER
142
121
  ═══════════════════════════════════════════════════════════════════════ */
@@ -155,89 +134,16 @@ class PdSpaHelper extends LitElement {
155
134
  flex-grow: 0;
156
135
  }
157
136
 
158
- /* ═══════════════════════════════════════════════════════════════════════
159
- TEASER
160
- ═══════════════════════════════════════════════════════════════════════ */
161
- .teaser {
162
- --pd-panel-overflow: hidden;
163
- --pd-panel-height: var(--pd-teaser-height);
164
- --pd-panel-width: 100%;
165
- --pd-panel-border-radius: 0;
166
- --pd-panel-bg: var(--pd-default-col);
167
- --pd-panel-viewer-bg-col: var(--pd-default-col);
168
-
169
- height: var(--pd-teaser-height);
170
- overflow: hidden;
171
- transition: height var(--pd-header-transition);
172
- }
173
-
174
- /* Teaser collapsed */
175
- :host([teaser-collapsed]) .teaser {
176
- height: 0;
177
- pointer-events: none; /* Prevent Hammer.js from processing swipe events while collapsed */
178
- }
179
-
180
- :host([teaser-collapsed]) {
181
- --pd-teaser-height: 0px;
182
- }
183
-
184
- /* No menu: set height to 0 for correct padding calculations */
185
- :host([no-menu]) {
186
- --pd-menu-height: 0px;
187
- }
188
-
189
- /* No top-menu: set height to 0 for correct padding calculations */
190
- :host([no-top-menu]) {
191
- --pd-top-menu-height: 0px;
192
- }
193
-
194
- /* Skip teaser transition during navigate-and-scroll */
195
- :host([skip-teaser-transition]) .teaser {
196
- transition: none !important;
197
- }
198
-
199
- /* ═══════════════════════════════════════════════════════════════════════
200
- MAIN MENU
201
- ═══════════════════════════════════════════════════════════════════════ */
202
- .menu {
203
- transition: background-color var(--pd-header-transition);
204
- }
205
-
206
- /* Menu colors when teaser is visible (has teaser AND not collapsed) */
207
- :host(:not([teaser-collapsed])) .menu.with-teaser {
208
- --pd-menu-bg-col: var(--pd-spa-menu-change-col, #afc1d2);
209
- --pd-menu-font-col: var(--pd-spa-menu-change-font-col, #0a3a48);
210
- }
211
-
212
- /* ═══════════════════════════════════════════════════════════════════════
213
- TOP MENU
214
- ═══════════════════════════════════════════════════════════════════════ */
215
- .top-menu {
216
- --pd-menu-height: var(--pd-top-menu-height);
217
- --pd-menu-font-size: 0.8em;
218
- --pd-menu-shadow: 0;
219
- }
220
-
221
- /* Top-menu colors when teaser is visible */
222
- :host(:not([teaser-collapsed])) .top-menu.with-teaser {
223
- --pd-menu-bg-col: var(--pd-teaser-bg-col);
224
- }
225
-
226
137
  /* ═══════════════════════════════════════════════════════════════════════
227
138
  MAIN CONTENT
228
139
  ═══════════════════════════════════════════════════════════════════════ */
229
140
  main {
230
141
  flex-grow: 1;
231
142
  flex-basis: max-content;
232
- padding-top: calc(var(--pd-menu-height) + var(--pd-top-menu-height));
233
143
  }
234
144
 
235
- /* When teaser is visible (has teaser AND not collapsed), add teaser height */
236
- :host(:not([teaser-collapsed])) main.with-teaser {
237
- padding-top: calc(
238
- var(--pd-menu-height) + var(--pd-top-menu-height) +
239
- var(--pd-teaser-height)
240
- );
145
+ header + main {
146
+ padding-top: var(--pd-site-header-height, 90px);
241
147
  }
242
148
 
243
149
  /* ═══════════════════════════════════════════════════════════════════════
@@ -290,12 +196,7 @@ class PdSpaHelper extends LitElement {
290
196
  super.willUpdate(changedProps);
291
197
  if (changedProps.has("_route") && this._route) {
292
198
  const pageConf = spaConfig.getNavigationPage(this._route);
293
- const hasTeaser = !!(pageConf?.withTeaser && this._getTeaserContent().length > 0);
294
- this.toggleAttribute("no-menu", !!pageConf?.hideMenu);
295
- this.toggleAttribute(
296
- "no-top-menu",
297
- !!pageConf?.hideTopMenu || !pageConf?.topMenuItems?.length
298
- );
199
+ const hasTeaser = !!pageConf?.withTeaser && this._hasTeaserContent();
299
200
  this.scrollController.setTeaserCollapseEnabled(hasTeaser);
300
201
  if (this._pendingScrollSectionId) {
301
202
  this.teaserCollapsed = true;
@@ -316,7 +217,7 @@ class PdSpaHelper extends LitElement {
316
217
  const isLoginModal = this._route === "login";
317
218
  const configRoute = isLoginModal ? pdRouterService.previousRoute || "home" : this._route;
318
219
  const pageConf = spaConfig.getNavigationPage(configRoute);
319
- const showTeaser = !!(pageConf?.withTeaser && this._getTeaserContent().length > 0);
220
+ const showTeaser = !!pageConf?.withTeaser && this._hasTeaserContent();
320
221
  return this._renderLayout(pageConf, showTeaser);
321
222
  }
322
223
  /**
@@ -335,18 +236,19 @@ class PdSpaHelper extends LitElement {
335
236
  const backgroundRoute = pdRouterService.previousRoute || "home";
336
237
  const contentRoute = isLoginModal ? backgroundRoute : this._route;
337
238
  return html`
338
- <header>
339
- ${pageConf?.hideTopMenu ? "" : this._renderTopMenu(pageConf, showTeaser)}
340
- ${showTeaser ? this._renderTeaser() : ""}
341
- ${pageConf?.hideMenu ? "" : this._renderMenu(pageConf, showTeaser)}
342
- </header>
239
+ ${pageConf?.hideMenu ? "" : html`<header>
240
+ ${this._renderSiteHeader(pageConf, showTeaser)}
241
+ </header>`}
343
242
 
344
243
  <main
345
- class="${this._getMainClass(pageConf, showTeaser)}"
244
+ class="${this._getMainClass(pageConf)}"
346
245
  @init-menu-sections="${this._handleInitMenuSections}"
347
246
  >
348
247
  ${this._loadingState.map(
349
- (ls) => html`<pd-loading-state .loadingState="${ls}"></pd-loading-state>`
248
+ (ls) => html`<pd-loading-state
249
+ .loadingState="${ls}"
250
+ .loaderStyle="${ls.loaderStyle || spaConfig.defaultLoaderStyle || "spinner"}"
251
+ ></pd-loading-state>`
350
252
  )}
351
253
  ${this._renderRoutePages(contentRoute)}
352
254
  ${this._route === "not-found" ? html`<default-not-found></default-not-found>` : ""}
@@ -383,70 +285,62 @@ class PdSpaHelper extends LitElement {
383
285
  // ---------------------------------------------------------------------------
384
286
  // Layout Rendering Methods (can be overridden)
385
287
  // ---------------------------------------------------------------------------
386
- _renderMenu(pageConfig, showTeaser) {
387
- const menuForPage = pageConfig?.menu || [];
388
- if (!menuForPage.length) return "";
389
- const showLogo = !showTeaser || this.teaserCollapsed;
390
- const visibleMenuItems = menuForPage.filter(
391
- (item) => !item.requiredRoles?.length || item.requiredRoles.some((role) => this._claims?.[role] === true)
392
- );
393
- if (!visibleMenuItems.length) return "";
288
+ _renderSiteHeader(pageConf, showTeaser) {
289
+ const { bgImage, styles: bgStyles } = mapMenuBg(pageConf?.bgConfig);
394
290
  return html`
395
- <pd-menu
396
- id="pdHelperMenuId"
397
- class="menu ${showTeaser ? "with-teaser" : ""}"
398
- @locale-change="${this._handleLocaleChange}"
291
+ <pd-site-header
292
+ id="pdHelperSiteHeaderId"
293
+ style="${styleMap(bgStyles)}"
294
+ bg-image="${bgImage}"
295
+ .topMenuItems=${this._getVisibleTopMenuItems(pageConf)}
296
+ .menuItems=${this._getVisibleMenuItems(pageConf)}
399
297
  selectedLocale="${this._selectedLocale}"
400
- .locales=${this._singleLocaleMenu ? this._availableLocales : []}
401
- .menuItems=${visibleMenuItems}
402
- .topMenuItems=${[]}
298
+ .locales=${this._availableLocales}
299
+ ?singleLocaleMenu=${this._singleLocaleMenu}
403
300
  activeRoute="${this._route}"
404
- logoRoute="${pageConfig?.menuLogoRoute || ""}"
301
+ logoRoute="${pageConf?.menuLogoRoute || ""}"
302
+ .showTeaser=${showTeaser}
303
+ .teaserCollapsed=${this.teaserCollapsed}
304
+ .skipTeaserTransition=${this._skipTeaserTransition}
305
+ topMenuMode="${pageConf?.topMenuMode || "detached"}"
306
+ @locale-change="${this._handleLocaleChange}"
307
+ @height-change="${this._handleHeaderHeightChange}"
405
308
  >
406
- ${showLogo ? this._getAppLogo() : ""}
407
- </pd-menu>
309
+ <span slot="logo">${this._getAppLogo()}</span>
310
+ ${showTeaser ? this._renderTeaserSlotContent() : ""}
311
+ </pd-site-header>
408
312
  `;
409
313
  }
410
- _renderTopMenu(pageConfig, showTeaser) {
411
- const topMenuForPage = pageConfig?.topMenuItems;
412
- if (!topMenuForPage) return "";
413
- const visibleTopMenuItems = topMenuForPage.filter(
314
+ _getVisibleMenuItems(pageConf) {
315
+ return (pageConf?.menu || []).filter(
414
316
  (item) => !item.requiredRoles?.length || item.requiredRoles.some((role) => this._claims?.[role] === true)
415
317
  );
416
- if (!visibleTopMenuItems.length) return "";
417
- return html`
418
- <pd-menu
419
- id="pdHelperTopMenuId"
420
- noBurgerMenu
421
- class="top-menu ${showTeaser ? "with-teaser" : ""}"
422
- @locale-change="${this._handleLocaleChange}"
423
- .locales=${this._availableLocales}
424
- selectedLocale="${this._selectedLocale}"
425
- .topMenuItems=${visibleTopMenuItems}
426
- activeRoute="${this._route}"
427
- >
428
- </pd-menu>
429
- `;
430
318
  }
431
- _renderTeaser() {
432
- const teaserContent = this._getTeaserContent();
433
- if (!teaserContent || teaserContent.length === 0) {
434
- return "";
435
- }
436
- return html`
437
- <pd-panel-viewer class="teaser" id="teaserPanelViewerId" deltaCalc="4">
438
- ${teaserContent.map((content) => html`<pd-panel>${content}</pd-panel>`)}
439
- </pd-panel-viewer>
440
- `;
319
+ _getVisibleTopMenuItems(pageConf) {
320
+ if (pageConf?.hideTopMenu) return [];
321
+ return (pageConf?.topMenuItems || []).filter(
322
+ (item) => !item.requiredRoles?.length || item.requiredRoles.some((role) => this._claims?.[role] === true)
323
+ );
441
324
  }
442
325
  _renderFooter() {
443
326
  const footer = this._getFooter();
327
+ const pdSections = footer.sections?.map((s) => ({
328
+ heading: s.heading,
329
+ links: s.links.map((l) => ({ key: l.key, name: l.name }))
330
+ })) ?? [];
331
+ const pdLegalLinks = footer.legalLinks?.map((l) => ({ key: l.key, name: l.name })) ?? [];
332
+ const { bgImage, styles: bgStyles } = mapFooterBg(footer.bgConfig);
444
333
  return html`
445
334
  <pd-footer
446
- .footerLinks="${footer.links}"
447
- version="${footer.version}"
335
+ style="${styleMap(bgStyles)}"
336
+ bg-image="${bgImage}"
337
+ .sections="${pdSections}"
338
+ .socialLinks="${footer.socialLinks ?? []}"
339
+ .legalLinks="${pdLegalLinks}"
448
340
  copyright="${footer.copyright || "PD Progressive Development UG"}"
449
- .madeBy="${MADE_BY}"
341
+ version="${footer.version || ""}"
342
+ ?show-version="${footer.showVersion ?? false}"
343
+ .madeBy="${footer.madeBy || MADE_BY}"
450
344
  @footer-link="${this._handleFooterLink}"
451
345
  >
452
346
  </pd-footer>
@@ -456,11 +350,28 @@ class PdSpaHelper extends LitElement {
456
350
  // Optional Override Methods (have default implementations)
457
351
  // ---------------------------------------------------------------------------
458
352
  /**
459
- * Get teaser content panels
460
- * Override to provide teaser content, or return empty array for no teaser
353
+ * Whether the app has teaser content. Default: false.
354
+ * Override in subclass to enable teaser rendering.
355
+ * Used together with pageConf.withTeaser to determine if the teaser is shown.
356
+ */
357
+ _hasTeaserContent() {
358
+ return false;
359
+ }
360
+ /**
361
+ * Render teaser slot content for pd-site-header.
362
+ * Override in subclass (or intermediate layer like PdVisitcardApp)
363
+ * to provide teaser content. The returned template must include
364
+ * `slot="teaser-content"` on its root element.
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * protected override _renderTeaserSlotContent(): TemplateResult {
369
+ * return html`<img slot="teaser-content" src="hero.jpg" />`;
370
+ * }
371
+ * ```
461
372
  */
462
- _getTeaserContent() {
463
- return [];
373
+ _renderTeaserSlotContent() {
374
+ return html``;
464
375
  }
465
376
  // ---------------------------------------------------------------------------
466
377
  // Event Handlers
@@ -476,14 +387,54 @@ class PdSpaHelper extends LitElement {
476
387
  }
477
388
  }
478
389
  _handleFooterLink(e) {
479
- const { linkObj } = e.detail;
480
- if (linkObj.link) {
390
+ const { key } = e.detail.linkObj;
391
+ const footer = this._getFooter();
392
+ const allLinks = [
393
+ ...footer.sections?.flatMap((s) => s.links) ?? [],
394
+ ...footer.legalLinks ?? []
395
+ ];
396
+ const linkObj = allLinks.find((l) => l.key === key);
397
+ if (linkObj?.link) {
481
398
  this._navigateToPage(linkObj.link);
482
399
  }
483
- if (linkObj.action) {
400
+ if (linkObj?.action) {
484
401
  linkObj.action();
485
402
  }
486
403
  }
404
+ /**
405
+ * Handle pd-action events dispatched by scoped interceptors on data-pd-action elements.
406
+ * Handles generic actions (route, section). Override in subclass for app-specific
407
+ * actions (e.g., "wizard").
408
+ *
409
+ * Unknown actions are silently ignored.
410
+ * "url" actions are handled natively by the browser via href — no handler needed.
411
+ */
412
+ _handlePdAction(e) {
413
+ const { action, target } = e.detail;
414
+ switch (action) {
415
+ case "route":
416
+ this._navigateToPage(target);
417
+ break;
418
+ case "section":
419
+ this._navigateToSection(target);
420
+ break;
421
+ }
422
+ }
423
+ /**
424
+ * Scroll to a section by its ID on the current page.
425
+ * Uses the existing menu-ref mechanism from init-menu-sections.
426
+ *
427
+ * TODO: Navigate-and-scroll for sections on other pages is not yet supported
428
+ * via pd-action. Currently only scrolls if the section is on the current page.
429
+ * For cross-page section navigation, the calling code should use route-event
430
+ * with { route, sectionId } directly — same mechanism pd-menu uses.
431
+ */
432
+ _navigateToSection(sectionId) {
433
+ const element = this._findSectionElement(sectionId);
434
+ if (element) {
435
+ this._scrollToSection(element);
436
+ }
437
+ }
487
438
  _handleInitMenuSections(e) {
488
439
  const pageConf = spaConfig.getNavigationPage(this._route);
489
440
  if (pageConf?.menu) {
@@ -573,6 +524,7 @@ class PdSpaHelper extends LitElement {
573
524
  pdStore().dispatch(nologin());
574
525
  this._claims = {};
575
526
  if (this._previousAuthState === "logged-in") {
527
+ pdStore().dispatch(logoutSuccess());
576
528
  toastBus.info("Abgemeldet");
577
529
  this._navigateToPage(spaConfig.logoutRedirect);
578
530
  }
@@ -580,11 +532,11 @@ class PdSpaHelper extends LitElement {
580
532
  this._previousAuthState = newState;
581
533
  });
582
534
  }
583
- _getMainClass(pageConf, showTeaser) {
584
- if (pageConf?.mainClass) {
585
- return pageConf.mainClass;
586
- }
587
- return showTeaser ? "with-teaser" : "";
535
+ _getMainClass(pageConf) {
536
+ return pageConf?.mainClass || "";
537
+ }
538
+ _handleHeaderHeightChange(e) {
539
+ this.style.setProperty("--pd-site-header-height", `${e.detail.height}px`);
588
540
  }
589
541
  _navigateToPage(routeURL) {
590
542
  pdRouterService.navigate(routeURL);
@@ -1,4 +1,5 @@
1
1
  import { AppConfiguration, NavigationConfig, NavigationPage } from '../../service-provider/service-provider-model.js';
2
+ import { LoaderStyle } from '@progressive-development/pd-content';
2
3
  import { RouteDefinition } from '../../router/rout-types.js';
3
4
  /**
4
5
  * Internal SPA configuration state
@@ -12,6 +13,8 @@ export interface SpaConfigState {
12
13
  routeMap: Map<string, NavigationPage>;
13
14
  /** Whether the configuration has been initialized */
14
15
  initialized: boolean;
16
+ /** Default loader style for pd-loading-state */
17
+ defaultLoaderStyle?: LoaderStyle;
15
18
  }
16
19
  /**
17
20
  * Singleton configuration manager for SPA settings.
@@ -66,6 +69,11 @@ declare class SpaConfigManager {
66
69
  * Defaults to "/" (home) if not configured.
67
70
  */
68
71
  get logoutRedirect(): string;
72
+ /**
73
+ * Get the default loader style for pd-loading-state.
74
+ * Returns undefined if not configured (component default "spinner" applies).
75
+ */
76
+ get defaultLoaderStyle(): LoaderStyle | undefined;
69
77
  /**
70
78
  * Reset the configuration (useful for testing)
71
79
  */
@@ -1 +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"}
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,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,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;IACrB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,WAAW,CAAC;CAClC;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;IA8C1C;;;;;;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;;;OAGG;IACH,IAAI,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAEhD;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"}
@@ -78,7 +78,8 @@ class SpaConfigManager {
78
78
  navigation,
79
79
  routes,
80
80
  routeMap,
81
- initialized: true
81
+ initialized: true,
82
+ defaultLoaderStyle: config.defaultLoaderStyle
82
83
  };
83
84
  configLogger.debug("SPA configuration initialized successfully");
84
85
  }
@@ -124,6 +125,13 @@ class SpaConfigManager {
124
125
  get logoutRedirect() {
125
126
  return this.state.navigation.logoutRedirect ?? "/";
126
127
  }
128
+ /**
129
+ * Get the default loader style for pd-loading-state.
130
+ * Returns undefined if not configured (component default "spinner" applies).
131
+ */
132
+ get defaultLoaderStyle() {
133
+ return this._state?.defaultLoaderStyle;
134
+ }
127
135
  /**
128
136
  * Reset the configuration (useful for testing)
129
137
  */
@@ -81,6 +81,17 @@ export interface AppConfigEventDetail {
81
81
  /** Will be populated with the app configuration */
82
82
  appConf?: unknown;
83
83
  }
84
+ /**
85
+ * Detail for pd-action events (from data-pd-action links/buttons).
86
+ * These events are dispatched by scoped click interceptors on containers
87
+ * that render HTML with data-pd-action attributes.
88
+ */
89
+ export interface PdActionEventDetail {
90
+ /** Action type: "route", "section", "wizard", "url", or custom */
91
+ action: string;
92
+ /** Action target: route path, section ID, wizard key, or URL */
93
+ target: string;
94
+ }
84
95
  /**
85
96
  * Map of event names to their detail types.
86
97
  * Use with CustomEvent<SpaEventMap[typeof SPA_EVENTS.TOAST]>
@@ -1 +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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"}
1
+ {"version":3,"file":"spa-events.d.ts","sourceRoot":"","sources":["../../../src/components/pd-spa-helper/spa-events.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export { createLogger, defaultLogger } from './helper/logger.js';
5
5
  export { refreshAndPersistUserIdToken } from './helper/refresh-id-token.js';
6
6
  export * as offlineWatcher from './helper/offline-watcher-helper.js';
7
7
  export { ServiceRegistry, services, } from './service-provider/ServiceRegistry.js';
8
- export type { AppConfiguration, NavigationConfig, NavigationPage, MenuElement, Footer, LinkObj, FunctionDefinition, FunctionResult, FunctionParam, StoreConfig, StorageDocument, UploadFile, } from './service-provider/service-provider-model.js';
8
+ export type { AppConfiguration, NavigationConfig, NavigationPage, MenuElement, Footer, FooterSection, FooterSocialLink, LinkObj, FunctionDefinition, FunctionResult, FunctionParam, StoreConfig, StorageDocument, UploadFile, } from './service-provider/service-provider-model.js';
9
9
  export { BusinessError, SC_INVALID_USER, SC_TECHNICAL_FAILURE, } from './service-provider/service-provider-model.js';
10
10
  export { validateFunctionResult, validateResult, isBusinessError, extractErrorInfo, } from './service-provider/function-utils.js';
11
11
  export { pdStore, initializeStore } from './store/mini-rx.store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,WAAW,EACX,SAAS,GACV,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,YAAY,EACV,aAAa,EACb,WAAW,GACZ,MAAM,+CAA+C,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AAKrE,OAAO,EACL,eAAe,EACf,QAAQ,GACT,MAAM,uCAAuC,CAAC;AAG/C,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,GACrB,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAG5D,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACL,eAAe,EACf,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK/E,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,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAK7D,OAAO,EACL,cAAc,EACd,UAAU,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,EAEd,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKlE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { APP_CONF_EVENT, UNDEF } from './spa-model.js';
2
2
  export type { AppUser } from './spa-model.js';
3
- export type { LoadingState, LoadingSubTask, } from '@progressive-development/pd-content';
3
+ export type { LoaderStyle, LoadingState, LoadingSubTask, } from '@progressive-development/pd-content';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvD,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,YAAY,EACV,YAAY,EACZ,cAAc,GACf,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvD,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,YAAY,EACV,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,qCAAqC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BusinessError, SC_TECHNICAL_FAILURE } from './service-provider-model.js';
1
+ import { SC_TECHNICAL_FAILURE, BusinessError } from './service-provider-model.js';
2
2
 
3
3
  function validateFunctionResult(result, functionDef) {
4
4
  if (!functionDef.successCodes.includes(result.statusCode)) {
@@ -1,5 +1,6 @@
1
1
  import { FirebaseOptions } from 'firebase/app';
2
2
  import { TemplateResult } from 'lit';
3
+ import { BgConfig } from '@progressive-development/pd-model';
3
4
  export declare const SC_INVALID_USER = -150;
4
5
  export declare const SC_TECHNICAL_FAILURE = -180;
5
6
  export declare class BusinessError extends Error {
@@ -75,6 +76,10 @@ export interface NavigationPage {
75
76
  hideTopMenu?: boolean;
76
77
  topMenuItems?: Array<MenuElement>;
77
78
  menuLogoRoute?: string;
79
+ /** Top menu display mode: "integrated" (shared bg) or "detached" (own bg). Default: "detached" */
80
+ topMenuMode?: "integrated" | "detached";
81
+ /** Background config for pd-site-header (color, gradient, or image with overlay). */
82
+ bgConfig?: BgConfig;
78
83
  }
79
84
  export interface NavigationConfig {
80
85
  pages: Array<NavigationPage>;
@@ -89,10 +94,29 @@ export interface LinkObj {
89
94
  link?: string;
90
95
  action?: () => void;
91
96
  }
97
+ export interface FooterSection {
98
+ heading: string;
99
+ links: LinkObj[];
100
+ }
101
+ export interface FooterSocialLink {
102
+ providerId: string;
103
+ value: string;
104
+ label?: string;
105
+ }
92
106
  export interface Footer {
93
- version: string;
107
+ sections?: FooterSection[];
108
+ socialLinks?: FooterSocialLink[];
109
+ legalLinks?: LinkObj[];
94
110
  copyright?: string;
95
- links: Array<LinkObj>;
111
+ version?: string;
112
+ showVersion?: boolean;
113
+ madeBy?: {
114
+ txt: string;
115
+ email?: string;
116
+ link?: string;
117
+ };
118
+ /** Background config for pd-footer (color, gradient, or image with overlay). */
119
+ bgConfig?: BgConfig;
96
120
  }
97
121
  /** mini-rx-store reducer function type */
98
122
  export type ReducerFunction<S = unknown> = (state: S, action: {
@@ -131,6 +155,8 @@ export interface AppConfiguration {
131
155
  storageConfig?: FileStorageConfig;
132
156
  functionsConfig?: FunctionsConfig;
133
157
  messagingConfig?: MessagingConfig;
158
+ /** Default loader style for pd-loading-state. Default: "spinner" */
159
+ defaultLoaderStyle?: "spinner" | "dots" | "pulse" | "logo";
134
160
  }
135
161
  export interface UploadFile {
136
162
  fileName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"service-provider-model.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-provider-model.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-model.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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;;;;6DAqBnC;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"}
@@ -1,5 +1,5 @@
1
1
  import { createEffect, actions$ } from 'mini-rx-store';
2
- import { filter, map, tap } from 'rxjs/operators';
2
+ import { filter, tap, map } from 'rxjs/operators';
3
3
  import { toastBus } from '@progressive-development/pd-page';
4
4
  import { addLoadingState, removeLoadingState } from './spa-app-actions.js';
5
5
  import { isBusinessError } from '../service-provider/function-utils.js';
@@ -17,7 +17,8 @@ function createLoadingEffect(groups, options = {}) {
17
17
  loadingTxt: config?.loadingTxt || "Loading...",
18
18
  isLoading: true,
19
19
  modal: options.modal ?? config?.modal ?? false,
20
- smallBackground: options.smallBackground ?? config?.smallBackground ?? false
20
+ smallBackground: options.smallBackground ?? config?.smallBackground ?? false,
21
+ loaderStyle: config?.loaderStyle
21
22
  });
22
23
  })
23
24
  )
@@ -1,4 +1,5 @@
1
1
  import { ActionCreator, Action } from 'ts-action';
2
+ import { LoaderStyle } from '@progressive-development/pd-content';
2
3
  /**
3
4
  * Configuration for loading state and toast messages.
4
5
  */
@@ -15,6 +16,8 @@ export interface AsyncActionConfig {
15
16
  smallBackground?: boolean;
16
17
  /** Duration for success toast in ms */
17
18
  successDuration?: number;
19
+ /** Override loader style for this action (overrides app default) */
20
+ loaderStyle?: LoaderStyle;
18
21
  }
19
22
  /**
20
23
  * Typed action creator that preserves payload type for ts-action compatibility.
@@ -1 +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"}
1
+ {"version":3,"file":"async-action-utils.d.ts","sourceRoot":"","sources":["../../src/store/async-action-utils.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,8 @@ function createAsyncActionGroup(baseType, options) {
13
13
  successTxt: options.successTxt,
14
14
  modal: options.modal,
15
15
  smallBackground: options.smallBackground,
16
- successDuration: options.successDuration
16
+ successDuration: options.successDuration,
17
+ loaderStyle: options.loaderStyle
17
18
  };
18
19
  const actionCreator = action(types.action, payload());
19
20
  const successCreator = action(types.success, payload());
@@ -1 +1 @@
1
- {"version":3,"file":"spa-app-reducer.d.ts","sourceRoot":"","sources":["../../src/store/spa-app-reducer.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAQD,eAAO,MAAM,aAAa,0CAoEzB,CAAC"}
1
+ {"version":3,"file":"spa-app-reducer.d.ts","sourceRoot":"","sources":["../../src/store/spa-app-reducer.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAQD,eAAO,MAAM,aAAa,0CAgEzB,CAAC"}
@@ -52,10 +52,6 @@ const spaAppReducer = reducer(
52
52
  userLoginDone: true,
53
53
  user: void 0
54
54
  })),
55
- // NOTE: logoutSuccess is currently not used. Logout triggers onAuthStateChanged(null)
56
- // which dispatches nologin(). This action is kept for future use cases where providers
57
- // may not have an AuthStateChanged handler, or when explicit logout handling is needed
58
- // (e.g., clearing additional state beyond user data).
59
55
  on(
60
56
  logoutSuccess,
61
57
  () => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progressive-development/pd-spa-helper",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "Webcomponent pd-spa-helper following open-wc recommendations",
5
5
  "author": "PD Progressive Development",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -18,7 +18,7 @@
18
18
  "LICENSE"
19
19
  ],
20
20
  "devDependencies": {
21
- "@progressive-development/pd-shared-styles": "0.3.2"
21
+ "@progressive-development/pd-shared-styles": "0.4.3-dev.0"
22
22
  },
23
23
  "dependencies": {
24
24
  "lit": "^3.3.1",
@@ -30,15 +30,16 @@
30
30
  "ts-action-operators": "^9.1.2",
31
31
  "universal-router": "^10.0.0",
32
32
  "tslib": "^2.8.1",
33
- "@progressive-development/pd-provider-interfaces": "0.9.1",
34
- "@progressive-development/pd-icon": "1.0.1",
35
- "@progressive-development/pd-dialog": "1.0.1",
36
- "@progressive-development/pd-content": "1.0.1",
37
- "@progressive-development/pd-forms": "1.0.1",
38
- "@progressive-development/pd-order": "1.1.1",
39
- "@progressive-development/pd-page": "1.0.3",
40
- "@progressive-development/pd-wizard": "1.0.3",
41
- "@progressive-development/pd-utils": "1.0.0"
33
+ "@progressive-development/pd-provider-interfaces": "0.9.3",
34
+ "@progressive-development/pd-model": "1.2.3-dev.0",
35
+ "@progressive-development/pd-icon": "1.1.3-dev.0",
36
+ "@progressive-development/pd-content": "1.1.3-dev.0",
37
+ "@progressive-development/pd-dialog": "1.1.3-dev.0",
38
+ "@progressive-development/pd-forms": "1.1.3-dev.0",
39
+ "@progressive-development/pd-page": "1.2.1-dev.0",
40
+ "@progressive-development/pd-order": "1.1.7-dev.0",
41
+ "@progressive-development/pd-utils": "1.1.3-dev.0",
42
+ "@progressive-development/pd-wizard": "1.1.3-dev.0"
42
43
  },
43
44
  "customElements": "custom-elements.json",
44
45
  "keywords": [