@progressive-development/pd-spa-helper 0.2.2 → 0.2.4

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 (33) hide show
  1. package/dist/src/PdSpaHelper.d.ts +1 -1
  2. package/dist/src/PdSpaHelper.js +3 -2
  3. package/dist/src/PdSpaHelper.js.map +1 -1
  4. package/dist/src/model/spa-model.d.ts +1 -0
  5. package/dist/src/model/spa-model.js.map +1 -1
  6. package/dist/src/service-provider/mock/auth.d.ts +1 -1
  7. package/dist/src/service-provider/mock/auth.js +12 -5
  8. package/dist/src/service-provider/mock/auth.js.map +1 -1
  9. package/dist/src/service-provider/service-provider-impl.js +1 -1
  10. package/dist/src/service-provider/service-provider-impl.js.map +1 -1
  11. package/dist/src/store/spa-app-actions.d.ts +10 -3
  12. package/dist/src/store/spa-app-actions.js +2 -1
  13. package/dist/src/store/spa-app-actions.js.map +1 -1
  14. package/dist/src/store/spa-app-reducer.d.ts +1 -1
  15. package/dist/src/store/spa-app-reducer.js +16 -10
  16. package/dist/src/store/spa-app-reducer.js.map +1 -1
  17. package/dist/src/store/spa-app-selector.d.ts +1 -1
  18. package/dist/src/stories/pd-loading-state.stories.d.ts +2 -0
  19. package/dist/src/stories/pd-loading-state.stories.js +29 -1
  20. package/dist/src/stories/pd-loading-state.stories.js.map +1 -1
  21. package/dist/src/tmpown/pd-loading-state.d.ts +3 -3
  22. package/dist/src/tmpown/pd-loading-state.js +7 -7
  23. package/dist/src/tmpown/pd-loading-state.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +1 -1
  26. package/src/PdSpaHelper.ts +4 -4
  27. package/src/model/spa-model.ts +2 -1
  28. package/src/service-provider/mock/auth.ts +15 -6
  29. package/src/service-provider/service-provider-impl.ts +1 -1
  30. package/src/store/spa-app-actions.ts +2 -1
  31. package/src/store/spa-app-reducer.ts +15 -10
  32. package/src/stories/pd-loading-state.stories.ts +31 -1
  33. package/src/tmpown/pd-loading-state.ts +8 -5
@@ -33,7 +33,7 @@ export declare abstract class PdSpaHelper extends PdSpaHelper_base {
33
33
  */
34
34
  _user: unknown | undefined;
35
35
  _profile: any | undefined;
36
- _loadingState?: LoadingState;
36
+ _loadingState: LoadingState[];
37
37
  /**
38
38
  * Properties needed for the router.
39
39
  */
@@ -109,6 +109,7 @@ export class PdSpaHelper extends router(navigator(LitElement)) {
109
109
  this.functionsController = new ServiceCallController(this);
110
110
  // not used at the moment
111
111
  this.title = 'Hey there';
112
+ this._loadingState = [];
112
113
  /**
113
114
  * Properties needed for the router.
114
115
  */
@@ -158,7 +159,7 @@ export class PdSpaHelper extends router(navigator(LitElement)) {
158
159
  this._subscription = pdStore().select(getLoadingSelector)
159
160
  .subscribe((loadingState) => {
160
161
  console.log("Loading State: ", loadingState);
161
- this._loadingState = loadingState;
162
+ this._loadingState = loadingState || [];
162
163
  });
163
164
  }
164
165
  disconnectedCallback() {
@@ -223,7 +224,7 @@ export class PdSpaHelper extends router(navigator(LitElement)) {
223
224
 
224
225
  <main class="${this._getMainClass(hideTeaser, pageConf)}">
225
226
 
226
- ${this._loadingState ? html `<pd-loading-state .loadingState="${this._loadingState}"></pd-loading-state>` : ''}
227
+ ${this._loadingState.map(ls => html `<pd-loading-state .loadingState="${ls}"></pd-loading-state>`)}
227
228
 
228
229
  <app-main active-route=${this.route}
229
230
  @init-menu-sections="${this._initMenuSections}"
@@ -1 +1 @@
1
- {"version":3,"file":"PdSpaHelper.js","sourceRoot":"","sources":["../../src/PdSpaHelper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAkC,SAAS,EAAE,MAAM,KAAK,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGzI,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,gCAAgC,CAAC;AACxC,OAAO,6BAA6B,CAAC;AACrC,OAAO,sBAAsB,CAAC;AAC9B,gDAAgD;AAChD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,8BAA8B,CAAC;AAEtC,0CAA0C;AAC1C,gDAAgD;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,cAAc;AACd,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,oCAAoC;IACzC,KAAK,EAAE,kCAAkC;CAAC,CAAC;AAE7C,sCAAsC;AACtC,MAAM,cAAc,GAAG,IAAI,CAAC;AAG5B;;GAEG;AACH,IAAI,GAA2B,CAAC;AAChC,IAAI,iBAA4B,CAAC;AACjC,IAAI,gBAAiC,CAAC;AAEtC;;GAEG;AACH,MAAM,eAAe,GAAG,GAAG,EAAE;IAE3B,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC/C,QAAQ,CAAC,CAAC;QACV;YACE,eAAe,EAAE;gBACf,IAAI,EAAE,OAAO;aACd;YACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC;SACH,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,eAAe,GAAc,EAAE,CAAC;IACpC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CACtD;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,eAAe;YACxB,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;SAClD,CACF,CAAC,CAAC;QACH,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,eAAe,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC,CAAA;AAGD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAwB,EAAE,EAAE;IAEpD,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAE/C,uBAAuB;IACvB,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE3C,qBAAqB;IACrB,IAAI,MAAM,CAAC,gBAAgB,EAAE;QAC3B,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;KAC1C;IAED,WAAW;IACX,WAAW,CAAC,MAAM,CAAC,CAAC;IAEpB,mCAAmC;IACnC,IAAI,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE;QAC7C,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;YACtC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE;gBACJ,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC;aAC9B;YACD,OAAO,EAAE,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;KACJ;IAED,yCAAyC;IACzC,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IAChD,iBAAiB,GAAG,eAAe,EAAE,CAAC;IAEtC,iFAAiF;IACjF,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAE1C,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAgB,WAAY,SAAQ,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAiIrE;QAEE,KAAK,EAAE,CAAC;QAjIA,wBAAmB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAIhE,yBAAyB;QAEzB,UAAK,GAAG,WAAW,CAAC;QAcpB;;WAEG;QAEH,UAAK,GAAG,EAAE,CAAC;QAGX,WAAM,GAAG,EAAE,CAAC;QAGZ,UAAK,GAAG,EAAE,CAAC;QAEX;;WAEG;QAEH,kBAAa,GAAG,KAAK,CAAC;QAQZ,sBAAiB,GAAY,KAAK,CAAC;QAuF3C,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,MAAM,WAAW,GAAG,CAAC,SAAgB,EAAE,EAAE;YACvC,IAAI,SAAS,IAAI,EAAE,EAAE;gBACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;QACH,CAAC,CAAC;QAEF,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;oBAChC,WAAW,CAAC,uBAAuB,CAAC,CAAC;oBACrC,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,qFAAqF;QACrF,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,gBAAgB,CAAC,YAAY,EAAE;YACjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;QAED,uFAAuF;QACvF,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC;aACtD,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC7C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;;QAClB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChE,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,KAAY;QAC3B,MAAM,EAAC,MAAM,EAAC,GAAG,KAAoB,CAAC;QACtC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,GAAG;gBACf,GAAG,IAAI,CAAC,iBAAiB;aAC1B,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACH,mDAAmD;IAEnD;;;OAGG;IACH,MAAM,KAAK,MAAM;QACf,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAY,EAAE,MAAa,EAAE,KAAY;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAGD;;;OAGG;IACH,oBAAoB;QAClB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,EAAE;YACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,OAAO,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;aACtD;QACH,CAAC,CAAC;QACF,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAA,CAAC;QAC/D,OAAO,IAAI,CAAA;;UAEL,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;UACtE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;UACtC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC;;;qBAGrD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC;;UAEnD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA,oCAAoC,IAAI,CAAC,aAAa,uBAAuB,CAAC,CAAC,CAAC,EAAE;;iCAEpF,IAAI,CAAC,KAAK;mCACR,IAAI,CAAC,iBAAiB;8BAC3B,IAAI,CAAC,aAAa;YACpC,IAAI,CAAC,iBAAiB,EAAE;YACxB,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;sCACV,IAAI,CAAC,KAAK,KAAK,OAAO,kCAAkC,CAAC,CAAC,CAAC,EAAE;;;;QAI3F,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;YAC3E,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACxC,KAAK,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC5C,CAAC;;QAEA,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAA;;UAEzB,IAAI,CAAC,aAAa,EAAE;gBACd,CAAC,CAAC,CAAC,EAAE;KAChB,CAAC;IACJ,CAAC;IAED,kDAAkD;IAC1C,aAAa,CAAC,UAAmB,EAAE,QAAwB;QACjE,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,cAAc,CAAC;aACvB;YACD,6CAA6C;YAC7C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;SAClH;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,UAAyB,EAAE,UAAkB;QACvD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;;;iBAGZ,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,yBAAyB;0BAC9C,IAAI,CAAC,aAAa;0BAClB,IAAI,CAAC,eAAe;mBAC3B,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;qBAClD,WAAW;wBACR,EAAE;uBACH,IAAI,CAAC,KAAK;sBACX,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,eAAe;;UAE7D,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;KAEzC,CAAC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,cAAc,CAAC,UAAyB,EAAE,UAAkB;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;;;;0BAIN,IAAI,CAAC,aAAa;iBAC3B,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,6BAA6B;mBAC7D,IAAI,CAAC,iBAAiB;0BACf,IAAI,CAAC,eAAe;wBACtB,cAAc;uBACf,IAAI,CAAC,KAAK;;;KAG5B,CAAC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,kDAAkD;IAClD,aAAa;QACX,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/C,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAA;;UAEL,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAA;;cAE7B,OAAO;;SAEZ,CAAC;;OAEH,CAAC;IACN,CAAC;IAED,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,IAAI,CAAA;;;0BAGW,MAAM,CAAC,KAAK;qBACjB,MAAM,CAAC,OAAO;;qBAEd,OAAO;0BACF,IAAI,CAAC,uBAAuB;;KAEjD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,qFAAqF;IACrF,wBAAwB,CAAC,MAAsB;;QAC7C,OAAO,IAAI,CAAA;oCACqB,cAAc;QAC1C,MAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,0CAAE,IAAI,CAAC,UAAU;gBACjD,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;;QAChB,OAAO,CAAA,MAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,0CAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAC,IAAI,CAAA;6BAC9C,MAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,0CAAE,IAAI,CAAC,IAAI,SAAS;YACnF,CAAC,CAAC,IAAI,CAAA;;UAEF,MAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,0CAAE,IAAI,CAAC,UAAU;kBACjD,CAAC;IACjB,CAAC;IAED;;OAEG;IACF,kDAAkD;IAClD,gBAAgB,CAAC,KAAS;QACzB,OAAO,IAAI,CAAA;;QAEP,KAAK;gBACG,CAAC;IACf,CAAC;IAgBD,aAAa,CAAC,CAAc;QAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,kDAAkD;IAClD,qBAAqB,CAAC,CAAK;QACzB,iGAAiG;QACjG,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACpC;aAAM;YACL,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,kDAAkD;IAClD,uBAAuB,CAAC,CAAc;QACpC,MAAM,EAAC,OAAO,EAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,IAAI,OAAO,CAAC,MAAM,EAAG;YACnB,OAAO,CAAC,MAAM,EAAE,CAAC;SAClB;IACH,CAAC;IAED,kDAAkD;IAClD,iBAAiB,CAAC,CAAK;;QACrB,mCAAmC;QACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,IAAI,GAAG,MAAA,UAAU,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,WAAuB,EAAE,KAAY,EAAE,EAAE,CAAC,CAAC;gBACjF,GAAG,WAAW;gBACd,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC9B,CAAC,CAAC,CAAC;SACL;IACH,CAAC;IAED,qBAAqB,CAAC,CAAM;;QAE1B,4FAA4F;QAC5F,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QAEjC,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAAC;QAEnC,iDAAiD;QACjD,UAAU,CAAC,GAAG,EAAE;;YACd,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,MAAM,CAAC,QAAQ,CAAC;YACd,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,kDAAkD;IAClD,gBAAgB,CAAC,EAAc;QAC7B,IAAI,EAAE,EAAE;YACN,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC;gBACd,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/C,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;SACJ;IACH,CAAC;;AA7aM,kBAAM;AACX,sEAAsE;AACtE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAiDmB,SAAS,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;GAyB/B,CAAC;AAvHpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACP;AAMpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;0CACb;AAG3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;6CACd;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;kDACX;AAM7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CAC/B;AAGX;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACf;AAGZ;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAChB;AAMX;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACN;AAItB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oDACP","sourcesContent":["import { html, LitElement, css, CSSResultGroup, TemplateResult, unsafeCSS } from 'lit';\nimport { router, navigator } from 'lit-element-router';\nimport { property } from 'lit/decorators.js';\n\nimport { Subscription } from 'rxjs';\n\nimport { FirebaseApp } from 'firebase/app';\n\nimport '@progressive-development/pd-page/pd-menu.js';\nimport '@progressive-development/pd-page/pd-footer.js';\n\nimport { ServiceCallController } from './service-call-controller2.js';\nimport { initializeStore, pdStore } from './store/mini-rx.store.js';\n\nimport { authStateChangedImpl, initAppImpl, isAuthenticatedImpl, setServiceProvider } from './service-provider/service-provider-impl.js';\nimport { AppConfiguration, Footer, FunctionResult, MenuElement, NavigationConfig, NavigationPage } from './service-provider/service-provider-model.js';\n\nimport { getLoadingSelector } from './store/spa-app-selector.js';\nimport { setRouteElement } from './store/spa-app-effects.js';\nimport { APP_CONF_EVENT, LoadingState } from './model/spa-model.js';\nimport { loginSucess } from './store/spa-app-actions.js';\n\nimport './router/AppMain.js';\nimport './defaultpage/default-login.js';\nimport './tmpown/pd-panel-viewer.js';\nimport './tmpown/pd-panel.js';\n// eslint-disable-next-line import/no-duplicates\nimport './tmpown/pd-toast.js';\nimport './tmpown/pd-loading-state.js';\n\n// TODO: How to solve this import problem?\n// eslint-disable-next-line import/no-duplicates\nimport { PdToast } from './tmpown/pd-toast.js';\n\n\n// Footer Text\nconst MADE_BY = {\n txt: \"made by PD Progressive Development\",\n email: \"info@progressive-development.com\"};\n\n// Visible time for time-limited toast\nconst TOAST_DURATION = 6000;\n\n\n/**\n * Transformed routes, generated during startInit.\n */\nlet app:FirebaseApp | undefined;\nlet transformedRoutes:Array<any>;\nlet navigationConfig:NavigationConfig;\n\n/**\n * Internal helper functions to generate route elemets for lit-router. \n */\nconst transformRoutes = () => {\n\n const transformAuthConfig = (withAuth:boolean) => \n withAuth ? \n {\n unauthenticated: {\n name: 'login',\n },\n authenticate: () => new Promise((resolve, reject) => {\n resolve(isAuthenticatedImpl());\n }),\n } : undefined;\n\n let generatedRoutes:Array<any> = [];\n navigationConfig.pages.forEach(cfEntry => {\n const addAraay = cfEntry.pattern.map(routeMapPattern => (\n {\n name: cfEntry.name,\n pattern: routeMapPattern,\n authentication: transformAuthConfig(cfEntry.auth),\n }\n )); \n generatedRoutes = generatedRoutes.concat(addAraay);\n });\n \n // add not-found route\n generatedRoutes.push({\n name: 'not-found',\n pattern: '*',\n });\n\n return generatedRoutes;\n}\n\n\n/**\n * Init the firebase app and application services like\n * functions and firestore. Generate routes from navigationConfig.\n * \n * @param navigationConfig\n * @param firebaseConfig\n * @param functionsConfig\n */\nexport const startInit = (config: AppConfiguration) => {\n\n console.log(\"Start init for config: \", config);\n\n // set service provider\n setServiceProvider(config.serviceProvider);\n \n // init mini-rx store\n if (config.storeConfigParam) {\n initializeStore(config.storeConfigParam);\n }\n\n // init app\n initAppImpl(config);\n\n // add login route if set in config\n if (config.navigationConfigParam.includeLogin) {\n config.navigationConfigParam.pages.push({\n name: \"login\",\n menu: [\n {key: \"login\", name: \"Login\"}\n ],\n pattern: [\"login\"],\n auth: false\n });\n }\n\n // generate routes from navigation config\n navigationConfig = config.navigationConfigParam;\n transformedRoutes = transformRoutes(); \n\n // init ready, trigger by even (if getAuth is called before, error is thrown) \n document.dispatchEvent(new CustomEvent(\"init-app-event\"));\n console.log(\"Init done, Event created\");\n\n};\n\nconst TOP_MENU_HEIGHT = 50;\n\n/**\n * Abstract class for SPAs. Extend within the app main class.\n */\nexport abstract class PdSpaHelper extends router(navigator(LitElement)) {\n\n protected functionsController = new ServiceCallController(this);\n\n protected abstract _appConfiguration: any;\n\n // not used at the moment\n @property({ type: String }) \n title = 'Hey there';\n\n /**\n * Properties needed for login/profile data.\n */\n @property({ type: Object, state: true }) \n _user: unknown | undefined;\n\n @property({ type: Object, state: true }) \n _profile: any | undefined;\n\n @property({ type: Object, state: true }) \n _loadingState?: LoadingState;\n \n /**\n * Properties needed for the router.\n */\n @property({ type: String, reflect: true }) \n route = \"\";\n\n @property({ type: Object }) \n params = {};\n\n @property({ type: Object }) \n query = {};\n\n /**\n * Indicates if the teaser should closed (depends on scroll position).\n */\n @property({ type: Boolean })\n _teaserClosed = false; \n\n\n @property({ type: String, state: true })\n abstract _selectedLocale: string;\n\n abstract _availableLocales: string[];\n\n protected _singleLocaleMenu: boolean = false;\n\n // subscription for loading-state selector\n _subscription?: Subscription; \n\n static styles = \n // Ref: Additional use classmap to add custom classes in concrete impl\n css`\n\n :host {\n display: flex;\n flex-flow: column;\n height: 100%;\n }\n\n header {\n flex-grow: 0;\n }\n\n main {\n flex-grow: 1;\n flex-basis: max-content;\n }\n\n footer {\n flex-grow: 0;\n }\n\n .default-header {\n width: 100%;\n position: fixed;\n top: 0;\n display: block;\n z-index: 99;\n }\n\n .default-teaser {\n --pd-panel-overflow: hidden;\n --pd-panel-height: var(--pd-teaser-height, 380px);\n --pd-panel-width: 100%; \n --pd-panel-border-radius: 0;\n --pd-panel-bg: var(--pd-default-col);\n --pd-panel-viewer-bg-col: var(--pd-default-col);\n }\n\n .default-menu { \n transition: background-color 2s;\n }\n\n .default-menu-withteaser { \n --pd-menu-bg-col: var(--pd-spa-menu-change-col, #AFC1D2);\n --pd-menu-font-col: var(--pd-spa-menu-change-font-col, #0A3A48);\n transition: background-color 2s;\n }\n\n .default-top-menu, .default-top-menu-withteaser { \n --pd-menu-height: ${unsafeCSS(TOP_MENU_HEIGHT)}px;\n --pd-menu-font-size: 0.8em; \n --pd-menu-shadow: 0;\n }\n\n .default-top-menu-withteaser { \n --pd-menu-bg-col: var(--pd-teaser-bg-col);\n }\n\n /* needed for pd-spa-padding-top, only for pages with teaser, check if refactor possible... */\n .default-main-padding {\n padding-top: calc(var(--pd-menu-height) + var(--pd-spa-padding-top, 120px)) ;\n transition: padding-top 2s;\n }\n\n .default-main {\n padding-top: calc(var(--pd-menu-height));\n transition: padding-top 2s;\n } \n\n .default-main-withteaser {\n padding-top: calc(var(--pd-menu-height) + var(--pd-teaser-height, 380px));\n transition: padding-top 2s;\n }\n\n ` as CSSResultGroup; \n\n constructor() {\n\n super(); \n\n setRouteElement(this);\n\n const doSomething = (scrollPos:number) => {\n if (scrollPos <= 50) {\n this._teaserClosed = false;\n } else {\n this._teaserClosed = true;\n }\n };\n\n let ticking = false;\n document.addEventListener('scroll', () => {\n const lastKnownScrollPosition = window.scrollY;\n if (!ticking) {\n window.requestAnimationFrame(() => {\n doSomething(lastKnownScrollPosition);\n ticking = false;\n });\n ticking = true;\n }\n });\n\n // add login handler after init => else error is thrown\n // document.addEventListener(\"init-app-event\", this.activateLoginHandler.bind(this));\n document.addEventListener(\"init-app-event\", () => {\n console.log(\"Init event catched\");\n });\n if (navigationConfig.includeLogin) {\n this.activateLoginHandler();\n }\n\n // For common toast messages (not for callfunction toasts => handelt by own controller)\n this.addEventListener(\"toast-event\", this._createTemporaryToast);\n this.addEventListener(\"route-event\", this._handleMenuRouteEvent);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(APP_CONF_EVENT, this._setConfInDetail);\n this._subscription = pdStore().select(getLoadingSelector)\n .subscribe((loadingState) => {\n console.log(\"Loading State: \", loadingState);\n this._loadingState = loadingState;\n });\n }\n\n disconnectedCallback(): void {\n this.removeEventListener(APP_CONF_EVENT, this._setConfInDetail);\n this._subscription?.unsubscribe();\n super.disconnectedCallback();\n }\n\n _setConfInDetail(event: Event) {\n const {detail} = event as CustomEvent;\n if (detail) {\n detail.appConf = {\n ...this._appConfiguration\n };\n } \n }\n\n /**\n * Non reactive private property for the index db class.\n */\n // private _indexDBClient?: YoIndexDBClient|null; \n\n /**\n * Needed for the router.\n * Return all configured routes.\n */\n static get routes() {\n return transformedRoutes; \n }\n\n /**\n * Needed for the router.\n * Set route params to internal members.\n */\n router(route:string, params:Object, query:Object) {\n this.route = route;\n this.params = params;\n this.query = query;\n } \n\n\n /**\n * Call to activate onAuthState change with profile request callbacks.\n * Only implemented for firebase provider.\n */\n activateLoginHandler() {\n console.log(\"Activate Login Handler\"); \n const callback = (user: unknown) => {\n console.log(\"My callback user:\", user);\n this._user = user;\n if (this._user) {\n pdStore().dispatch(loginSucess());\n this._loginSuccess(new CustomEvent(\"login-success\"));\n }\n };\n authStateChangedImpl(callback);\n }\n\n render() { \n const pageConf = navigationConfig.pages.filter(p => p.name === this.route)[0];\n const hideTeaser = this._teaserClosed || !pageConf?.withTeaser;\n return html`\n <header id=\"headerElementId\" class=\"default-header\">\n ${pageConf?.hideTopMenu ? '' : this._renderTopMenu(pageConf, hideTeaser)}\n ${hideTeaser ? '' : this._renderTeaser()}\n ${pageConf?.hideMenu ? '' : this._renderMenu(pageConf, hideTeaser)}\n </header> \n\n <main class=\"${this._getMainClass(hideTeaser, pageConf)}\">\n\n ${this._loadingState ? html`<pd-loading-state .loadingState=\"${this._loadingState}\"></pd-loading-state>` : ''}\n\n <app-main active-route=${this.route}\n @init-menu-sections=\"${this._initMenuSections}\"\n @login-success=\"${this._loginSuccess}\">\n ${this._renderRoutePages()}\n ${navigationConfig.includeLogin ? html`\n <default-login ?active=\"${this.route === \"login\"}\" route=\"login\"></default-login>` : ''}\n </app-main>\n </main>\n\n ${this.functionsController.render({\n complete: (result: FunctionResult) => this._renderSuccessResultInfo(result),\n initial: () => '',\n pending: () => this._renderPendingInfo(),\n error: (e: any) => this._renderErrorInfo(e),\n })}\n\n ${pageConf?.withFooter ? html`\n <footer class=\"default-footer\">\n ${this._renderFooter()}\n </footer>` : ''}\n `;\n } \n\n // eslint-disable-next-line class-methods-use-this\n private _getMainClass(hideTeaser: boolean, pageConf: NavigationPage): string {\n if (hideTeaser) { \n if (!pageConf) {\n return \"default-main\";\n }\n // eslint-disable-next-line no-nested-ternary\n return pageConf.mainClass ? pageConf.mainClass : (pageConf.withTeaser ? \"default-main-padding\" : \"default-main\");\n }\n return \"default-main-withteaser\";\n }\n\n _renderMenu(pageConfig:NavigationPage, hideTeaser:boolean) {\n const menuForPage = pageConfig ? (pageConfig.menu || []) : [];\n return menuForPage ? html`\n <pd-menu\n id=\"pdHelperMenuId\"\n class=\"${hideTeaser ? \"default-menu\" : \"default-menu-withteaser\"}\"\n @locale-change=\"${this._localeChange}\"\n selectedLocale=\"${this._selectedLocale}\"\n .locales=${this._singleLocaleMenu ? this._availableLocales : []}\n .menuItems=${menuForPage}\n .topMenuItems=${[]}\n activeRoute=\"${this.route}\"\n headerSize=\"${this._getHeaderSize(hideTeaser) + TOP_MENU_HEIGHT}\"\n >\n ${hideTeaser ? this._getAppLogo() : ''}\n </pd-menu>\n ` : '';\n } \n\n _renderTopMenu(pageConfig:NavigationPage, hideTeaser:boolean) {\n const topMenuForPage = pageConfig ? pageConfig.topMenuItems : undefined;\n return topMenuForPage ? html`\n <pd-menu \n id=\"pdHelperTopMenuId\"\n noBurgerMenu\n @locale-change=\"${this._localeChange}\"\n class=\"${hideTeaser ? \"default-top-menu\" : \"default-top-menu-withteaser\"}\" \n .locales=${this._availableLocales}\n selectedLocale=\"${this._selectedLocale}\"\n .topMenuItems=${topMenuForPage}\n activeRoute=\"${this.route}\"\n >\n </pd-menu>\n ` : '';\n }\n\n // eslint-disable-next-line class-methods-use-this\n _renderTeaser(): TemplateResult | string {\n const teaserContent = this._getTeaserContent();\n if (!teaserContent || teaserContent.length <= 0) {\n return '';\n }\n return html`\n <pd-panel-viewer class=\"default-teaser\" id=\"teaserPanelViewerId\" deltaCalc=\"4\">\n ${teaserContent.map(content => html`\n <pd-panel>\n ${content}\n </pd-panel>\n `)}\n </pd-panel-viewer>\n `;\n }\n\n _renderFooter() {\n const footer = this._getFooter();\n return html`\n <pd-footer \n class=\"default-footer\"\n .footerLinks=\"${footer.links}\"\n version=\"${footer.version}\" \n copyright=\"PD Progressive Developent UG\" \n .madeBy=\"${MADE_BY}\" \n @footer-link=\"${this._handleFooterRouteEvent}\">\n </pd-footer>\n `;\n }\n\n /**\n * Called when (any) cloud function call was finished. \n */\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n _renderSuccessResultInfo(result: FunctionResult) {\n return html`\n <pd-toast isSuccess duration=\"${TOAST_DURATION}\">\n ${this.functionsController.callDataPromise?.func.successTxt}\n </pd-toast>`;\n }\n\n /**\n * Called when (any) cloud function is currently running. \n */\n _renderPendingInfo() {\n return this.functionsController.callDataPromise?.func.fadeWindow ? html`\n <p>Überblende und lade ${this.functionsController.callDataPromise?.func.name}...</p>` \n : html`\n <pd-toast duration=\"-1\">\n ${this.functionsController.callDataPromise?.func.pendingTxt}\n </pd-toast>`; \n }\n\n /**\n * Called when (any) cloud function stopped with errors.\n */\n // eslint-disable-next-line class-methods-use-this\n _renderErrorInfo(error:any) {\n return html`\n <pd-toast isError duration=\"-1\">\n ${error}\n </pd-toast>`;\n }\n\n protected abstract _getTeaserContent(): Array<TemplateResult>;\n\n protected abstract _getFooter(): Footer;\n\n protected abstract _getAppLogo(): TemplateResult;\n\n protected abstract _renderRoutePages(): any; \n\n protected abstract _loginSuccess(e: CustomEvent): void;\n\n protected abstract _setLocale(locale:string): void;\n\n protected abstract _getHeaderSize(hideTeaser: boolean): number;\n\n _localeChange(e: CustomEvent): void {\n this._setLocale(e.detail)\n this._selectedLocale = e.detail; \n } \n \n // eslint-disable-next-line class-methods-use-this\n _handleMenuRouteEvent(e:any) {\n // test with el, to handel jumps also here, not used at the moment, same postion link problems...\n if (e.detail.el) {\n this._scrollToContent(e.detail.el);\n } else {\n PdSpaHelper._scrollToTop();\n this.navigate(e.detail.route);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n _handleFooterRouteEvent(e: CustomEvent) { \n const {linkObj} = e.detail; \n if (linkObj.link) {\n PdSpaHelper._scrollToTop();\n this.navigate(linkObj.link); \n }\n if (linkObj.action ) { \n linkObj.action();\n }\n }\n \n // eslint-disable-next-line class-methods-use-this\n _initMenuSections(e:any) {\n // add link to configuration object\n const menRefConf = navigationConfig.pages.filter(p => p.name === e.detail.name)[0];\n if (menRefConf) { \n menRefConf.menu = menRefConf.menu?.map((menuElement:MenuElement, index:number) => ({\n ...menuElement,\n ref: e.detail.menuRefs[index]\n }));\n }\n }\n\n _createTemporaryToast(e: any) {\n \n // hide existing call function toast (old one still is visible for directly incoming errors)\n this.functionsController.clear();\n \n const tmpToast = new PdToast(); \n tmpToast.isError = e.detail.isError;\n tmpToast.isSuccess = e.detail.isSuccess;\n const slotContent = document.createTextNode(e.detail.txt);\n tmpToast.appendChild(slotContent) \n\n this.shadowRoot?.appendChild(tmpToast);\n tmpToast.duration = TOAST_DURATION;\n\n // set timeout to remove toast (one second later)\n setTimeout(() => {\n this.shadowRoot?.removeChild(tmpToast);\n }, TOAST_DURATION + 1000);\n }\n\n static _scrollToTop() {\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth',\n });\n }\n\n // Test, not used at the moment, jump/menu problem...\n // eslint-disable-next-line class-methods-use-this\n _scrollToContent(el:HTMLElement) {\n if (el) {\n const rect = el.getBoundingClientRect();\n console.log(\"Rect: \", rect);\n console.log(\"Offset Top/Height: \", el.offsetTop, el.offsetHeight);\n window.scrollBy({\n top: rect.top - (this._teaserClosed ? 80 : 450),\n left: 0,\n behavior: 'smooth',\n });\n }\n }\n\n}"]}
1
+ {"version":3,"file":"PdSpaHelper.js","sourceRoot":"","sources":["../../src/PdSpaHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, css, CSSResultGroup, TemplateResult, unsafeCSS } from 'lit';\nimport { router, navigator } from 'lit-element-router';\nimport { property } from 'lit/decorators.js';\n\nimport { Subscription } from 'rxjs';\n\nimport { FirebaseApp } from 'firebase/app';\n\nimport '@progressive-development/pd-page/pd-menu.js';\nimport '@progressive-development/pd-page/pd-footer.js';\n\nimport { ServiceCallController } from './service-call-controller2.js';\nimport { initializeStore, pdStore } from './store/mini-rx.store.js';\n\nimport { authStateChangedImpl, initAppImpl, isAuthenticatedImpl, setServiceProvider } from './service-provider/service-provider-impl.js';\nimport { AppConfiguration, Footer, FunctionResult, MenuElement, NavigationConfig, NavigationPage } from './service-provider/service-provider-model.js';\n\nimport { getLoadingSelector } from './store/spa-app-selector.js';\nimport { setRouteElement } from './store/spa-app-effects.js';\nimport { APP_CONF_EVENT, LoadingState } from './model/spa-model.js';\nimport { loginSucess } from './store/spa-app-actions.js';\n\nimport './router/AppMain.js';\nimport './defaultpage/default-login.js';\nimport './tmpown/pd-panel-viewer.js';\nimport './tmpown/pd-panel.js';\n// eslint-disable-next-line import/no-duplicates\nimport './tmpown/pd-toast.js';\nimport './tmpown/pd-loading-state.js';\n\n// TODO: How to solve this import problem?\n// eslint-disable-next-line import/no-duplicates\nimport { PdToast } from './tmpown/pd-toast.js';\n\n\n// Footer Text\nconst MADE_BY = {\n txt: \"made by PD Progressive Development\",\n email: \"info@progressive-development.com\"};\n\n// Visible time for time-limited toast\nconst TOAST_DURATION = 6000;\n\n\n/**\n * Transformed routes, generated during startInit.\n */\nlet app:FirebaseApp | undefined;\nlet transformedRoutes:Array<any>;\nlet navigationConfig:NavigationConfig;\n\n/**\n * Internal helper functions to generate route elemets for lit-router. \n */\nconst transformRoutes = () => {\n\n const transformAuthConfig = (withAuth:boolean) => \n withAuth ? \n {\n unauthenticated: {\n name: 'login',\n },\n authenticate: () => new Promise((resolve, reject) => {\n resolve(isAuthenticatedImpl());\n }),\n } : undefined;\n\n let generatedRoutes:Array<any> = [];\n navigationConfig.pages.forEach(cfEntry => {\n const addAraay = cfEntry.pattern.map(routeMapPattern => (\n {\n name: cfEntry.name,\n pattern: routeMapPattern,\n authentication: transformAuthConfig(cfEntry.auth),\n }\n )); \n generatedRoutes = generatedRoutes.concat(addAraay);\n });\n \n // add not-found route\n generatedRoutes.push({\n name: 'not-found',\n pattern: '*',\n });\n\n return generatedRoutes;\n}\n\n\n/**\n * Init the firebase app and application services like\n * functions and firestore. Generate routes from navigationConfig.\n * \n * @param navigationConfig\n * @param firebaseConfig\n * @param functionsConfig\n */\nexport const startInit = (config: AppConfiguration) => {\n\n console.log(\"Start init for config: \", config);\n\n // set service provider\n setServiceProvider(config.serviceProvider);\n \n // init mini-rx store\n if (config.storeConfigParam) {\n initializeStore(config.storeConfigParam);\n }\n\n // init app\n initAppImpl(config);\n\n // add login route if set in config\n if (config.navigationConfigParam.includeLogin) {\n config.navigationConfigParam.pages.push({\n name: \"login\",\n menu: [\n {key: \"login\", name: \"Login\"}\n ],\n pattern: [\"login\"],\n auth: false\n });\n }\n\n // generate routes from navigation config\n navigationConfig = config.navigationConfigParam;\n transformedRoutes = transformRoutes(); \n\n // init ready, trigger by even (if getAuth is called before, error is thrown) \n document.dispatchEvent(new CustomEvent(\"init-app-event\"));\n console.log(\"Init done, Event created\");\n\n};\n\nconst TOP_MENU_HEIGHT = 50;\n\n/**\n * Abstract class for SPAs. Extend within the app main class.\n */\nexport abstract class PdSpaHelper extends router(navigator(LitElement)) {\n\n protected functionsController = new ServiceCallController(this);\n\n protected abstract _appConfiguration: any;\n\n // not used at the moment\n @property({ type: String }) \n title = 'Hey there';\n\n /**\n * Properties needed for login/profile data.\n */\n @property({ type: Object, state: true }) \n _user: unknown | undefined;\n\n @property({ type: Object, state: true }) \n _profile: any | undefined;\n\n @property({ type: Object, state: true }) \n _loadingState: LoadingState[] = [];\n \n /**\n * Properties needed for the router.\n */\n @property({ type: String, reflect: true }) \n route = \"\";\n\n @property({ type: Object }) \n params = {};\n\n @property({ type: Object }) \n query = {};\n\n /**\n * Indicates if the teaser should closed (depends on scroll position).\n */\n @property({ type: Boolean })\n _teaserClosed = false; \n\n\n @property({ type: String, state: true })\n abstract _selectedLocale: string;\n\n abstract _availableLocales: string[];\n\n protected _singleLocaleMenu: boolean = false;\n\n // subscription for loading-state selector\n _subscription?: Subscription; \n\n static styles = \n // Ref: Additional use classmap to add custom classes in concrete impl\n css`\n\n :host {\n display: flex;\n flex-flow: column;\n height: 100%;\n }\n\n header {\n flex-grow: 0;\n }\n\n main {\n flex-grow: 1;\n flex-basis: max-content;\n }\n\n footer {\n flex-grow: 0;\n }\n\n .default-header {\n width: 100%;\n position: fixed;\n top: 0;\n display: block;\n z-index: 99;\n }\n\n .default-teaser {\n --pd-panel-overflow: hidden;\n --pd-panel-height: var(--pd-teaser-height, 380px);\n --pd-panel-width: 100%; \n --pd-panel-border-radius: 0;\n --pd-panel-bg: var(--pd-default-col);\n --pd-panel-viewer-bg-col: var(--pd-default-col);\n }\n\n .default-menu { \n transition: background-color 2s;\n }\n\n .default-menu-withteaser { \n --pd-menu-bg-col: var(--pd-spa-menu-change-col, #AFC1D2);\n --pd-menu-font-col: var(--pd-spa-menu-change-font-col, #0A3A48);\n transition: background-color 2s;\n }\n\n .default-top-menu, .default-top-menu-withteaser { \n --pd-menu-height: ${unsafeCSS(TOP_MENU_HEIGHT)}px;\n --pd-menu-font-size: 0.8em; \n --pd-menu-shadow: 0;\n }\n\n .default-top-menu-withteaser { \n --pd-menu-bg-col: var(--pd-teaser-bg-col);\n }\n\n /* needed for pd-spa-padding-top, only for pages with teaser, check if refactor possible... */\n .default-main-padding {\n padding-top: calc(var(--pd-menu-height) + var(--pd-spa-padding-top, 120px)) ;\n transition: padding-top 2s;\n }\n\n .default-main {\n padding-top: calc(var(--pd-menu-height));\n transition: padding-top 2s;\n } \n\n .default-main-withteaser {\n padding-top: calc(var(--pd-menu-height) + var(--pd-teaser-height, 380px));\n transition: padding-top 2s;\n }\n\n ` as CSSResultGroup; \n\n constructor() {\n\n super(); \n\n setRouteElement(this);\n\n const doSomething = (scrollPos:number) => {\n if (scrollPos <= 50) {\n this._teaserClosed = false;\n } else {\n this._teaserClosed = true;\n }\n };\n\n let ticking = false;\n document.addEventListener('scroll', () => {\n const lastKnownScrollPosition = window.scrollY;\n if (!ticking) {\n window.requestAnimationFrame(() => {\n doSomething(lastKnownScrollPosition);\n ticking = false;\n });\n ticking = true;\n }\n });\n\n // add login handler after init => else error is thrown\n // document.addEventListener(\"init-app-event\", this.activateLoginHandler.bind(this));\n document.addEventListener(\"init-app-event\", () => {\n console.log(\"Init event catched\");\n });\n if (navigationConfig.includeLogin) {\n this.activateLoginHandler();\n }\n\n // For common toast messages (not for callfunction toasts => handelt by own controller)\n this.addEventListener(\"toast-event\", this._createTemporaryToast);\n this.addEventListener(\"route-event\", this._handleMenuRouteEvent);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(APP_CONF_EVENT, this._setConfInDetail);\n this._subscription = pdStore().select(getLoadingSelector)\n .subscribe((loadingState) => {\n console.log(\"Loading State: \", loadingState);\n this._loadingState = loadingState || [];\n });\n }\n\n disconnectedCallback(): void {\n this.removeEventListener(APP_CONF_EVENT, this._setConfInDetail);\n this._subscription?.unsubscribe();\n super.disconnectedCallback();\n }\n\n _setConfInDetail(event: Event) {\n const {detail} = event as CustomEvent;\n if (detail) {\n detail.appConf = {\n ...this._appConfiguration\n };\n } \n }\n\n /**\n * Non reactive private property for the index db class.\n */\n // private _indexDBClient?: YoIndexDBClient|null; \n\n /**\n * Needed for the router.\n * Return all configured routes.\n */\n static get routes() {\n return transformedRoutes; \n }\n\n /**\n * Needed for the router.\n * Set route params to internal members.\n */\n router(route:string, params:Object, query:Object) {\n this.route = route;\n this.params = params;\n this.query = query;\n } \n\n\n /**\n * Call to activate onAuthState change with profile request callbacks.\n * Only implemented for firebase provider.\n */\n activateLoginHandler() {\n console.log(\"Activate Login Handler\"); \n const callback = (user: unknown) => {\n console.log(\"My callback user:\", user);\n this._user = user;\n if (this._user) {\n pdStore().dispatch(loginSucess());\n this._loginSuccess(new CustomEvent(\"login-success\"));\n }\n };\n authStateChangedImpl(callback);\n }\n\n render() { \n const pageConf = navigationConfig.pages.filter(p => p.name === this.route)[0];\n const hideTeaser = this._teaserClosed || !pageConf?.withTeaser;\n return html`\n <header id=\"headerElementId\" class=\"default-header\">\n ${pageConf?.hideTopMenu ? '' : this._renderTopMenu(pageConf, hideTeaser)}\n ${hideTeaser ? '' : this._renderTeaser()}\n ${pageConf?.hideMenu ? '' : this._renderMenu(pageConf, hideTeaser)}\n </header> \n\n <main class=\"${this._getMainClass(hideTeaser, pageConf)}\">\n\n ${this._loadingState.map(ls => html`<pd-loading-state .loadingState=\"${ls}\"></pd-loading-state>`)}\n\n <app-main active-route=${this.route}\n @init-menu-sections=\"${this._initMenuSections}\"\n @login-success=\"${this._loginSuccess}\">\n ${this._renderRoutePages()}\n ${navigationConfig.includeLogin ? html`\n <default-login ?active=\"${this.route === \"login\"}\" route=\"login\"></default-login>` : ''}\n </app-main>\n </main>\n\n ${this.functionsController.render({\n complete: (result: FunctionResult) => this._renderSuccessResultInfo(result),\n initial: () => '',\n pending: () => this._renderPendingInfo(),\n error: (e: any) => this._renderErrorInfo(e),\n })}\n\n ${pageConf?.withFooter ? html`\n <footer class=\"default-footer\">\n ${this._renderFooter()}\n </footer>` : ''}\n `;\n } \n \n // eslint-disable-next-line class-methods-use-this\n private _getMainClass(hideTeaser: boolean, pageConf: NavigationPage): string {\n if (hideTeaser) { \n if (!pageConf) {\n return \"default-main\";\n }\n // eslint-disable-next-line no-nested-ternary\n return pageConf.mainClass ? pageConf.mainClass : (pageConf.withTeaser ? \"default-main-padding\" : \"default-main\");\n }\n return \"default-main-withteaser\";\n }\n\n _renderMenu(pageConfig:NavigationPage, hideTeaser:boolean) {\n const menuForPage = pageConfig ? (pageConfig.menu || []) : [];\n return menuForPage ? html`\n <pd-menu\n id=\"pdHelperMenuId\"\n class=\"${hideTeaser ? \"default-menu\" : \"default-menu-withteaser\"}\"\n @locale-change=\"${this._localeChange}\"\n selectedLocale=\"${this._selectedLocale}\"\n .locales=${this._singleLocaleMenu ? this._availableLocales : []}\n .menuItems=${menuForPage}\n .topMenuItems=${[]}\n activeRoute=\"${this.route}\"\n headerSize=\"${this._getHeaderSize(hideTeaser) + TOP_MENU_HEIGHT}\"\n >\n ${hideTeaser ? this._getAppLogo() : ''}\n </pd-menu>\n ` : '';\n } \n\n _renderTopMenu(pageConfig:NavigationPage, hideTeaser:boolean) {\n const topMenuForPage = pageConfig ? pageConfig.topMenuItems : undefined;\n return topMenuForPage ? html`\n <pd-menu \n id=\"pdHelperTopMenuId\"\n noBurgerMenu\n @locale-change=\"${this._localeChange}\"\n class=\"${hideTeaser ? \"default-top-menu\" : \"default-top-menu-withteaser\"}\" \n .locales=${this._availableLocales}\n selectedLocale=\"${this._selectedLocale}\"\n .topMenuItems=${topMenuForPage}\n activeRoute=\"${this.route}\"\n >\n </pd-menu>\n ` : '';\n }\n\n // eslint-disable-next-line class-methods-use-this\n _renderTeaser(): TemplateResult | string {\n const teaserContent = this._getTeaserContent();\n if (!teaserContent || teaserContent.length <= 0) {\n return '';\n }\n return html`\n <pd-panel-viewer class=\"default-teaser\" id=\"teaserPanelViewerId\" deltaCalc=\"4\">\n ${teaserContent.map(content => html`\n <pd-panel>\n ${content}\n </pd-panel>\n `)}\n </pd-panel-viewer>\n `;\n }\n\n _renderFooter() {\n const footer = this._getFooter();\n return html`\n <pd-footer \n class=\"default-footer\"\n .footerLinks=\"${footer.links}\"\n version=\"${footer.version}\" \n copyright=\"PD Progressive Developent UG\" \n .madeBy=\"${MADE_BY}\" \n @footer-link=\"${this._handleFooterRouteEvent}\">\n </pd-footer>\n `;\n }\n\n /**\n * Called when (any) cloud function call was finished. \n */\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n _renderSuccessResultInfo(result: FunctionResult) {\n return html`\n <pd-toast isSuccess duration=\"${TOAST_DURATION}\">\n ${this.functionsController.callDataPromise?.func.successTxt}\n </pd-toast>`;\n }\n\n /**\n * Called when (any) cloud function is currently running. \n */\n _renderPendingInfo() {\n return this.functionsController.callDataPromise?.func.fadeWindow ? html`\n <p>Überblende und lade ${this.functionsController.callDataPromise?.func.name}...</p>` \n : html`\n <pd-toast duration=\"-1\">\n ${this.functionsController.callDataPromise?.func.pendingTxt}\n </pd-toast>`; \n }\n\n /**\n * Called when (any) cloud function stopped with errors.\n */\n // eslint-disable-next-line class-methods-use-this\n _renderErrorInfo(error:any) {\n return html`\n <pd-toast isError duration=\"-1\">\n ${error}\n </pd-toast>`;\n }\n\n protected abstract _getTeaserContent(): Array<TemplateResult>;\n\n protected abstract _getFooter(): Footer;\n\n protected abstract _getAppLogo(): TemplateResult;\n\n protected abstract _renderRoutePages(): any; \n\n protected abstract _loginSuccess(e: CustomEvent): void;\n\n protected abstract _setLocale(locale:string): void;\n\n protected abstract _getHeaderSize(hideTeaser: boolean): number;\n\n _localeChange(e: CustomEvent): void {\n this._setLocale(e.detail)\n this._selectedLocale = e.detail; \n } \n \n // eslint-disable-next-line class-methods-use-this\n _handleMenuRouteEvent(e:any) {\n // test with el, to handel jumps also here, not used at the moment, same postion link problems...\n if (e.detail.el) {\n this._scrollToContent(e.detail.el);\n } else {\n PdSpaHelper._scrollToTop();\n this.navigate(e.detail.route);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n _handleFooterRouteEvent(e: CustomEvent) { \n const {linkObj} = e.detail; \n if (linkObj.link) {\n PdSpaHelper._scrollToTop();\n this.navigate(linkObj.link); \n }\n if (linkObj.action ) { \n linkObj.action();\n }\n }\n \n // eslint-disable-next-line class-methods-use-this\n _initMenuSections(e:any) {\n // add link to configuration object\n const menRefConf = navigationConfig.pages.filter(p => p.name === e.detail.name)[0];\n if (menRefConf) { \n menRefConf.menu = menRefConf.menu?.map((menuElement:MenuElement, index:number) => ({\n ...menuElement,\n ref: e.detail.menuRefs[index]\n }));\n }\n }\n\n _createTemporaryToast(e: any) {\n \n // hide existing call function toast (old one still is visible for directly incoming errors)\n this.functionsController.clear();\n \n const tmpToast = new PdToast(); \n tmpToast.isError = e.detail.isError;\n tmpToast.isSuccess = e.detail.isSuccess;\n const slotContent = document.createTextNode(e.detail.txt);\n tmpToast.appendChild(slotContent) \n\n this.shadowRoot?.appendChild(tmpToast);\n tmpToast.duration = TOAST_DURATION;\n\n // set timeout to remove toast (one second later)\n setTimeout(() => {\n this.shadowRoot?.removeChild(tmpToast);\n }, TOAST_DURATION + 1000);\n }\n\n static _scrollToTop() {\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth',\n });\n }\n\n // Test, not used at the moment, jump/menu problem...\n // eslint-disable-next-line class-methods-use-this\n _scrollToContent(el:HTMLElement) {\n if (el) {\n const rect = el.getBoundingClientRect();\n console.log(\"Rect: \", rect);\n console.log(\"Offset Top/Height: \", el.offsetTop, el.offsetHeight);\n window.scrollBy({\n top: rect.top - (this._teaserClosed ? 80 : 450),\n left: 0,\n behavior: 'smooth',\n });\n }\n }\n\n}"]}
@@ -1,6 +1,7 @@
1
1
  export declare const APP_CONF_EVENT = "get-app-conf";
2
2
  export interface LoadingState {
3
3
  isLoading: boolean;
4
+ actionKey: string;
4
5
  modal?: boolean;
5
6
  smallBackground?: boolean;
6
7
  loadingTxt?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"spa-model.js","sourceRoot":"","sources":["../../../src/model/spa-model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC","sourcesContent":["export const APP_CONF_EVENT = \"get-app-conf\";\n\nexport interface LoadingState {\n isLoading: boolean,\n modal?: boolean,\n smallBackground?: boolean,\n loadingTxt?: string\n}"]}
1
+ {"version":3,"file":"spa-model.js","sourceRoot":"","sources":["../../../src/model/spa-model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC","sourcesContent":["export const APP_CONF_EVENT = \"get-app-conf\";\n\nexport interface LoadingState {\n isLoading: boolean,\n actionKey: string\n modal?: boolean,\n smallBackground?: boolean,\n loadingTxt?: string,\n}"]}
@@ -1,5 +1,5 @@
1
1
  export declare const logoutMock: () => Promise<boolean>;
2
2
  export declare const isAuthenticatedMock: () => boolean;
3
3
  export declare const getAuthUserMock: () => unknown;
4
- export declare const authStateChangedMock: () => void;
4
+ export declare const authStateChangedMock: (callback: Function) => void;
5
5
  export declare const loginMock: (user: string, sec: string) => Promise<unknown>;
@@ -31,8 +31,13 @@ export const getAuthUserMock = () => isAuthenticatedMock() ? {
31
31
  uid: "34234234",
32
32
  displayName: "userMockName"
33
33
  } : undefined;
34
- export const authStateChangedMock = () => {
35
- console.log("Not implemented for MOCK");
34
+ let callbackLogin;
35
+ export const authStateChangedMock = (callback) => {
36
+ callbackLogin = callback;
37
+ console.log("Not implemented for MOCK, do call once if authenticated");
38
+ if (isAuthenticatedMock()) {
39
+ callbackLogin(getAuthUserMock());
40
+ }
36
41
  };
37
42
  export const loginMock = async (user, sec) => {
38
43
  console.log('MOCK: do authentication for user: ', user);
@@ -45,9 +50,11 @@ export const loginMock = async (user, sec) => {
45
50
  loginAvailable = true;
46
51
  }
47
52
  if (valid) {
48
- return Promise.resolve({
49
- uid: "123124"
50
- });
53
+ const userMock = getAuthUserMock();
54
+ if (callbackLogin) {
55
+ callbackLogin(userMock);
56
+ }
57
+ return Promise.resolve(user);
51
58
  }
52
59
  const err = new Error("Invalid login");
53
60
  const error = err;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/service-provider/mock/auth.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAChD,MAAM,aAAa,GAAG,MAAM,CAAC;AAI7B,IAAI,cAAmC,CAAC;AAGxC,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,QAAQ,GAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5D,OAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAsB,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,cAAc,GAAG,SAAS,CAAC;IAC3B,IAAI,gBAAgB,EAAE;QAClB,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;KAChD;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IAC/C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KAC/D;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAC3C,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACtB,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC,CAAC,SAAS,CAAC;AAGhB,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAW,EAAE,GAAU,EAAoB,EAAE;IAE3E,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,KAAK,cAAc,IAAI,GAAG,KAAK,aAAa,EAAE;QAClD,IAAI,gBAAgB,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;SACrD;QACD,KAAK,GAAG,IAAI,CAAC;QACb,cAAc,GAAG,IAAI,CAAC;KACzB;IAED,IAAI,KAAK,EAAE;QACT,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;KACJ;IAED,MAAM,GAAG,GAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,KAAK,GAAQ,GAAG,CAAC;IACvB,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,MAAM,KAAK,CAAC;AACd,CAAC,CAAA","sourcesContent":["\n/*\n * Only for temporary development:\n * Set to true/false if the user should hold only in session (login after each reload)\n * or in the localstore (login until the local store entry is invalid or not available).\n */\nconst LOCALSTORE_ACTIV = true;\nconst LOCALSTORE_ITEM_KEY = 'pdUserLogin';\nconst HARDCODED_USER = 'mock@pd-spa-helper.com';\nconst HARDCODED_PWD = 'mock';\n\n\n\nlet loginAvailable: boolean | undefined;\n\n\nconst checkLocalStore = () => {\n const userItem = localStorage.getItem(LOCALSTORE_ITEM_KEY);\n return userItem === 'true';\n}\n\n\nexport const logoutMock = async (): Promise<boolean> => {\n console.log(\"Do MOCK logout\");\n loginAvailable = undefined;\n if (LOCALSTORE_ACTIV) {\n localStorage.removeItem(LOCALSTORE_ITEM_KEY);\n }\n return Promise.resolve(true);\n};\n\nexport const isAuthenticatedMock = (): boolean => {\n if (loginAvailable === undefined) {\n console.log('MOCK: check authentication');\n loginAvailable = LOCALSTORE_ACTIV ? checkLocalStore() : false;\n }\n return loginAvailable;\n} \n\nexport const getAuthUserMock = (): unknown => \n isAuthenticatedMock() ? {\n uid: \"34234234\",\n displayName: \"userMockName\"\n } : undefined;\n\n\nexport const authStateChangedMock = () => {\n console.log(\"Not implemented for MOCK\");\n}\n\nexport const loginMock = async (user:string, sec:string): Promise<unknown> => { \n\n console.log('MOCK: do authentication for user: ', user);\n let valid = false;\n if (user === HARDCODED_USER && sec === HARDCODED_PWD) {\n if (LOCALSTORE_ACTIV) {\n localStorage.setItem(LOCALSTORE_ITEM_KEY, 'true');\n }\n valid = true;\n loginAvailable = true;\n }\n\n if (valid) {\n return Promise.resolve({\n uid: \"123124\"\n }); \n }\n\n const err = new Error(\"Invalid login\");\n const error: any = err;\n error.code = \"auth/wrong-password\";\n throw error;\n}\n\n\n\n\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/service-provider/mock/auth.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAChD,MAAM,aAAa,GAAG,MAAM,CAAC;AAI7B,IAAI,cAAmC,CAAC;AAGxC,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,QAAQ,GAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5D,OAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAsB,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,cAAc,GAAG,SAAS,CAAC;IAC3B,IAAI,gBAAgB,EAAE;QAClB,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;KAChD;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IAC/C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KAC/D;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAC3C,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACtB,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC,CAAC,SAAS,CAAC;AAGhB,IAAI,aAAuB,CAAC;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;IACzD,aAAa,GAAG,QAAQ,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,IAAI,mBAAmB,EAAE,EAAE;QACzB,aAAa,CAAC,eAAe,EAAE,CAAC,CAAA;KACjC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAW,EAAE,GAAU,EAAoB,EAAE;IAE3E,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,KAAK,cAAc,IAAI,GAAG,KAAK,aAAa,EAAE;QAClD,IAAI,gBAAgB,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;SACrD;QACD,KAAK,GAAG,IAAI,CAAC;QACb,cAAc,GAAG,IAAI,CAAC;KACzB;IAED,IAAI,KAAK,EAAE;QAET,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,QAAQ,CAAC,CAAA;SACxB;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,MAAM,GAAG,GAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,KAAK,GAAQ,GAAG,CAAC;IACvB,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,MAAM,KAAK,CAAC;AACd,CAAC,CAAA","sourcesContent":["import { pdStore } from \"../../store/mini-rx.store\";\n\n/*\n * Only for temporary development:\n * Set to true/false if the user should hold only in session (login after each reload)\n * or in the localstore (login until the local store entry is invalid or not available).\n */\nconst LOCALSTORE_ACTIV = true;\nconst LOCALSTORE_ITEM_KEY = 'pdUserLogin';\nconst HARDCODED_USER = 'mock@pd-spa-helper.com';\nconst HARDCODED_PWD = 'mock';\n\n\n\nlet loginAvailable: boolean | undefined;\n\n\nconst checkLocalStore = () => {\n const userItem = localStorage.getItem(LOCALSTORE_ITEM_KEY);\n return userItem === 'true';\n}\n\n\nexport const logoutMock = async (): Promise<boolean> => {\n console.log(\"Do MOCK logout\");\n loginAvailable = undefined;\n if (LOCALSTORE_ACTIV) {\n localStorage.removeItem(LOCALSTORE_ITEM_KEY);\n }\n return Promise.resolve(true);\n};\n\nexport const isAuthenticatedMock = (): boolean => {\n if (loginAvailable === undefined) {\n console.log('MOCK: check authentication');\n loginAvailable = LOCALSTORE_ACTIV ? checkLocalStore() : false;\n }\n return loginAvailable;\n} \n\nexport const getAuthUserMock = (): unknown => \n isAuthenticatedMock() ? {\n uid: \"34234234\",\n displayName: \"userMockName\"\n } : undefined;\n\n\nlet callbackLogin: Function;\nexport const authStateChangedMock = (callback: Function) => {\n callbackLogin = callback;\n console.log(\"Not implemented for MOCK, do call once if authenticated\");\n if (isAuthenticatedMock()) {\n callbackLogin(getAuthUserMock())\n }\n}\n\nexport const loginMock = async (user:string, sec:string): Promise<unknown> => { \n\n console.log('MOCK: do authentication for user: ', user);\n let valid = false;\n if (user === HARDCODED_USER && sec === HARDCODED_PWD) {\n if (LOCALSTORE_ACTIV) {\n localStorage.setItem(LOCALSTORE_ITEM_KEY, 'true');\n }\n valid = true;\n loginAvailable = true; \n }\n\n if (valid) {\n\n const userMock = getAuthUserMock();\n if (callbackLogin) {\n callbackLogin(userMock)\n }\n return Promise.resolve(user); \n }\n\n const err = new Error(\"Invalid login\");\n const error: any = err;\n error.code = \"auth/wrong-password\";\n throw error;\n}\n\n\n\n\n"]}
@@ -73,7 +73,7 @@ export const authStateChangedImpl = (callback) => {
73
73
  authStateChanged(callback);
74
74
  }
75
75
  else if (provider === "mock") {
76
- authStateChangedMock();
76
+ authStateChangedMock(callback);
77
77
  }
78
78
  else {
79
79
  throwUndefinedProviderError();
@@ -1 +1 @@
1
- {"version":3,"file":"service-provider-impl.js","sourceRoot":"","sources":["../../../src/service-provider/service-provider-impl.ts"],"names":[],"mappings":"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","sourcesContent":["import { FirebaseApp, FirebaseOptions, initializeApp } from \"firebase/app\";\n\nimport { authStateChanged, getAuthUser, initAuth, isAuthenticated, login, logout } from \"./firebase/auth.js\";\nimport { authStateChangedMock, getAuthUserMock, isAuthenticatedMock, loginMock, logoutMock } from \"./mock/auth.js\";\nimport { AppConfiguration, FileStorageConfig, FunctionDefinition, FunctionResult, FunctionsConfig, ServiceProviderConfiguration, StorageDocument, UploadFile } from \"./service-provider-model.js\";\nimport { callFunction, initFunctions } from \"./firebase/functions-client.js\";\nimport { initFirestore } from \"./firebase/firestore-client.js\";\nimport { callFunctionMock, initMockResponse } from \"./mock/function-client.js\";\nimport { ServiceCallController } from \"../service-call-controller2.js\";\nimport { getFirestorageFileList, initFirestorage, uploadFirestorageFile } from \"./firebase/firestorage-client.js\";\nimport { getMockFileList, initStorageMock, uploadStorageFileMock } from \"./mock/storage-client.js\";\n\nlet provider: ServiceProviderConfiguration | undefined;\nlet controller: ServiceCallController;\n\nconst throwUndefinedProviderError = () => {\n throw new Error(\"Undefined service provider, please check configuration. 'firebase' or 'mock' allowed here.\");\n}\n\n/* #####################\n * Init Implementation\n * ##################### */\n\nexport const setServiceProvider = (providerParam?: ServiceProviderConfiguration) => {\n provider = providerParam;\n}\n\nexport const initController = (controllerParam: ServiceCallController) => {\n controller = controllerParam\n}\n\nconst initFirebaseApplicationServices = (\n firebaseApp: FirebaseApp, \n functionsConfig: FunctionsConfig, \n firebaseConfig: FirebaseOptions,\n storageConfig?: FileStorageConfig, \n) => {\n // do something with the app, init db, firestore and functions \n initAuth(firebaseApp);\n initFunctions(firebaseApp, functionsConfig);\n initFirestore(firebaseApp); \n initFirestorage(firebaseApp, firebaseConfig.storageBucket, storageConfig);\n\n console.log(\"Firebase App with functions, firestore and firestorage initialized\"); \n}\n\nexport const initAppImpl = (config: AppConfiguration) => {\n\n if (provider === \"firebase\" && config.firebaseConfig) {\n const app:FirebaseApp = initializeApp(config.firebaseConfig);\n if (config.functionsConfig) { // TODO: invalid if only storage config exists\n // init application services (functions, store) \n initFirebaseApplicationServices(app, config.functionsConfig, config.firebaseConfig, config.storageConfig);\n }\n } else if (provider === \"mock\") {\n initMockResponse(config.mock);\n initStorageMock(\"default\", config.storageConfig);\n } else {\n throwUndefinedProviderError();\n }\n}\n\n/* #####################\n * Functions Implementation\n * ##################### */\nexport const callFunctionImpl = async (def: FunctionDefinition, functionInput: any): Promise<FunctionResult> => {\n \n const callController = (promise: Promise<any>) => {\n if (controller) {\n controller.callDataPromise = {func: def, promise};\n }\n }\n \n if (provider === \"firebase\") {\n const promise = callFunction(def, functionInput)\n callController(promise);\n return promise;\n } \n if (provider === \"mock\") {\n const promise = callFunctionMock(def, functionInput)\n callController(promise);\n return promise;\n }\n\n return throwUndefinedProviderError(); \n}\n\n\n\n/* #####################\n * Auth Implementation\n * ##################### */\n\n\nexport const authStateChangedImpl = (\n callback: Function\n) => {\n if (provider === \"firebase\") {\n authStateChanged(callback);\n } else if (provider === \"mock\") {\n authStateChangedMock();\n } else {\n throwUndefinedProviderError();\n }\n}\n\nexport const isAuthenticatedImpl = () => {\n if (provider === \"firebase\") {\n return isAuthenticated();\n } \n if (provider === \"mock\") {\n return isAuthenticatedMock();\n } \n return throwUndefinedProviderError(); \n}\n\nexport const loginImpl = (user: string, sec: string) => {\n\n if (!user) { \n const returnError = new Error(\"empty user\");\n return Promise.reject(returnError);\n }\n if (!sec) {\n const returnError = new Error(\"empty password\");\n return Promise.reject(returnError);\n }\n\n if (provider === \"firebase\") {\n return login(user, sec);\n } \n if (provider === \"mock\") {\n return loginMock(user, sec);\n } \n return throwUndefinedProviderError(); \n}\n\nexport const logoutImpl = () => {\n if (provider === \"firebase\") {\n return logout();\n } \n if (provider === \"mock\") {\n return logoutMock();\n } \n return throwUndefinedProviderError(); \n};\n\n// Refactor: Return defined USer Object\nexport const getUser = () => {\n if (provider === \"firebase\") {\n return getAuthUser();\n } \n if (provider === \"mock\") {\n return getAuthUserMock();\n } \n return throwUndefinedProviderError(); \n}\n\n/* #####################\n * Storage Implementation\n * ##################### */\nexport const uploadFile = (file: UploadFile): Promise<unknown> => { \n if (provider === \"firebase\") {\n return uploadFirestorageFile(file); \n } \n if (provider === \"mock\") {\n return uploadStorageFileMock(file)\n }\n return throwUndefinedProviderError(); \n}\n\nexport const getStorageFileList = (\n storageName: string, \n keyRef: string, \n subFolder?: string, \n includeMetadata?:boolean\n): Promise<StorageDocument[]> => { \n if (provider === \"firebase\") {\n return getFirestorageFileList(storageName, keyRef, subFolder, includeMetadata);\n }\n if (provider === \"mock\") {\n return getMockFileList(storageName, keyRef, subFolder, includeMetadata);\n }\n return throwUndefinedProviderError(); \n}"]}
1
+ {"version":3,"file":"service-provider-impl.js","sourceRoot":"","sources":["../../../src/service-provider/service-provider-impl.ts"],"names":[],"mappings":"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","sourcesContent":["import { FirebaseApp, FirebaseOptions, initializeApp } from \"firebase/app\";\n\nimport { authStateChanged, getAuthUser, initAuth, isAuthenticated, login, logout } from \"./firebase/auth.js\";\nimport { authStateChangedMock, getAuthUserMock, isAuthenticatedMock, loginMock, logoutMock } from \"./mock/auth.js\";\nimport { AppConfiguration, FileStorageConfig, FunctionDefinition, FunctionResult, FunctionsConfig, ServiceProviderConfiguration, StorageDocument, UploadFile } from \"./service-provider-model.js\";\nimport { callFunction, initFunctions } from \"./firebase/functions-client.js\";\nimport { initFirestore } from \"./firebase/firestore-client.js\";\nimport { callFunctionMock, initMockResponse } from \"./mock/function-client.js\";\nimport { ServiceCallController } from \"../service-call-controller2.js\";\nimport { getFirestorageFileList, initFirestorage, uploadFirestorageFile } from \"./firebase/firestorage-client.js\";\nimport { getMockFileList, initStorageMock, uploadStorageFileMock } from \"./mock/storage-client.js\";\n\nlet provider: ServiceProviderConfiguration | undefined;\nlet controller: ServiceCallController;\n\nconst throwUndefinedProviderError = () => {\n throw new Error(\"Undefined service provider, please check configuration. 'firebase' or 'mock' allowed here.\");\n}\n\n/* #####################\n * Init Implementation\n * ##################### */\n\nexport const setServiceProvider = (providerParam?: ServiceProviderConfiguration) => {\n provider = providerParam;\n}\n\nexport const initController = (controllerParam: ServiceCallController) => {\n controller = controllerParam\n}\n\nconst initFirebaseApplicationServices = (\n firebaseApp: FirebaseApp, \n functionsConfig: FunctionsConfig, \n firebaseConfig: FirebaseOptions,\n storageConfig?: FileStorageConfig, \n) => {\n // do something with the app, init db, firestore and functions \n initAuth(firebaseApp);\n initFunctions(firebaseApp, functionsConfig);\n initFirestore(firebaseApp); \n initFirestorage(firebaseApp, firebaseConfig.storageBucket, storageConfig);\n\n console.log(\"Firebase App with functions, firestore and firestorage initialized\"); \n}\n\nexport const initAppImpl = (config: AppConfiguration) => {\n\n if (provider === \"firebase\" && config.firebaseConfig) {\n const app:FirebaseApp = initializeApp(config.firebaseConfig);\n if (config.functionsConfig) { // TODO: invalid if only storage config exists\n // init application services (functions, store) \n initFirebaseApplicationServices(app, config.functionsConfig, config.firebaseConfig, config.storageConfig);\n }\n } else if (provider === \"mock\") {\n initMockResponse(config.mock);\n initStorageMock(\"default\", config.storageConfig);\n } else {\n throwUndefinedProviderError();\n }\n}\n\n/* #####################\n * Functions Implementation\n * ##################### */\nexport const callFunctionImpl = async (def: FunctionDefinition, functionInput: any): Promise<FunctionResult> => {\n \n const callController = (promise: Promise<any>) => {\n if (controller) {\n controller.callDataPromise = {func: def, promise};\n }\n }\n \n if (provider === \"firebase\") {\n const promise = callFunction(def, functionInput)\n callController(promise);\n return promise;\n } \n if (provider === \"mock\") {\n const promise = callFunctionMock(def, functionInput)\n callController(promise);\n return promise;\n }\n\n return throwUndefinedProviderError(); \n}\n\n\n\n/* #####################\n * Auth Implementation\n * ##################### */\n\n\nexport const authStateChangedImpl = (\n callback: Function\n) => {\n if (provider === \"firebase\") {\n authStateChanged(callback);\n } else if (provider === \"mock\") {\n authStateChangedMock(callback);\n } else {\n throwUndefinedProviderError();\n }\n}\n\nexport const isAuthenticatedImpl = () => {\n if (provider === \"firebase\") {\n return isAuthenticated();\n } \n if (provider === \"mock\") {\n return isAuthenticatedMock();\n } \n return throwUndefinedProviderError(); \n}\n\nexport const loginImpl = (user: string, sec: string) => {\n\n if (!user) { \n const returnError = new Error(\"empty user\");\n return Promise.reject(returnError);\n }\n if (!sec) {\n const returnError = new Error(\"empty password\");\n return Promise.reject(returnError);\n }\n\n if (provider === \"firebase\") {\n return login(user, sec);\n } \n if (provider === \"mock\") {\n return loginMock(user, sec);\n } \n return throwUndefinedProviderError(); \n}\n\nexport const logoutImpl = () => {\n if (provider === \"firebase\") {\n return logout();\n } \n if (provider === \"mock\") {\n return logoutMock();\n } \n return throwUndefinedProviderError(); \n};\n\n// Refactor: Return defined USer Object\nexport const getUser = () => {\n if (provider === \"firebase\") {\n return getAuthUser();\n } \n if (provider === \"mock\") {\n return getAuthUserMock();\n } \n return throwUndefinedProviderError(); \n}\n\n/* #####################\n * Storage Implementation\n * ##################### */\nexport const uploadFile = (file: UploadFile): Promise<unknown> => { \n if (provider === \"firebase\") {\n return uploadFirestorageFile(file); \n } \n if (provider === \"mock\") {\n return uploadStorageFileMock(file)\n }\n return throwUndefinedProviderError(); \n}\n\nexport const getStorageFileList = (\n storageName: string, \n keyRef: string, \n subFolder?: string, \n includeMetadata?:boolean\n): Promise<StorageDocument[]> => { \n if (provider === \"firebase\") {\n return getFirestorageFileList(storageName, keyRef, subFolder, includeMetadata);\n }\n if (provider === \"mock\") {\n return getMockFileList(storageName, keyRef, subFolder, includeMetadata);\n }\n return throwUndefinedProviderError(); \n}"]}
@@ -23,10 +23,17 @@ export declare const updateInternetOffline: ((payload: boolean) => {
23
23
  }) & {
24
24
  type: "SPA_APP_UPDATE_INTERNET_OFFLINE";
25
25
  };
26
- export declare const loadingStateChange: ((payload: LoadingState) => {
26
+ export declare const addLoadingState: ((payload: LoadingState) => {
27
27
  payload: LoadingState;
28
28
  } & {
29
- type: "SPA_APP_LOADING_STATE_CHANGE";
29
+ type: "SPA_APP_ADD_LOADING";
30
30
  }) & {
31
- type: "SPA_APP_LOADING_STATE_CHANGE";
31
+ type: "SPA_APP_ADD_LOADING";
32
+ };
33
+ export declare const removeLoadingState: ((payload: string) => {
34
+ payload: string;
35
+ } & {
36
+ type: "SPA_APP_REMOVE_LOADING";
37
+ }) & {
38
+ type: "SPA_APP_REMOVE_LOADING";
32
39
  };
@@ -3,5 +3,6 @@ export const initIndexDBSucess = action('SPA_INIT_INDEX_DB_SUCCESS');
3
3
  export const loginSucess = action('SPA_LOGIN_SUCCESS');
4
4
  export const routeAction = action('SPA_APP_ROUTE', payload());
5
5
  export const updateInternetOffline = action('SPA_APP_UPDATE_INTERNET_OFFLINE', payload());
6
- export const loadingStateChange = action('SPA_APP_LOADING_STATE_CHANGE', payload());
6
+ export const addLoadingState = action('SPA_APP_ADD_LOADING', payload());
7
+ export const removeLoadingState = action('SPA_APP_REMOVE_LOADING', payload());
7
8
  //# sourceMappingURL=spa-app-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spa-app-actions.js","sourceRoot":"","sources":["../../../src/store/spa-app-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,EAAE,OAAO,EAAU,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,iCAAiC,EAAE,OAAO,EAAW,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,8BAA8B,EAAE,OAAO,EAAgB,CAAC,CAAC","sourcesContent":["import { action, payload } from 'ts-action';\nimport { LoadingState } from '../model/spa-model.js';\n\nexport const initIndexDBSucess = action('SPA_INIT_INDEX_DB_SUCCESS');\nexport const loginSucess = action('SPA_LOGIN_SUCCESS');\n\nexport const routeAction = action('SPA_APP_ROUTE', payload<string>());\n\nexport const updateInternetOffline = action('SPA_APP_UPDATE_INTERNET_OFFLINE', payload<boolean>());\n\nexport const loadingStateChange = action('SPA_APP_LOADING_STATE_CHANGE', payload<LoadingState>());"]}
1
+ {"version":3,"file":"spa-app-actions.js","sourceRoot":"","sources":["../../../src/store/spa-app-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,EAAE,OAAO,EAAU,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,iCAAiC,EAAE,OAAO,EAAW,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,EAAE,OAAO,EAAgB,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,wBAAwB,EAAE,OAAO,EAAU,CAAC,CAAC","sourcesContent":["import { action, payload } from 'ts-action';\nimport { LoadingState } from '../model/spa-model.js';\n\nexport const initIndexDBSucess = action('SPA_INIT_INDEX_DB_SUCCESS');\nexport const loginSucess = action('SPA_LOGIN_SUCCESS');\n\nexport const routeAction = action('SPA_APP_ROUTE', payload<string>());\n\nexport const updateInternetOffline = action('SPA_APP_UPDATE_INTERNET_OFFLINE', payload<boolean>());\n\nexport const addLoadingState = action('SPA_APP_ADD_LOADING', payload<LoadingState>());\nexport const removeLoadingState = action('SPA_APP_REMOVE_LOADING', payload<string>());"]}
@@ -1,7 +1,7 @@
1
1
  import { LoadingState } from '../model/spa-model.js';
2
2
  export interface SpaAppState {
3
3
  offline?: boolean;
4
- loadingState?: LoadingState;
4
+ loadingState: LoadingState[];
5
5
  lastRoutes?: any[];
6
6
  initIndexDB?: boolean;
7
7
  userLogin?: boolean;
@@ -1,18 +1,24 @@
1
1
  import { on, reducer } from 'ts-action';
2
- import { initIndexDBSucess, loadingStateChange, loginSucess, routeAction, updateInternetOffline } from './spa-app-actions.js';
3
- const initialState = {};
2
+ import { initIndexDBSucess, addLoadingState, loginSucess, routeAction, updateInternetOffline, removeLoadingState } from './spa-app-actions.js';
3
+ const initialState = {
4
+ loadingState: [],
5
+ };
4
6
  export const spaAppReducer = reducer(initialState, on(updateInternetOffline, (state, { payload }) => ({
5
7
  ...state,
6
8
  offline: payload
7
- })), on(loadingStateChange, (state, { payload }) => ({
9
+ })), on(addLoadingState, (state, { payload }) => ({
8
10
  ...state,
9
- loadingState: payload ? {
10
- isLoading: payload.isLoading,
11
- smallBackground: payload.smallBackground,
12
- modal: payload.modal,
13
- txt: payload.loadingTxt,
14
- } : undefined
15
- })), on(routeAction, (state, { payload }) => ({
11
+ loadingState: [
12
+ ...(state.loadingState),
13
+ payload
14
+ ]
15
+ })), on(removeLoadingState, (state, { payload }) => {
16
+ var _a;
17
+ return ({
18
+ ...state,
19
+ loadingState: (_a = state.loadingState) === null || _a === void 0 ? void 0 : _a.filter(a => a.actionKey !== payload)
20
+ });
21
+ }), on(routeAction, (state, { payload }) => ({
16
22
  ...state,
17
23
  lastRoutes: [
18
24
  ...(state.lastRoutes || []),
@@ -1 +1 @@
1
- {"version":3,"file":"spa-app-reducer.js","sourceRoot":"","sources":["../../../src/store/spa-app-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAW9H,MAAM,YAAY,GAAgB,EAEjC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAClC,YAAY,EAEZ,EAAE,CAAE,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAE,CAChD;IACE,GAAG,KAAK;IACR,OAAO,EAAE,OAAO;CACjB,CACF,CAAC,EAEF,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,CAC3C;IACE,GAAG,KAAK;IACR,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,EAAE,OAAO,CAAC,UAAU;KACxB,CAAC,CAAC,CAAC,SAAS;CACd,CACF,CAAC,EAEF,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,CACpC;IACE,GAAG,KAAK;IACR,UAAU,EAAE;QACV,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3B,OAAO;KACR;CACF,CACF,CAAC,EAEF,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/B;IACE,GAAG,KAAK;IACR,WAAW,EAAE,IAAI;CAClB,CACF,CAAC,EAEF,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACzB;IACE,GAAG,KAAK;IACR,SAAS,EAAE,IAAI;CAChB,CACF,CAAC,CAEH,CAAC","sourcesContent":["import { on, reducer } from 'ts-action';\n\nimport { initIndexDBSucess, loadingStateChange, loginSucess, routeAction, updateInternetOffline } from './spa-app-actions.js';\nimport { LoadingState } from '../model/spa-model.js';\n\nexport interface SpaAppState {\n offline?: boolean,\n loadingState?: LoadingState;\n lastRoutes?: any[];\n initIndexDB?: boolean;\n userLogin?: boolean;\n}\n\nconst initialState: SpaAppState = { \n \n};\n\nexport const spaAppReducer = reducer(\n initialState,\n\n on (updateInternetOffline, (state, {payload}) => (\n {\n ...state,\n offline: payload\n }\n )), \n \n on(loadingStateChange, (state, {payload}) => (\n {\n ...state,\n loadingState: payload ? {\n isLoading: payload.isLoading,\n smallBackground: payload.smallBackground,\n modal: payload.modal,\n txt: payload.loadingTxt,\n } : undefined\n }\n )),\n\n on(routeAction, (state, {payload}) => (\n {\n ...state,\n lastRoutes: [\n ...(state.lastRoutes || []),\n payload\n ]\n }\n )),\n\n on(initIndexDBSucess, (state) => (\n {\n ...state,\n initIndexDB: true,\n }\n )),\n\n on(loginSucess, (state) => (\n {\n ...state,\n userLogin: true,\n }\n )),\n\n);"]}
1
+ {"version":3,"file":"spa-app-reducer.js","sourceRoot":"","sources":["../../../src/store/spa-app-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW/I,MAAM,YAAY,GAAgB;IAChC,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAClC,YAAY,EAEZ,EAAE,CAAE,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAE,CAChD;IACE,GAAG,KAAK;IACR,OAAO,EAAE,OAAO;CACjB,CACF,CAAC,EAEF,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,CACxC;IACE,GAAG,KAAK;IACR,YAAY,EAAE;QACZ,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;QACvB,OAAO;KACR;CACF,CACF,CAAC,EAEF,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE;;IAAC,OAAA,CAC3C;QACE,GAAG,KAAK;QACR,YAAY,EAAE,MAAA,KAAK,CAAC,YAAY,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC;KACvE,CACF,CAAA;CAAA,CAAC,EAEF,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,CACpC;IACE,GAAG,KAAK;IACR,UAAU,EAAE;QACV,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3B,OAAO;KACR;CACF,CACF,CAAC,EAEF,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/B;IACE,GAAG,KAAK;IACR,WAAW,EAAE,IAAI;CAClB,CACF,CAAC,EAEF,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACzB;IACE,GAAG,KAAK;IACR,SAAS,EAAE,IAAI;CAChB,CACF,CAAC,CAEH,CAAC","sourcesContent":["import { on, reducer } from 'ts-action';\n\nimport { initIndexDBSucess, addLoadingState, loginSucess, routeAction, updateInternetOffline, removeLoadingState } from './spa-app-actions.js';\nimport { LoadingState } from '../model/spa-model.js';\n\nexport interface SpaAppState {\n offline?: boolean,\n loadingState: LoadingState[];\n lastRoutes?: any[];\n initIndexDB?: boolean;\n userLogin?: boolean;\n}\n\nconst initialState: SpaAppState = { \n loadingState: [],\n};\n\nexport const spaAppReducer = reducer(\n initialState,\n\n on (updateInternetOffline, (state, {payload}) => (\n {\n ...state,\n offline: payload\n }\n )), \n \n on(addLoadingState, (state, {payload}) => (\n {\n ...state,\n loadingState: [\n ...(state.loadingState),\n payload\n ]\n }\n )),\n\n on(removeLoadingState, (state, {payload}) => (\n {\n ...state,\n loadingState: state.loadingState?.filter(a => a.actionKey !== payload)\n }\n )),\n\n on(routeAction, (state, {payload}) => (\n {\n ...state,\n lastRoutes: [\n ...(state.lastRoutes || []),\n payload\n ]\n }\n )),\n\n on(initIndexDBSucess, (state) => (\n {\n ...state,\n initIndexDB: true,\n }\n )),\n\n on(loginSucess, (state) => (\n {\n ...state,\n userLogin: true,\n }\n )),\n\n);"]}
@@ -1,4 +1,4 @@
1
- export declare const getLoadingSelector: import("mini-rx-store/lib/selector.js").Selector<object, import("../model/spa-model.js").LoadingState | undefined>;
1
+ export declare const getLoadingSelector: import("mini-rx-store/lib/selector.js").Selector<object, import("../model/spa-model.js").LoadingState[]>;
2
2
  export declare const getOfflineSelector: import("mini-rx-store/lib/selector.js").Selector<object, boolean>;
3
3
  export declare const getInitStatusSelector: import("mini-rx-store/lib/selector.js").Selector<object, {
4
4
  login: boolean | undefined;
@@ -24,3 +24,5 @@ export declare const NoModalState: Story;
24
24
  export declare const ModalState: Story;
25
25
  export declare const CustomTxtState: Story;
26
26
  export declare const BackgroundState: Story;
27
+ export declare const ModalBackgroundState: Story;
28
+ export declare const ModalWithBackgroundState: Story;
@@ -6,7 +6,17 @@ const meta = {
6
6
  render: (args) => html `
7
7
  <pd-loading-state
8
8
  .loadingState="${args.loadingState}"
9
- ></pd-loading-state>
9
+ ></pd-loading-state>
10
+
11
+ ${args.doubleState ? html `
12
+ <pd-loading-state
13
+ .loadingState="${{
14
+ isLoading: true,
15
+ modal: true,
16
+ actionKey: ""
17
+ }}"
18
+ ></pd-loading-state>
19
+ ` : ''}
10
20
 
11
21
  <p>
12
22
  Hier steht noch sonst was an text.
@@ -69,4 +79,22 @@ export const BackgroundState = {
69
79
  }
70
80
  },
71
81
  };
82
+ export const ModalBackgroundState = {
83
+ args: {
84
+ loadingState: {
85
+ isLoading: true,
86
+ smallBackground: true,
87
+ modal: true,
88
+ }
89
+ },
90
+ };
91
+ export const ModalWithBackgroundState = {
92
+ args: {
93
+ loadingState: {
94
+ isLoading: true,
95
+ smallBackground: true,
96
+ },
97
+ doubleState: true
98
+ },
99
+ };
72
100
  //# sourceMappingURL=pd-loading-state.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pd-loading-state.stories.js","sourceRoot":"","sources":["../../../src/stories/pd-loading-state.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,+BAA+B,CAAC;AAGvC,8GAA8G;AAC9G,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,4BAA4B;IACnC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;uBAED,IAAI,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;GAqBrC;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC9B,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;SACtC;KACF;CACa,CAAC;AAEjB,eAAe,IAAI,CAAC;AAIpB,uGAAuG;AACvG,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;SAChB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAU;IAC/B,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACZ;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,2BAA2B;SACxC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;SACtB;KACF;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../tmpown/pd-loading-state.js';\n\n\n// More on how to set up stories at: https://storybook.js.org/docs/web-components/writing-stories/introduction\nconst meta = {\n title: 'PD Components/LoadingState', \n render: (args) => html`\n <pd-loading-state\n .loadingState=\"${args.loadingState}\"\n ></pd-loading-state>\n\n <p>\n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n </p>\n <p>\n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n </p>\n `,\n argTypes: {\n backgroundColor: { control: 'color' },\n onClick: { action: 'onClick' },\n size: {\n control: { type: 'select' },\n options: ['small', 'medium', 'large'],\n },\n },\n} satisfies Meta;\n\nexport default meta;\ntype Story = StoryObj;\n\n\n// More on writing stories with args: https://storybook.js.org/docs/web-components/writing-stories/args\nexport const NoModalState: Story = {\n args: {\n loadingState: {\n isLoading: true\n }\n },\n};\n\nexport const ModalState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n modal: true\n }\n },\n};\n\nexport const CustomTxtState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n loadingTxt: \"Hier steht was anderes...\"\n }\n },\n};\n\nexport const BackgroundState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n smallBackground: true,\n }\n },\n};\n\n"]}
1
+ {"version":3,"file":"pd-loading-state.stories.js","sourceRoot":"","sources":["../../../src/stories/pd-loading-state.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,+BAA+B,CAAC;AAGvC,8GAA8G;AAC9G,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,4BAA4B;IACnC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;uBAED,IAAI,CAAC,YAAY;;;MAGlC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;;uBAEN;QACf,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,EAAE;KACd;;OAEA,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;GAoBT;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC9B,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;SACtC;KACF;CACa,CAAC;AAEjB,eAAe,IAAI,CAAC;AAIpB,uGAAuG;AACvG,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;SAChB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAU;IAC/B,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACZ;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,2BAA2B;SACxC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;SACtB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAU;IACzC,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;YACrB,KAAK,EAAE,IAAI;SACZ;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAU;IAC7C,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;SACtB;QACD,WAAW,EAAE,IAAI;KAClB;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../tmpown/pd-loading-state.js';\n\n\n// More on how to set up stories at: https://storybook.js.org/docs/web-components/writing-stories/introduction\nconst meta = {\n title: 'PD Components/LoadingState', \n render: (args) => html`\n <pd-loading-state\n .loadingState=\"${args.loadingState}\"\n ></pd-loading-state> \n\n ${args.doubleState ? html`\n <pd-loading-state\n .loadingState=\"${{\n isLoading: true,\n modal: true,\n actionKey: \"\"\n }}\"\n ></pd-loading-state> \n ` : ''} \n\n <p>\n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n </p>\n <p>\n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n Hier steht noch sonst was an text. \n </p>\n `,\n argTypes: {\n backgroundColor: { control: 'color' },\n onClick: { action: 'onClick' },\n size: {\n control: { type: 'select' },\n options: ['small', 'medium', 'large'],\n },\n },\n} satisfies Meta;\n\nexport default meta;\ntype Story = StoryObj;\n\n\n// More on writing stories with args: https://storybook.js.org/docs/web-components/writing-stories/args\nexport const NoModalState: Story = {\n args: {\n loadingState: {\n isLoading: true\n }\n },\n};\n\nexport const ModalState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n modal: true\n }\n },\n};\n\nexport const CustomTxtState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n loadingTxt: \"Hier steht was anderes...\"\n }\n },\n};\n\nexport const BackgroundState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n smallBackground: true,\n }\n },\n};\n\nexport const ModalBackgroundState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n smallBackground: true,\n modal: true,\n }\n },\n};\n\nexport const ModalWithBackgroundState: Story = {\n args: {\n loadingState: {\n isLoading: true,\n smallBackground: true, \n },\n doubleState: true\n },\n};\n\n"]}
@@ -1,8 +1,8 @@
1
1
  import { LitElement, CSSResultGroup } from 'lit';
2
2
  import { LoadingState } from '../model/spa-model.js';
3
3
  export declare class PdLoadingState extends LitElement {
4
- loadingState: LoadingState;
4
+ loadingState?: LoadingState;
5
5
  static styles: CSSResultGroup;
6
- render(): import("lit").TemplateResult<1>;
7
- _renderContent(): import("lit").TemplateResult<1>;
6
+ render(): "" | import("lit").TemplateResult<1>;
7
+ _renderContent(): "" | import("lit").TemplateResult<1>;
8
8
  }
@@ -4,13 +4,10 @@ import { customElement, property } from 'lit/decorators.js';
4
4
  import { msg } from '@lit/localize';
5
5
  import { classMap } from 'lit/directives/class-map.js';
6
6
  let PdLoadingState = class PdLoadingState extends LitElement {
7
- constructor() {
8
- super(...arguments);
9
- this.loadingState = {
10
- isLoading: false
11
- };
12
- }
13
7
  render() {
8
+ if (!this.loadingState) {
9
+ return '';
10
+ }
14
11
  return this.loadingState.modal ? html `
15
12
  <div id="modalId" class="modal">
16
13
  ${this._renderContent()}
@@ -18,6 +15,9 @@ let PdLoadingState = class PdLoadingState extends LitElement {
18
15
  ` : this._renderContent();
19
16
  }
20
17
  _renderContent() {
18
+ if (!this.loadingState) {
19
+ return '';
20
+ }
21
21
  return html `
22
22
  <div class="${classMap({
23
23
  content: !this.loadingState.smallBackground,
@@ -78,7 +78,7 @@ PdLoadingState.styles = [
78
78
  bottom: 0em;
79
79
 
80
80
  padding: 1em;
81
- z-index: 101; /* Sit on top */
81
+ z-index: 600; /* Sit on top */
82
82
 
83
83
  display: flex;
84
84
  gap: 0.5em;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-loading-state.js","sourceRoot":"","sources":["../../../src/tmpown/pd-loading-state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAMhD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QAGL,iBAAY,GAAiB;YAC3B,SAAS,EAAE,KAAK;SACjB,CAAC;IAkHJ,CAAC;IAtBC,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;;YAE7B,IAAI,CAAC,cAAc,EAAE;;OAE1B,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAA;oBACK,QAAQ,CAAC;YACnB,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe;YAC3C,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,KAAK,IAAI;YAClG,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,KAAK,IAAI;SACjE,CAAC;sBACY,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ;aAC3E,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACvE,GAAG,CAAC,6BAA6B,EAAE,EAAC,EAAE,EAAE,6BAA6B,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAC,EAAE,EAAE,8BAA8B,EAAC,CAAC,CAAC;;KAE/J,CAAA;IACH,CAAC;;AA7GM,qBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqFF;CACgB,CAAC;AA5FpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;oDAGxB;AALS,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAuH1B;SAvHY,cAAc","sourcesContent":["import { LitElement, html, css, CSSResultGroup } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { msg } from '@lit/localize';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport {LoadingState} from '../model/spa-model.js';\n\n\n@customElement('pd-loading-state')\nexport class PdLoadingState extends LitElement {\n\n @property({ type: Object}) \n loadingState: LoadingState = {\n isLoading: false\n };\n\n\n static styles = [ \n css`\n :host {\n display: block;\n }\n\n /* The Modal (background) */\n .modal { \n position: fixed; /* Stay in place */ \n left: 0;\n top: 0;\n z-index: 500; /* Sit on top */\n\n display: flex;\n align-items: center;\n justify-content: center;\n \n width: 100%; /* Full width */\n height: 100%; /* Full height */ \n overflow: auto; /* Enable scroll if needed */\n /* RGBA Wert muss hier verwendet werden #AFC1D2 to rgba for opacity */\n background-color: var(--pd-popup-modal-bg-rgba, rgba(175, 193, 210, 0.8)); \n }\n\n /* Modal Content */\n .no-modal-content { \n position: fixed; /* Stay in place */ \n left: 50%; \n top: 50%; \n transform: translate(-50%, -50%); \n }\n\n .content {\n padding: 1em;\n text-align: center;\n background-color: var(--pd-loading-state-bg-col, #edf7fd);\n border: 2px solid var(--pd-loading-state-bg-col, var(--pd-default-col, #067394));\n z-index: 101; /* Sit on top */\n }\n\n .background-content {\n\n position: fixed; /* Stay in place */ \n right: 0em; \n bottom: 0em; \n\n padding: 1em; \n z-index: 101; /* Sit on top */\n\n display: flex;\n gap: 0.5em;\n align-items: center;\n\n background-color: white;\n }\n\n .loader { \n border: 16px solid var(--pd-heating-service-loader, #0A3A48);\n border-top: 16px solid var(--pd-heating-service-loader-run, #067394);\n border-radius: 50%;\n width: 30px;\n height: 30px;\n animation: spin 2s linear infinite;\n \n margin-left: auto;\n margin-right: auto;\n }\n\n .background-loader { \n border: 10px solid var(--pd-heating-service-loader, #0A3A48);\n border-top: 10px solid var(--pd-heating-service-loader-run, #067394);\n border-radius: 50%;\n width: 10px;\n height: 10px;\n animation: spin 2s linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n `\n ] as CSSResultGroup; \n\n render() { \n return this.loadingState.modal ? html`\n <div id=\"modalId\" class=\"modal\">\n ${this._renderContent()}\n </div>\n ` : this._renderContent();\n }\n\n _renderContent() {\n return html`\n <div class=\"${classMap({\n content: !this.loadingState.smallBackground,\n \"no-modal-content\": this.loadingState.modal !== true && this.loadingState.smallBackground !== true,\n \"background-content\": this.loadingState.smallBackground === true,\n })}\">\n <div class=\"${this.loadingState.smallBackground ? \"background-loader\" : \"loader\"}\"></div>\n <p>${this.loadingState.loadingTxt || (this.loadingState.smallBackground ? \n msg(\"Daten werden synchronisiert\", {id: \"spaH.loadingstate.syncState\"}) : msg(\"Bitte warten, Daten werden geladen\", {id: \"spaH.loadingstate.pleaseWait\"}))}</p>\n </div>\n `\n }\n\n}"]}
1
+ {"version":3,"file":"pd-loading-state.js","sourceRoot":"","sources":["../../../src/tmpown/pd-loading-state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAMhD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IA8F5C,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;;YAE7B,IAAI,CAAC,cAAc,EAAE;;OAE1B,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAA;oBACK,QAAQ,CAAC;YACnB,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe;YAC3C,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,KAAK,IAAI;YAClG,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,KAAK,IAAI;SACjE,CAAC;sBACY,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ;aAC3E,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACvE,GAAG,CAAC,6BAA6B,EAAE,EAAC,EAAE,EAAE,6BAA6B,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAC,EAAE,EAAE,8BAA8B,EAAC,CAAC,CAAC;;KAE/J,CAAA;IACH,CAAC;;AAnHM,qBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqFF;CACgB,CAAC;AAzFpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;oDACE;AAHjB,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CA0H1B;SA1HY,cAAc","sourcesContent":["import { LitElement, html, css, CSSResultGroup } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { msg } from '@lit/localize';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport {LoadingState} from '../model/spa-model.js';\n\n\n@customElement('pd-loading-state')\nexport class PdLoadingState extends LitElement {\n\n @property({ type: Object}) \n loadingState?: LoadingState;\n\n static styles = [ \n css`\n :host {\n display: block;\n }\n\n /* The Modal (background) */\n .modal { \n position: fixed; /* Stay in place */ \n left: 0;\n top: 0;\n z-index: 500; /* Sit on top */\n\n display: flex;\n align-items: center;\n justify-content: center;\n \n width: 100%; /* Full width */\n height: 100%; /* Full height */ \n overflow: auto; /* Enable scroll if needed */\n /* RGBA Wert muss hier verwendet werden #AFC1D2 to rgba for opacity */\n background-color: var(--pd-popup-modal-bg-rgba, rgba(175, 193, 210, 0.8)); \n }\n\n /* Modal Content */\n .no-modal-content { \n position: fixed; /* Stay in place */ \n left: 50%; \n top: 50%; \n transform: translate(-50%, -50%); \n }\n\n .content {\n padding: 1em;\n text-align: center;\n background-color: var(--pd-loading-state-bg-col, #edf7fd);\n border: 2px solid var(--pd-loading-state-bg-col, var(--pd-default-col, #067394));\n z-index: 101; /* Sit on top */\n }\n\n .background-content {\n\n position: fixed; /* Stay in place */ \n right: 0em; \n bottom: 0em; \n\n padding: 1em; \n z-index: 600; /* Sit on top */\n\n display: flex;\n gap: 0.5em;\n align-items: center;\n\n background-color: white;\n }\n\n .loader { \n border: 16px solid var(--pd-heating-service-loader, #0A3A48);\n border-top: 16px solid var(--pd-heating-service-loader-run, #067394);\n border-radius: 50%;\n width: 30px;\n height: 30px;\n animation: spin 2s linear infinite;\n \n margin-left: auto;\n margin-right: auto;\n }\n\n .background-loader { \n border: 10px solid var(--pd-heating-service-loader, #0A3A48);\n border-top: 10px solid var(--pd-heating-service-loader-run, #067394);\n border-radius: 50%;\n width: 10px;\n height: 10px;\n animation: spin 2s linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n `\n ] as CSSResultGroup; \n\n render() { \n if (!this.loadingState) {\n return '';\n }\n return this.loadingState.modal ? html`\n <div id=\"modalId\" class=\"modal\">\n ${this._renderContent()}\n </div>\n ` : this._renderContent();\n }\n\n _renderContent() {\n if (!this.loadingState) {\n return '';\n }\n return html`\n <div class=\"${classMap({\n content: !this.loadingState.smallBackground,\n \"no-modal-content\": this.loadingState.modal !== true && this.loadingState.smallBackground !== true,\n \"background-content\": this.loadingState.smallBackground === true,\n })}\">\n <div class=\"${this.loadingState.smallBackground ? \"background-loader\" : \"loader\"}\"></div>\n <p>${this.loadingState.loadingTxt || (this.loadingState.smallBackground ? \n msg(\"Daten werden synchronisiert\", {id: \"spaH.loadingstate.syncState\"}) : msg(\"Bitte warten, Daten werden geladen\", {id: \"spaH.loadingstate.pleaseWait\"}))}</p>\n </div>\n `\n }\n\n}"]}