@softpak/components 20.8.0 → 20.8.2

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 (62) hide show
  1. package/fesm2022/softpak-components-spx-404-page.mjs +3 -3
  2. package/fesm2022/softpak-components-spx-404-page.mjs.map +1 -1
  3. package/fesm2022/softpak-components-spx-alert.mjs +3 -3
  4. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  5. package/fesm2022/softpak-components-spx-app-expiry.mjs +3 -3
  6. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  7. package/fesm2022/softpak-components-spx-button.mjs +3 -3
  8. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  9. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  10. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  11. package/fesm2022/softpak-components-spx-card.mjs +12 -12
  12. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  13. package/fesm2022/softpak-components-spx-change-details.mjs +3 -3
  14. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  15. package/fesm2022/softpak-components-spx-channel-selection.mjs +9 -9
  16. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  17. package/fesm2022/softpak-components-spx-check-digit.mjs +3 -3
  18. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  19. package/fesm2022/softpak-components-spx-confirm.mjs +9 -9
  20. package/fesm2022/softpak-components-spx-confirm.mjs.map +1 -1
  21. package/fesm2022/softpak-components-spx-form-section.mjs +3 -3
  22. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  23. package/fesm2022/softpak-components-spx-form-view.mjs +6 -6
  24. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  25. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  26. package/fesm2022/softpak-components-spx-inputs.mjs +36 -36
  27. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  28. package/fesm2022/softpak-components-spx-navigation.mjs +9 -9
  29. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  30. package/fesm2022/softpak-components-spx-number-check.mjs +3 -3
  31. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  32. package/fesm2022/softpak-components-spx-pagination.mjs +3 -3
  33. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  34. package/fesm2022/softpak-components-spx-patch.mjs +3 -3
  35. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  36. package/fesm2022/softpak-components-spx-pipes.mjs +3 -3
  37. package/fesm2022/softpak-components-spx-pipes.mjs.map +1 -1
  38. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  39. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  40. package/fesm2022/softpak-components-spx-spinner.mjs +3 -3
  41. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  42. package/fesm2022/softpak-components-spx-stock-info.mjs +3 -3
  43. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  44. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  45. package/fesm2022/softpak-components-spx-suggestion.mjs +3 -3
  46. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  47. package/fesm2022/softpak-components-spx-tabs.mjs +3 -3
  48. package/fesm2022/softpak-components-spx-tabs.mjs.map +1 -1
  49. package/fesm2022/softpak-components-spx-toaster.mjs +3 -3
  50. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  51. package/fesm2022/softpak-components-spx-toggle.mjs +3 -3
  52. package/fesm2022/softpak-components-spx-toggle.mjs.map +1 -1
  53. package/fesm2022/softpak-components-spx-update.mjs +17 -15
  54. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  55. package/fesm2022/softpak-components-spx-validation-messages.mjs +3 -3
  56. package/fesm2022/softpak-components-spx-validation-messages.mjs.map +1 -1
  57. package/fesm2022/softpak-components-spx-validation.mjs +3 -3
  58. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  59. package/fesm2022/softpak-components-spx-welcome.mjs +3 -3
  60. package/fesm2022/softpak-components-spx-welcome.mjs.map +1 -1
  61. package/package.json +34 -34
  62. package/spx-validation-messages/index.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-toggle.mjs","sources":["../../../../projects/softpak/components/spx-toggle/src/spx-toggle.component.ts","../../../../projects/softpak/components/spx-toggle/src/spx-toggle.component.html","../../../../projects/softpak/components/spx-toggle/softpak-components-spx-toggle.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, OnInit } from \"@angular/core\";\nimport { FormControl, FormsModule } from \"@angular/forms\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'spx-toggle',\n standalone: true,\n imports: [\n FormsModule\n ],\n templateUrl: './spx-toggle.component.html',\n styleUrl: './spx-toggle.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxToggleComponent implements OnInit {\n control = input<FormControl>();\n spxToggled = model<boolean>(false);\n spxLabelPlacement = input<'end' | 'start'>(\"end\");\n\n ngOnInit() {\n const toggled = this.control()?.value === true;\n this.spxToggled.set(toggled);\n }\n\n onValueChange(value: boolean) {\n this.control()?.setValue(value);\n }\n\n}","<label class=\"inline-flex items-center\">\n <input type=\"checkbox\" class=\"sr-only peer\" [ngModel]=\"spxToggled()\" (ngModelChange)=\"onValueChange($event)\">\n <div\n class=\"relative w-14 h-7 bg-gray-600 peer-focus:outline-none cursor-pointer\n peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full\n rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-['']\n after:absolute after:top-0.5 after:start-[4px] after:bg-white after:border-gray-300 after:border \n after:rounded-full after:h-6 after:w-6 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600 dark:peer-checked:bg-blue-600\"></div>\n <span class=\"ms-3 font-medium text-gray-900 dark:text-black\">\n <ng-content>\n </ng-content>\n </span>\n \n</label>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAca,kBAAkB,CAAA;AAX/B,IAAA,WAAA,GAAA;QAYE,IAAA,CAAA,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAe;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,sDAAC;AAClC,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAkB,KAAK,6DAAC;AAWlD;IATC,QAAQ,GAAA;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,KAAK,IAAI;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;AAG9B,IAAA,aAAa,CAAC,KAAc,EAAA;QAC1B,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC;;8GAXtB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd/B,k3BAaQ,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLF,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAMJ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;+BAEI,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP;wBACP;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k3BAAA,EAAA;;;AEZnD;;AAEG;;;;"}
1
+ {"version":3,"file":"softpak-components-spx-toggle.mjs","sources":["../../../../projects/softpak/components/spx-toggle/src/spx-toggle.component.ts","../../../../projects/softpak/components/spx-toggle/src/spx-toggle.component.html","../../../../projects/softpak/components/spx-toggle/softpak-components-spx-toggle.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, OnInit } from \"@angular/core\";\nimport { FormControl, FormsModule } from \"@angular/forms\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'spx-toggle',\n standalone: true,\n imports: [\n FormsModule\n ],\n templateUrl: './spx-toggle.component.html',\n styleUrl: './spx-toggle.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxToggleComponent implements OnInit {\n control = input<FormControl>();\n spxToggled = model<boolean>(false);\n spxLabelPlacement = input<'end' | 'start'>(\"end\");\n\n ngOnInit() {\n const toggled = this.control()?.value === true;\n this.spxToggled.set(toggled);\n }\n\n onValueChange(value: boolean) {\n this.control()?.setValue(value);\n }\n\n}","<label class=\"inline-flex items-center\">\n <input type=\"checkbox\" class=\"sr-only peer\" [ngModel]=\"spxToggled()\" (ngModelChange)=\"onValueChange($event)\">\n <div\n class=\"relative w-14 h-7 bg-gray-600 peer-focus:outline-none cursor-pointer\n peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full\n rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-['']\n after:absolute after:top-0.5 after:start-[4px] after:bg-white after:border-gray-300 after:border \n after:rounded-full after:h-6 after:w-6 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600 dark:peer-checked:bg-blue-600\"></div>\n <span class=\"ms-3 font-medium text-gray-900 dark:text-black\">\n <ng-content>\n </ng-content>\n </span>\n \n</label>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAca,kBAAkB,CAAA;AAX/B,IAAA,WAAA,GAAA;QAYE,IAAA,CAAA,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAe;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,sDAAC;AAClC,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAkB,KAAK,6DAAC;AAWlD,IAAA;IATC,QAAQ,GAAA;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,KAAK,IAAI;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;IAC9B;AAEA,IAAA,aAAa,CAAC,KAAc,EAAA;QAC1B,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC;IACjC;8GAZW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd/B,k3BAaQ,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLF,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAMJ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;+BAEI,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP;wBACP;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k3BAAA,EAAA;;;AEZnD;;AAEG;;;;"}
@@ -15,12 +15,13 @@ import * as i2$1 from '@angular/platform-browser';
15
15
  import * as i1$1 from '@ngrx/effects';
16
16
  import { createEffect, ofType } from '@ngrx/effects';
17
17
  import { from, of } from 'rxjs';
18
- import { delay, mergeMap, tap, exhaustMap, map, catchError } from 'rxjs/operators';
18
+ import { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';
19
19
  import { getConfig, setConfig, sync, reload } from '@capacitor/live-updates';
20
- import { captureMessage } from '@sentry/angular';
21
- import { Capacitor } from '@capacitor/core';
20
+ import { delay, mergeMap, tap, exhaustMap, map, catchError } from 'rxjs/operators';
22
21
  import { App } from '@capacitor/app';
22
+ import { Capacitor } from '@capacitor/core';
23
23
  import { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';
24
+ import { captureMessage } from '@sentry/angular';
24
25
 
25
26
  const anUpdateIsReady = createAction('[SPX / Update Check] An update is ready', props());
26
27
  const clearError = createAction('[SPX / Update Check] Clear error', props());
@@ -128,10 +129,10 @@ class SpxUpdatePageComponent {
128
129
  this.spxTextOneMomentPlease = spxTextOneMomentPlease;
129
130
  this.subscriptions = {};
130
131
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxUpdatePageComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n {{ spxTextOneMomentPlease | translate | capitalize }}...\n</ion-content>\n", dependencies: [{ kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxUpdatePageComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n {{ spxTextOneMomentPlease | translate | capitalize }}...\n</ion-content>\n", dependencies: [{ kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
133
134
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
135
136
  type: Component,
136
137
  args: [{ selector: 'spx-update-page', imports: [
137
138
  IonContent,
@@ -239,10 +240,10 @@ class SpxUpdatePendingComponent {
239
240
  onUpdate() {
240
241
  this.appStore.dispatch(acceptUpdate({}));
241
242
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxUpdatePendingComponent, deps: [{ token: i1.Store }, { token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: SpxUpdatePendingComponent, isStandalone: true, selector: "spx-update-pending", host: { properties: { "style": "this.baseStyle" } }, ngImport: i0, template: "@if (showLiveUpdateReady()) {\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\n <div class=\"grow\">\n <p\n class=\"text-xl font-extrabold bg-clip-text text-transparent bg-[linear-gradient(to_right,theme(colors.green.300),theme(colors.green.100),theme(colors.sky.400),theme(colors.yellow.200),theme(colors.sky.400),theme(colors.green.100),theme(colors.green.300))] bg-[length:200%_auto] animate-gradient\">\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\n </div>\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\n }}</spx-button>\n</div>\n}", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType", "spxName"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
243
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxUpdatePendingComponent, deps: [{ token: i1.Store }, { token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
244
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: SpxUpdatePendingComponent, isStandalone: true, selector: "spx-update-pending", host: { properties: { "style": "this.baseStyle" } }, ngImport: i0, template: "@if (showLiveUpdateReady()) {\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\n <div class=\"grow\">\n <p\n class=\"text-xl font-extrabold bg-clip-text text-transparent bg-[linear-gradient(to_right,theme(colors.green.300),theme(colors.green.100),theme(colors.sky.400),theme(colors.yellow.200),theme(colors.sky.400),theme(colors.green.100),theme(colors.green.300))] bg-[length:200%_auto] animate-gradient\">\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\n </div>\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\n }}</spx-button>\n</div>\n}", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType", "spxName"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
244
245
  }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxUpdatePendingComponent, decorators: [{
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxUpdatePendingComponent, decorators: [{
246
247
  type: Component,
247
248
  args: [{ selector: 'spx-update-pending', imports: [
248
249
  SpxButtonComponent,
@@ -284,6 +285,7 @@ let Effects$1 = class Effects {
284
285
  }
285
286
  }), exhaustMap((action) => from(sync()).pipe(map((syncResult) => {
286
287
  if (syncResult.activeApplicationPathChanged) {
288
+ SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdate, syncResult.snapshot?.buildId);
287
289
  if (action.forceWaitForUpdate) {
288
290
  reload();
289
291
  }
@@ -308,10 +310,10 @@ let Effects$1 = class Effects {
308
310
  runCheck({}),
309
311
  ])));
310
312
  }
311
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Effects, deps: [{ token: i1$1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
312
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Effects }); }
313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Effects, deps: [{ token: i1$1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
314
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Effects }); }
313
315
  };
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Effects$1, decorators: [{
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Effects$1, decorators: [{
315
317
  type: Injectable
316
318
  }], ctorParameters: () => [{ type: i1$1.Actions }] });
317
319
 
@@ -332,10 +334,10 @@ class Effects {
332
334
  return [];
333
335
  })));
334
336
  }
335
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Effects, deps: [{ token: i1$1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
336
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Effects }); }
337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Effects, deps: [{ token: i1$1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
338
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Effects }); }
337
339
  }
338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Effects, decorators: [{
340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Effects, decorators: [{
339
341
  type: Injectable
340
342
  }], ctorParameters: () => [{ type: i1$1.Actions }] });
341
343
 
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-update.mjs","sources":["../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.html","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.html","../../../../projects/softpak/components/spx-update/spx-update-url.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.effects.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.effects.ts","../../../../projects/softpak/components/spx-update/softpak-components-spx-update.ts"],"sourcesContent":["import { createAction, props, union } from '@ngrx/store';\n\nexport const anUpdateIsReady = createAction('[SPX / Update Check] An update is ready', props<Record<string, unknown>>());\nexport const clearError = createAction('[SPX / Update Check] Clear error', props<Record<string, unknown>>());\nexport const checkFailed = createAction('[SPX / Update Check] Error happened', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const initialize = createAction('[SPX / Update Check] Initialize', props<Record<string, unknown>>());\nexport const noUpdateWasFound = createAction('[SPX / Update Check] No update was found', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const notAvailableOnWeb = createAction('[SPX / Update Check] Not available on web', props<Record<string, unknown>>());\nexport const runCheck = createAction('[SPX / Update Check] Run', props<{ forceWaitForUpdate?: boolean; }>());\n\nconst all = union({\n anUpdateIsReady,\n clearError,\n checkFailed,\n initialize,\n noUpdateWasFound,\n notAvailableOnWeb,\n runCheck,\n});\n\nexport type Actions = typeof all;\n","import { StateI } from \"./spx-update-check.state\";\n\nexport const initialState: StateI = {\n forceWaitForUpdate: false,\n lastCheck: null,\n showError: false,\n};\n","\nimport * as actions from './spx-update-check.actions';\nimport { createFeature, createReducer, on } from '@ngrx/store';\nimport { StateI } from './spx-update-check.state';\nimport { initialState } from './spx-update-check.initial';\nimport { DateTime } from 'luxon';\n \nexport default createFeature({\n name: 'spxUpdateCheck',\n reducer: createReducer(\n initialState,\n on(actions.anUpdateIsReady, (state: StateI): StateI => {\n return {\n ...state,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(actions.clearError, (state: StateI): StateI => {\n return {\n ...state,\n showError: false,\n };\n }),\n on(actions.checkFailed, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n showError: true,\n };\n }),\n on(actions.noUpdateWasFound, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(actions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate\n };\n }),\n on(actions.notAvailableOnWeb, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false\n };\n }),\n ),\n});\n","import { Component } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { runCheck } from './store/spx-update-check/spx-update-check.actions';\nimport { default as updCheck } from './store/spx-update-check/spx-update-check.reducer';\nimport { unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { spxTextCheckingForUpdates, spxTextOneMomentPlease } from '@softpak/components/spx-translate';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'spx-update-page',\n imports: [\n IonContent,\n IonHeader,\n IonToolbar,\n IonTitle,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextOneMomentPlease = spxTextOneMomentPlease;\n\n private subscriptions: {\n updCheck?: Subscription;\n } = {};\n\n ngOnInit() {\n this.appStore.dispatch(runCheck({ forceWaitForUpdate: true }));\n this.subscriptions.updCheck = this.appStore.select(updCheck.selectForceWaitForUpdate).subscribe(forceWaitForUpdate => {\n if (forceWaitForUpdate === false) {\n if (this.activatedRoute.snapshot.data['url'] === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n }\n this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);\n }\n });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navController: NavController,\n ) {\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n {{ spxTextOneMomentPlease | translate | capitalize }}...\n</ion-content>\n","import { createAction, props, union } from '@ngrx/store';\n\nexport const acceptUpdate = createAction('[SPX / Update Pending] Accept update', props<Record<string, unknown>>());\nexport const hasBeenDownloaded = createAction('[SPX / Update Pending] Has been downloaded', props<Record<string, unknown>>());\nexport const hasBeenInstalled = createAction('[SPX / Update Pending] Has been installed', props<Record<string, unknown>>());\nexport const postpone = createAction('[SPX / Update Pending] Postpone', props<Record<string, unknown>>());\nexport const postponeExpired = createAction('[SPX / Update Pending] Postpone expired', props<Record<string, unknown>>());\n\nconst all = union({\n acceptUpdate,\n hasBeenDownloaded,\n hasBeenInstalled,\n postpone,\n postponeExpired,\n});\n\nexport type Actions = typeof all;\n","import { StateI } from \"./spx-update-pending.state\";\n\nexport const initialState: StateI = {\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n};\n","\nimport * as actions from './spx-update-pending.actions';\nimport { createReducer, on, createFeature } from '@ngrx/store';\nimport { StateI } from './spx-update-pending.state';\nimport { initialState } from './spx-update-pending.initial';\n\nexport default createFeature({\n name: 'spxUpdatePending',\n reducer: createReducer(\n initialState,\n on(actions.hasBeenDownloaded, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n updateIsDownloadedAndPending: true,\n };\n }),\n on(actions.hasBeenInstalled, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n };\n }),\n on(actions.postpone, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n };\n }),\n on(actions.postponeExpired, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n };\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, HostBinding, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { acceptUpdate } from './store/spx-update-pending/spx-update-pending.actions';\nimport { default as updPending } from './store/spx-update-pending/spx-update-pending.reducer';\nimport { SpxSeverityEnum, unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextUpdate, spxTextUpdateAvailable } from '@softpak/components/spx-translate';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'spx-update-pending',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-pending.component.html`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxUpdatePendingComponent {\n @HostBinding('style') baseStyle?: SafeStyle;\n availableStoreVersion = signal<undefined | string>(undefined);\n currentStoreVersion = signal<undefined | string>(undefined);\n severitySuccess = SpxSeverityEnum.success;\n showLiveUpdateReady = signal<boolean>(false);\n spxTextUpdate = spxTextUpdate;\n spxTextReadyToBeInstalled = spxTextReadyToBeInstalled;\n spxTextPatchAvailable = spxTextPatchAvailable;\n spxTextUpdateAvailable = spxTextUpdateAvailable;\n spxTextOpenAppStore = spxTextOpenAppStore;\n\n private subscriptions: {\n updPending?: Subscription;\n } = {};\n\n ngOnInit() {\n this.subscriptions.updPending = this.appStore.select(updPending.selectShowLiveUpdateReady).subscribe(showLiveUpdateReady => {\n this.showLiveUpdateReady.set(showLiveUpdateReady);\n if (showLiveUpdateReady) {\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: block;');\n } else {\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: none;');\n }\n });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\n private sanitizer: DomSanitizer,\n ) {}\n\n onUpdate(): void {\n this.appStore.dispatch(acceptUpdate({}));\n }\n}\n","@if (showLiveUpdateReady()) {\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\n <div class=\"grow\">\n <p\n class=\"text-xl font-extrabold bg-clip-text text-transparent bg-[linear-gradient(to_right,theme(colors.green.300),theme(colors.green.100),theme(colors.sky.400),theme(colors.yellow.200),theme(colors.sky.400),theme(colors.green.100),theme(colors.green.300))] bg-[length:200%_auto] animate-gradient\">\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\n </div>\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\n }}</spx-button>\n</div>\n}","export const spxUpdateUrl = '';","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError, delay, exhaustMap, map, mergeMap, tap } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport * as actions from './spx-update-check.actions';\nimport { getConfig, reload, setConfig, sync, SyncResult } from '@capacitor/live-updates';\nimport { captureMessage } from '@sentry/angular';\nimport { Capacitor } from '@capacitor/core';\nimport { App } from '@capacitor/app';\nimport { hasBeenDownloaded } from '../spx-update-pending/spx-update-pending.actions';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\n\n@Injectable()\nexport class Effects {\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.initialize),\n delay(120000),\n mergeMap(() => [\n actions.runCheck({}),\n ]))\n );\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.runCheck),\n tap(async () => {\n if (Capacitor.getPlatform() !== 'web') {\n // Migrate from e.g. 1.2.x to 1.3.x\n const binaryInfo = await App.getInfo()\n const binaryVersionGroup = binaryInfo.version.substring(0, 3);\n const config = await getConfig();\n const channelVersionGroup = config.channel!.split('-')[1].substring(0, 3); // e.g. \"1.4\"\n let channelType = config.channel!.split('-')[0];\n // Temp fix\n if (channelType === 'null') {\n channelType = 'Production';\n }\n // End temp fix\n if (channelType === null || binaryVersionGroup != channelVersionGroup) {\n await setConfig({\n channel: `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`\n });\n }\n // End migrate from e.g. 1.2.x to 1.3.x\n }\n }),\n exhaustMap((action) => from(sync()).pipe(\n map((syncResult: SyncResult) => {\n if (syncResult.activeApplicationPathChanged) {\n if (action.forceWaitForUpdate) {\n reload();\n }\n return actions.anUpdateIsReady({});\n } else {\n return actions.noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });\n }\n }),\n catchError((err) => {\n if (err.message !== 'Not implemented for web only') {\n captureMessage(\"[UPD] Handled: \" + err.message);\n }\n return err.message === 'Not implemented for web only' ? of(actions.notAvailableOnWeb({})) : of(actions.checkFailed({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }))\n })\n )),\n ));\n\n constructor(\n private readonly actions$: Actions,\n ) { }\n\n whenAndUpdateIsReady$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.anUpdateIsReady),\n mergeMap(() => [\n hasBeenDownloaded({}),\n ]))\n );\n\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.checkFailed),\n delay(30000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n actions.runCheck({}),\n ]))\n );\n\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.noUpdateWasFound),\n delay(120000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n actions.runCheck({}),\n ]))\n );\n}\n\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Observable } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport * as actions from './spx-update-pending.actions';\nimport { reload } from '@capacitor/live-updates';\n\n@Injectable()\nexport class Effects {\n\n constructor(\n private readonly actions$: Actions,\n ) { }\n\n whenAccepted$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.acceptUpdate),\n mergeMap(() => {\n reload();\n return []; \n })) as any\n );\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["all","initialState","actions.anUpdateIsReady","actions.clearError","actions.checkFailed","actions.noUpdateWasFound","actions.runCheck","actions.notAvailableOnWeb","actions.hasBeenDownloaded","actions.hasBeenInstalled","actions.postpone","actions.postponeExpired","i2","actions.initialize","i1","Effects","actions.acceptUpdate"],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-update.mjs","sources":["../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.html","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.html","../../../../projects/softpak/components/spx-update/spx-update-url.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.effects.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.effects.ts","../../../../projects/softpak/components/spx-update/softpak-components-spx-update.ts"],"sourcesContent":["import { createAction, props, union } from '@ngrx/store';\n\nexport const anUpdateIsReady = createAction('[SPX / Update Check] An update is ready', props<Record<string, unknown>>());\nexport const clearError = createAction('[SPX / Update Check] Clear error', props<Record<string, unknown>>());\nexport const checkFailed = createAction('[SPX / Update Check] Error happened', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const initialize = createAction('[SPX / Update Check] Initialize', props<Record<string, unknown>>());\nexport const noUpdateWasFound = createAction('[SPX / Update Check] No update was found', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const notAvailableOnWeb = createAction('[SPX / Update Check] Not available on web', props<Record<string, unknown>>());\nexport const runCheck = createAction('[SPX / Update Check] Run', props<{ forceWaitForUpdate?: boolean; }>());\n\nconst all = union({\n anUpdateIsReady,\n clearError,\n checkFailed,\n initialize,\n noUpdateWasFound,\n notAvailableOnWeb,\n runCheck,\n});\n\nexport type Actions = typeof all;\n","import { StateI } from \"./spx-update-check.state\";\n\nexport const initialState: StateI = {\n forceWaitForUpdate: false,\n lastCheck: null,\n showError: false,\n};\n","\nimport * as actions from './spx-update-check.actions';\nimport { createFeature, createReducer, on } from '@ngrx/store';\nimport { StateI } from './spx-update-check.state';\nimport { initialState } from './spx-update-check.initial';\nimport { DateTime } from 'luxon';\n \nexport default createFeature({\n name: 'spxUpdateCheck',\n reducer: createReducer(\n initialState,\n on(actions.anUpdateIsReady, (state: StateI): StateI => {\n return {\n ...state,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(actions.clearError, (state: StateI): StateI => {\n return {\n ...state,\n showError: false,\n };\n }),\n on(actions.checkFailed, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n showError: true,\n };\n }),\n on(actions.noUpdateWasFound, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(actions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate\n };\n }),\n on(actions.notAvailableOnWeb, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false\n };\n }),\n ),\n});\n","import { Component } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { runCheck } from './store/spx-update-check/spx-update-check.actions';\nimport { default as updCheck } from './store/spx-update-check/spx-update-check.reducer';\nimport { unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { spxTextCheckingForUpdates, spxTextOneMomentPlease } from '@softpak/components/spx-translate';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'spx-update-page',\n imports: [\n IonContent,\n IonHeader,\n IonToolbar,\n IonTitle,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextOneMomentPlease = spxTextOneMomentPlease;\n\n private subscriptions: {\n updCheck?: Subscription;\n } = {};\n\n ngOnInit() {\n this.appStore.dispatch(runCheck({ forceWaitForUpdate: true }));\n this.subscriptions.updCheck = this.appStore.select(updCheck.selectForceWaitForUpdate).subscribe(forceWaitForUpdate => {\n if (forceWaitForUpdate === false) {\n if (this.activatedRoute.snapshot.data['url'] === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n }\n this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);\n }\n });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navController: NavController,\n ) {\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n {{ spxTextOneMomentPlease | translate | capitalize }}...\n</ion-content>\n","import { createAction, props, union } from '@ngrx/store';\n\nexport const acceptUpdate = createAction('[SPX / Update Pending] Accept update', props<Record<string, unknown>>());\nexport const hasBeenDownloaded = createAction('[SPX / Update Pending] Has been downloaded', props<Record<string, unknown>>());\nexport const hasBeenInstalled = createAction('[SPX / Update Pending] Has been installed', props<Record<string, unknown>>());\nexport const postpone = createAction('[SPX / Update Pending] Postpone', props<Record<string, unknown>>());\nexport const postponeExpired = createAction('[SPX / Update Pending] Postpone expired', props<Record<string, unknown>>());\n\nconst all = union({\n acceptUpdate,\n hasBeenDownloaded,\n hasBeenInstalled,\n postpone,\n postponeExpired,\n});\n\nexport type Actions = typeof all;\n","import { StateI } from \"./spx-update-pending.state\";\n\nexport const initialState: StateI = {\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n};\n","\nimport * as actions from './spx-update-pending.actions';\nimport { createReducer, on, createFeature } from '@ngrx/store';\nimport { StateI } from './spx-update-pending.state';\nimport { initialState } from './spx-update-pending.initial';\n\nexport default createFeature({\n name: 'spxUpdatePending',\n reducer: createReducer(\n initialState,\n on(actions.hasBeenDownloaded, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n updateIsDownloadedAndPending: true,\n };\n }),\n on(actions.hasBeenInstalled, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n };\n }),\n on(actions.postpone, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n };\n }),\n on(actions.postponeExpired, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n };\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, HostBinding, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { acceptUpdate } from './store/spx-update-pending/spx-update-pending.actions';\nimport { default as updPending } from './store/spx-update-pending/spx-update-pending.reducer';\nimport { SpxSeverityEnum, unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextUpdate, spxTextUpdateAvailable } from '@softpak/components/spx-translate';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'spx-update-pending',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-pending.component.html`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxUpdatePendingComponent {\n @HostBinding('style') baseStyle?: SafeStyle;\n availableStoreVersion = signal<undefined | string>(undefined);\n currentStoreVersion = signal<undefined | string>(undefined);\n severitySuccess = SpxSeverityEnum.success;\n showLiveUpdateReady = signal<boolean>(false);\n spxTextUpdate = spxTextUpdate;\n spxTextReadyToBeInstalled = spxTextReadyToBeInstalled;\n spxTextPatchAvailable = spxTextPatchAvailable;\n spxTextUpdateAvailable = spxTextUpdateAvailable;\n spxTextOpenAppStore = spxTextOpenAppStore;\n\n private subscriptions: {\n updPending?: Subscription;\n } = {};\n\n ngOnInit() {\n this.subscriptions.updPending = this.appStore.select(updPending.selectShowLiveUpdateReady).subscribe(showLiveUpdateReady => {\n this.showLiveUpdateReady.set(showLiveUpdateReady);\n if (showLiveUpdateReady) {\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: block;');\n } else {\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: none;');\n }\n });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\n private sanitizer: DomSanitizer,\n ) {}\n\n onUpdate(): void {\n this.appStore.dispatch(acceptUpdate({}));\n }\n}\n","@if (showLiveUpdateReady()) {\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\n <div class=\"grow\">\n <p\n class=\"text-xl font-extrabold bg-clip-text text-transparent bg-[linear-gradient(to_right,theme(colors.green.300),theme(colors.green.100),theme(colors.sky.400),theme(colors.yellow.200),theme(colors.sky.400),theme(colors.green.100),theme(colors.green.300))] bg-[length:200%_auto] animate-gradient\">\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\n </div>\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\n }}</spx-button>\n</div>\n}","export const spxUpdateUrl = '';","import * as actions from './spx-update-check.actions';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Observable, from, of } from 'rxjs';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { SyncResult, getConfig, reload, setConfig, sync } from '@capacitor/live-updates';\nimport { catchError, delay, exhaustMap, map, mergeMap, tap } from 'rxjs/operators';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { Injectable } from '@angular/core';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { captureMessage } from '@sentry/angular';\nimport { hasBeenDownloaded } from '../spx-update-pending/spx-update-pending.actions';\n\n@Injectable()\nexport class Effects {\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.initialize),\n delay(120000),\n mergeMap(() => [\n actions.runCheck({}),\n ]))\n );\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.runCheck),\n tap(async () => {\n if (Capacitor.getPlatform() !== 'web') {\n // Migrate from e.g. 1.2.x to 1.3.x\n const binaryInfo = await App.getInfo()\n const binaryVersionGroup = binaryInfo.version.substring(0, 3);\n const config = await getConfig();\n const channelVersionGroup = config.channel!.split('-')[1].substring(0, 3); // e.g. \"1.4\"\n let channelType = config.channel!.split('-')[0];\n // Temp fix\n if (channelType === 'null') {\n channelType = 'Production';\n }\n // End temp fix\n if (channelType === null || binaryVersionGroup != channelVersionGroup) {\n await setConfig({\n channel: `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`\n });\n }\n // End migrate from e.g. 1.2.x to 1.3.x\n }\n }),\n exhaustMap((action) => from(sync()).pipe(\n map((syncResult: SyncResult) => {\n if (syncResult.activeApplicationPathChanged) {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdate, syncResult.snapshot?.buildId as string);\n if (action.forceWaitForUpdate) {\n reload();\n }\n return actions.anUpdateIsReady({});\n } else {\n return actions.noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });\n }\n }),\n catchError((err) => {\n if (err.message !== 'Not implemented for web only') {\n captureMessage(\"[UPD] Handled: \" + err.message);\n }\n return err.message === 'Not implemented for web only' ? of(actions.notAvailableOnWeb({})) : of(actions.checkFailed({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }))\n })\n )),\n ));\n\n constructor(\n private readonly actions$: Actions,\n ) { }\n\n whenAndUpdateIsReady$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.anUpdateIsReady),\n mergeMap(() => [\n hasBeenDownloaded({}),\n ]))\n );\n\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.checkFailed),\n delay(30000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n actions.runCheck({}),\n ]))\n );\n\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.noUpdateWasFound),\n delay(120000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n actions.runCheck({}),\n ]))\n );\n}\n\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Observable } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport * as actions from './spx-update-pending.actions';\nimport { reload } from '@capacitor/live-updates';\n\n@Injectable()\nexport class Effects {\n\n constructor(\n private readonly actions$: Actions,\n ) { }\n\n whenAccepted$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.acceptUpdate),\n mergeMap(() => {\n reload();\n return []; \n })) as any\n );\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["all","initialState","actions.anUpdateIsReady","actions.clearError","actions.checkFailed","actions.noUpdateWasFound","actions.runCheck","actions.notAvailableOnWeb","actions.hasBeenDownloaded","actions.hasBeenInstalled","actions.postpone","actions.postponeExpired","i2","actions.initialize","i1","Effects","actions.acceptUpdate"],"mappings":"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"}
@@ -85,10 +85,10 @@ class SpxValidationMessagesComponent {
85
85
  }
86
86
  get hidden() { return !this.show(); }
87
87
  get block() { return this.show(); }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxValidationMessagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: SpxValidationMessagesComponent, isStandalone: true, selector: "spx-validation-messages", inputs: { errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: true, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: true, transformFunction: null }, formControlI: { classPropertyName: "formControlI", publicName: "formControlI", isSignal: true, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "fieldLabel", isSignal: true, isRequired: false, transformFunction: null }, submitTried: { classPropertyName: "submitTried", publicName: "submitTried", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.hidden": "this.hidden", "class.block": "this.block" } }, ngImport: i0, template: "\n@if (show()) {\n <div class=\"bg-red-600 rounded-b p-3\">\n @if (errors()[\"maxlength\"]) {\n <div>{{ textTooLong() }}</div>\n }\n @if (errors()[\"minlength\"]) {\n <div>{{ textTooShort() }}</div>\n }\n @if (errors()[\"max\"]) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (errors()[\"min\"]) {\n <div>{{ textTooLow() }}</div>\n }\n @if (errors()[\"pattern\"]) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (errors()[\"required\"]) {\n <div>{{ textRequired() }}</div>\n }\n @if (errors()[\"year\"]) {\n <div>{{ textChoosePast() }}</div>\n }\n @if (errors()[\"yearFuture\"]) {\n <div>{{ textChooseFuture() }}</div>\n }\n @if (errors()[\"month\"]) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (errors()[\"future\"]) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (errors()[\"past\"]) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n @if (errors()[\"invalidCode\"]) {\n <div>{{ textInvalidCode() }}</div>\n }\n </div>\n}", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxValidationMessagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: SpxValidationMessagesComponent, isStandalone: true, selector: "spx-validation-messages", inputs: { errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: true, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: true, transformFunction: null }, formControlI: { classPropertyName: "formControlI", publicName: "formControlI", isSignal: true, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "fieldLabel", isSignal: true, isRequired: false, transformFunction: null }, submitTried: { classPropertyName: "submitTried", publicName: "submitTried", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.hidden": "this.hidden", "class.block": "this.block" } }, ngImport: i0, template: "\n@if (show()) {\n <div class=\"bg-red-600 rounded-b p-3\">\n @if (errors()[\"maxlength\"]) {\n <div>{{ textTooLong() }}</div>\n }\n @if (errors()[\"minlength\"]) {\n <div>{{ textTooShort() }}</div>\n }\n @if (errors()[\"max\"]) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (errors()[\"min\"]) {\n <div>{{ textTooLow() }}</div>\n }\n @if (errors()[\"pattern\"]) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (errors()[\"required\"]) {\n <div>{{ textRequired() }}</div>\n }\n @if (errors()[\"year\"]) {\n <div>{{ textChoosePast() }}</div>\n }\n @if (errors()[\"yearFuture\"]) {\n <div>{{ textChooseFuture() }}</div>\n }\n @if (errors()[\"month\"]) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (errors()[\"future\"]) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (errors()[\"past\"]) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n @if (errors()[\"invalidCode\"]) {\n <div>{{ textInvalidCode() }}</div>\n }\n </div>\n}", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxValidationMessagesComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxValidationMessagesComponent, decorators: [{
92
92
  type: Component,
93
93
  args: [{ selector: 'spx-validation-messages', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "\n@if (show()) {\n <div class=\"bg-red-600 rounded-b p-3\">\n @if (errors()[\"maxlength\"]) {\n <div>{{ textTooLong() }}</div>\n }\n @if (errors()[\"minlength\"]) {\n <div>{{ textTooShort() }}</div>\n }\n @if (errors()[\"max\"]) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (errors()[\"min\"]) {\n <div>{{ textTooLow() }}</div>\n }\n @if (errors()[\"pattern\"]) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (errors()[\"required\"]) {\n <div>{{ textRequired() }}</div>\n }\n @if (errors()[\"year\"]) {\n <div>{{ textChoosePast() }}</div>\n }\n @if (errors()[\"yearFuture\"]) {\n <div>{{ textChooseFuture() }}</div>\n }\n @if (errors()[\"month\"]) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (errors()[\"future\"]) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (errors()[\"past\"]) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n @if (errors()[\"invalidCode\"]) {\n <div>{{ textInvalidCode() }}</div>\n }\n </div>\n}" }]
94
94
  }], propDecorators: { hidden: [{
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-validation-messages.mjs","sources":["../../../../projects/softpak/components/spx-validation-messages/spx-validation-messages.component.ts","../../../../projects/softpak/components/spx-validation-messages/spx-validation-messages.component.html","../../../../projects/softpak/components/spx-validation-messages/softpak-components-spx-validation-messages.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { ChangeDetectionStrategy, Component, HostBinding, computed, effect, inject, input, signal } from '@angular/core';\nimport { spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextInvalidCode, spxTextPatternNotValid, spxTextRequired, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort } from '@softpak/components/spx-translate';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'spx-validation-messages',\n standalone: true,\n templateUrl: './spx-validation-messages.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxValidationMessagesComponent {\n @HostBinding('class.hidden') get hidden() { return !this.show(); }\n @HostBinding('class.block') get block() { return this.show(); }\n public readonly errors = input.required<ValidationErrors>();\n public readonly touched = input.required<boolean>();\n public readonly formControlI = input<AbstractControl<any, any> | undefined>(undefined);\n public readonly fieldLabel = input<string | undefined>(undefined);\n public readonly submitTried = input<boolean | undefined>(undefined);\n protected readonly show = signal(false);\n private readonly shouldShow = computed(() => this.formControlI() && this.errors() && (this.touched() || this.submitTried()));\n\n private pending: ReturnType<typeof setTimeout> | null = null;\n private token = 0;\n\n // Short delay to avoid growing DOM while clicking on something.\n private _delayShow = effect((onCleanup) => {\n const want = this.shouldShow();\n\n // Invalidate any older timeouts.\n this.token++;\n\n // Cancel any in-flight timeout.\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n\n if (want) {\n const myToken = this.token;\n this.pending = setTimeout(() => {\n // Only set true if no newer change happened AND the condition still holds.\n if (myToken === this.token && this.shouldShow()) {\n this.show.set(true);\n }\n }, 500); // your delay\n } else {\n // Turn off immediately.\n this.show.set(false);\n }\n\n // Clean up if the effect is torn down.\n onCleanup(() => {\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n });\n });\n\n translateService = inject(TranslateService);\n\n textTooLong = computed(() => {\n return this.translateService.instant(spxTextTooLong, { fieldLabel: this.fieldLabel(), error: this.errors()[\"maxlength\"].requiredLength });\n });\n\n textTooShort = computed(() => {\n return this.translateService.instant(spxTextTooShort, { fieldLabel: this.fieldLabel(), error: this.errors()[\"minlength\"].requiredLength });\n });\n\n textTooHigh = computed(() => {\n return this.translateService.instant(spxTextTooHigh, { fieldLabel: this.fieldLabel(), error: this.errors()[\"max\"].max });\n });\n\n textTooLow = computed(() => {\n return this.translateService.instant(spxTextTooLow, { fieldLabel: this.fieldLabel(), error: this.errors()[\"min\"].min });\n });\n\n textPatternNotValid = computed(() => {\n return this.translateService.instant(spxTextPatternNotValid, { fieldLabel: this.fieldLabel() });\n });\n\n textRequired = computed(() => {\n return this.translateService.instant(spxTextRequired, { fieldLabel: this.fieldLabel() });\n });\n\n textChoosePast = computed(() => {\n return this.translateService.instant(spxTextChoosePast);\n });\n\n textChooseFuture = computed(() => {\n return this.translateService.instant(spxTextChooseFuture);\n });\n\n textChooseValidMonth = computed(() => {\n return this.translateService.instant(spxTextChooseValidMonth);\n });\n\n textDateMayNotBeFuture = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBeFuture);\n });\n\n textDateMayNotBePast = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBePast);\n });\n\n textInvalidCode = computed(() => {\n return this.translateService.instant(spxTextInvalidCode, { codeName: this.errors()[\"invalidCode\"].name, codeCode: this.errors()[\"invalidCode\"].code });\n });\n\n}\n\n","\n@if (show()) {\n <div class=\"bg-red-600 rounded-b p-3\">\n @if (errors()[\"maxlength\"]) {\n <div>{{ textTooLong() }}</div>\n }\n @if (errors()[\"minlength\"]) {\n <div>{{ textTooShort() }}</div>\n }\n @if (errors()[\"max\"]) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (errors()[\"min\"]) {\n <div>{{ textTooLow() }}</div>\n }\n @if (errors()[\"pattern\"]) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (errors()[\"required\"]) {\n <div>{{ textRequired() }}</div>\n }\n @if (errors()[\"year\"]) {\n <div>{{ textChoosePast() }}</div>\n }\n @if (errors()[\"yearFuture\"]) {\n <div>{{ textChooseFuture() }}</div>\n }\n @if (errors()[\"month\"]) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (errors()[\"future\"]) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (errors()[\"past\"]) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n @if (errors()[\"invalidCode\"]) {\n <div>{{ textInvalidCode() }}</div>\n }\n </div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-validation-messages.mjs","sources":["../../../../projects/softpak/components/spx-validation-messages/spx-validation-messages.component.ts","../../../../projects/softpak/components/spx-validation-messages/spx-validation-messages.component.html","../../../../projects/softpak/components/spx-validation-messages/softpak-components-spx-validation-messages.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { ChangeDetectionStrategy, Component, HostBinding, computed, effect, inject, input, signal } from '@angular/core';\nimport { spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextInvalidCode, spxTextPatternNotValid, spxTextRequired, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort } from '@softpak/components/spx-translate';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'spx-validation-messages',\n standalone: true,\n templateUrl: './spx-validation-messages.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxValidationMessagesComponent {\n @HostBinding('class.hidden') get hidden() { return !this.show(); }\n @HostBinding('class.block') get block() { return this.show(); }\n public readonly errors = input.required<ValidationErrors>();\n public readonly touched = input.required<boolean>();\n public readonly formControlI = input<any>(undefined);\n public readonly fieldLabel = input<string | undefined>(undefined);\n public readonly submitTried = input<boolean | undefined>(undefined);\n protected readonly show = signal(false);\n private readonly shouldShow = computed(() => this.formControlI() && this.errors() && (this.touched() || this.submitTried()));\n\n private pending: ReturnType<typeof setTimeout> | null = null;\n private token = 0;\n\n // Short delay to avoid growing DOM while clicking on something.\n private _delayShow = effect((onCleanup) => {\n const want = this.shouldShow();\n\n // Invalidate any older timeouts.\n this.token++;\n\n // Cancel any in-flight timeout.\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n\n if (want) {\n const myToken = this.token;\n this.pending = setTimeout(() => {\n // Only set true if no newer change happened AND the condition still holds.\n if (myToken === this.token && this.shouldShow()) {\n this.show.set(true);\n }\n }, 500); // your delay\n } else {\n // Turn off immediately.\n this.show.set(false);\n }\n\n // Clean up if the effect is torn down.\n onCleanup(() => {\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n });\n });\n\n translateService = inject(TranslateService);\n\n textTooLong = computed(() => {\n return this.translateService.instant(spxTextTooLong, { fieldLabel: this.fieldLabel(), error: this.errors()[\"maxlength\"].requiredLength });\n });\n\n textTooShort = computed(() => {\n return this.translateService.instant(spxTextTooShort, { fieldLabel: this.fieldLabel(), error: this.errors()[\"minlength\"].requiredLength });\n });\n\n textTooHigh = computed(() => {\n return this.translateService.instant(spxTextTooHigh, { fieldLabel: this.fieldLabel(), error: this.errors()[\"max\"].max });\n });\n\n textTooLow = computed(() => {\n return this.translateService.instant(spxTextTooLow, { fieldLabel: this.fieldLabel(), error: this.errors()[\"min\"].min });\n });\n\n textPatternNotValid = computed(() => {\n return this.translateService.instant(spxTextPatternNotValid, { fieldLabel: this.fieldLabel() });\n });\n\n textRequired = computed(() => {\n return this.translateService.instant(spxTextRequired, { fieldLabel: this.fieldLabel() });\n });\n\n textChoosePast = computed(() => {\n return this.translateService.instant(spxTextChoosePast);\n });\n\n textChooseFuture = computed(() => {\n return this.translateService.instant(spxTextChooseFuture);\n });\n\n textChooseValidMonth = computed(() => {\n return this.translateService.instant(spxTextChooseValidMonth);\n });\n\n textDateMayNotBeFuture = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBeFuture);\n });\n\n textDateMayNotBePast = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBePast);\n });\n\n textInvalidCode = computed(() => {\n return this.translateService.instant(spxTextInvalidCode, { codeName: this.errors()[\"invalidCode\"].name, codeCode: this.errors()[\"invalidCode\"].code });\n });\n\n}\n\n","\n@if (show()) {\n <div class=\"bg-red-600 rounded-b p-3\">\n @if (errors()[\"maxlength\"]) {\n <div>{{ textTooLong() }}</div>\n }\n @if (errors()[\"minlength\"]) {\n <div>{{ textTooShort() }}</div>\n }\n @if (errors()[\"max\"]) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (errors()[\"min\"]) {\n <div>{{ textTooLow() }}</div>\n }\n @if (errors()[\"pattern\"]) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (errors()[\"required\"]) {\n <div>{{ textRequired() }}</div>\n }\n @if (errors()[\"year\"]) {\n <div>{{ textChoosePast() }}</div>\n }\n @if (errors()[\"yearFuture\"]) {\n <div>{{ textChooseFuture() }}</div>\n }\n @if (errors()[\"month\"]) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (errors()[\"future\"]) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (errors()[\"past\"]) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n @if (errors()[\"invalidCode\"]) {\n <div>{{ textInvalidCode() }}</div>\n }\n </div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -257,10 +257,10 @@ class SpxValidateControlComponent {
257
257
  return this.translateService.instant(spxTextInvalidCode, { codeName: this.errors()?.["invalidCode"].name, codeCode: this.errors()?.["invalidCode"].code });
258
258
  }, ...(ngDevMode ? [{ debugName: "textInvalidCode" }] : []));
259
259
  }
260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, submitTried: { classPropertyName: "submitTried", publicName: "submitTried", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: true, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (show()) {\n<div class=\"bg-red-600 rounded-b p-3\">\n @if (maxLength()) {\n <div>{{ textTooLong() }}</div>\n }\n @if (minLength()) {\n <div>{{ textTooShort() }}</div>\n }\n @if (max()) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (min()) {\n <div>{{ textTooLow() }}</div>\n }\n @if (pattern()) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (required()) {\n <div>{{ textRequired() }}</div>\n }\n @if (year()) {\n <div>Please choose a year between 1991 and the current year.</div>\n }\n @if (yearFuture()) {\n <div>Please choose a year between the current year and 2050.</div>\n }\n @if (month()) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (future()) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (past()) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n</div>\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, submitTried: { classPropertyName: "submitTried", publicName: "submitTried", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: true, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (show()) {\n<div class=\"bg-red-600 rounded-b p-3\">\n @if (maxLength()) {\n <div>{{ textTooLong() }}</div>\n }\n @if (minLength()) {\n <div>{{ textTooShort() }}</div>\n }\n @if (max()) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (min()) {\n <div>{{ textTooLow() }}</div>\n }\n @if (pattern()) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (required()) {\n <div>{{ textRequired() }}</div>\n }\n @if (year()) {\n <div>Please choose a year between 1991 and the current year.</div>\n }\n @if (yearFuture()) {\n <div>Please choose a year between the current year and 2050.</div>\n }\n @if (month()) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (future()) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (past()) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n</div>\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
262
262
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
264
264
  type: Component,
265
265
  args: [{ selector: 'spx-validate-control', imports: [
266
266
  FormsModule,
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-validation.mjs","sources":["../../../../projects/softpak/components/spx-validation/required.validator.ts","../../../../projects/softpak/components/spx-validation/max.validator.ts","../../../../projects/softpak/components/spx-validation/maxlength.validator.ts","../../../../projects/softpak/components/spx-validation/min.validator.ts","../../../../projects/softpak/components/spx-validation/minlength.validator.ts","../../../../projects/softpak/components/spx-validation/pattern.validator.ts","../../../../projects/softpak/components/spx-validation/year-and-month.validator.ts","../../../../projects/softpak/components/spx-validation/spx-validate-control.component.ts","../../../../projects/softpak/components/spx-validation/spx-validate-control.component.html","../../../../projects/softpak/components/spx-validation/softpak-components-spx-validation.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorRequired = () => (control: AbstractControl): ValidationErrors | null => {\n if (\n control &&\n valuePairToValue(control.value) === undefined ||\n valuePairToValue(control.value) === null ||\n valuePairToValue(control.value) === '' ||\n valuePairToValue(control.value) === 0\n ) {\n return { required: true };\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMax = (max: number) => (control: AbstractControl): { max: { max: number; actual: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n const value = parseInt(valuePairToValue(control.value).toString(), 10);\n if (!isNaN(value) && value > max) {\n return {\n max: {\n max,\n actual: value\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMaxLength = (maximumLength: number, sanitizer?: (input: string) => string) => (control: AbstractControl): { maxlength: { requiredLength: number; actualLength: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n let value = valuePairToValue(control.value);\n if (sanitizer) {\n value = sanitizer(value.toString());\n }\n if (value.toString().length > maximumLength) {\n return {\n maxlength: {\n requiredLength: maximumLength,\n actualLength: value.toString().length\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMin = (min: number) => (control: AbstractControl): { min: { min: number; actual: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n const value = parseInt(valuePairToValue(control.value).toString(), 10);\n\n if (!isNaN(value) && value < min) {\n return {\n min: {\n min,\n actual: value\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMinLength = (minimumLength: number, sanitizer?: (input: string) => string) => (control: AbstractControl): { minlength: { requiredLength: number; actualLength: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n let value = valuePairToValue(control.value);\n if (sanitizer) {\n value = sanitizer(value.toString());\n }\n if (value.toString().length < minimumLength) {\n return {\n minlength: {\n requiredLength: minimumLength,\n actualLength: value.toString().length\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\nimport { spxValidatorRequired } from './required.validator';\n\nexport const spxValidatorPattern = (matcher: RegExp) => (control: AbstractControl): ValidationErrors | null => {\n if (!spxValidatorRequired()(control)) {\n const matches = valuePairToValue(control.value).toString().match(matcher);\n if (matches === null || matches.length === 0) {\n return { pattern: true };\n }\n }\n return null;\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { DateTime } from 'luxon';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\nimport { spxValidatorRequired } from './required.validator';\n\nexport const spxValidatorYearAndMonth = (future?: boolean) => (control: AbstractControl): ValidationErrors | null => {\n if (!spxValidatorRequired()(control)) {\n const val = valuePairToValue(control.value);\n if (val.toUpperCase() !== 'ACEP') {\n const date = DateTime.fromISO(val);\n const year = date.year;\n const month = date.month;\n if (val.length < 6) {\n return {\n minlength: {\n requiredLength: 6,\n actualLength: val.length\n }\n };\n }\n if (month < 1 || month > 12) {\n return { month: true };\n }\n if (future) {\n if (year > 2050 || year < DateTime.now().year) {\n return { yearFuture: true };\n }\n if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') < DateTime.now()) {\n return { past: true };\n }\n } else {\n if (year < 1971 || year > DateTime.now().year) {\n return { year: true };\n }\n if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') > DateTime.now()) {\n return { future: true };\n }\n }\n }\n }\n return null;\n};\n","import { AbstractControl, FormsModule, ValidationErrors } from '@angular/forms';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, signal } from '@angular/core';\nimport { spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextInvalidCode, spxTextPatternNotValid, spxTextRequired, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort } from '@softpak/components/spx-translate';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'spx-validate-control',\n templateUrl: './spx-validate-control.component.html',\n imports: [\n FormsModule,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxValidateControlComponent {\n readonly control = input.required<AbstractControl>();\n readonly label = input<string | unknown>();\n readonly submitTried = input<boolean>();\n readonly errors = input.required<ValidationErrors | null>();\n readonly touched = input.required<boolean>();\n protected readonly show = signal(false);\n private readonly shouldShow = computed(() => this.control() && this.errors() && (this.touched() || this.submitTried()));\n\n private pending: ReturnType<typeof setTimeout> | null = null;\n private token = 0;\n\n // Short delay to avoid growing DOM while clicking on something.\n private _delayShow = effect((onCleanup) => {\n const want = this.shouldShow();\n\n // Invalidate any older timeouts.\n this.token++;\n\n // Cancel any in-flight timeout.\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n\n if (want) {\n const myToken = this.token;\n this.pending = setTimeout(() => {\n // Only set true if no newer change happened AND the condition still holds.\n if (myToken === this.token && this.shouldShow()) {\n this.show.set(true);\n }\n }, 500); // your delay\n } else {\n // Turn off immediately.\n this.show.set(false);\n }\n\n // Clean up if the effect is torn down.\n onCleanup(() => {\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n });\n });\n\n maxLength = computed(() => {\n return this.errors() && this.errors()!['maxlength'];\n });\n\n maxLengthRequiredLength = computed(() => {\n return this.maxLength() && this.errors() && this.errors()!['maxlength']['requiredLength'];\n });\n\n minLength = computed(() => {\n return this.errors() && this.errors()!['minlength'];\n });\n\n minLengthRequiredLength = computed(() => {\n return this.minLength() && this.errors() && this.errors()!['minlength']['requiredLength'];\n });\n\n max = computed(() => {\n return this.errors() && this.errors()!['max'];\n });\n\n maxRequiredMax = computed(() => {\n return this.max() && this.errors() && this.errors()!['max']['max'];\n });\n\n min = computed(() => {\n return this.errors() && this.errors()!['min'];\n });\n\n minRequiredMin = computed(() => {\n return this.min() && this.errors() && this.errors()!['min']['min'];\n });\n\n pattern = computed(() => {\n return this.errors() && this.errors()!['pattern'];\n });\n\n required = computed(() => {\n return this.errors() && this.errors()!['required'];\n });\n\n year = computed(() => {\n return this.errors() && this.errors()!['year'];\n });\n\n yearFuture = computed(() => {\n return this.errors() && this.errors()!['yearFuture'];\n });\n\n month = computed(() => {\n return this.errors() && this.errors()!['month'];\n });\n\n future = computed(() => {\n return this.errors() && this.errors()!['future'];\n });\n\n past = computed(() => {\n return this.errors() && this.errors()!['past'];\n });\n\n translateService = inject(TranslateService);\n\n textTooLong = computed(() => {\n return this.translateService.instant(spxTextTooLong, { fieldLabel: this.label(), error: this.errors()?.[\"maxlength\"].requiredLength });\n });\n\n textTooShort = computed(() => {\n return this.translateService.instant(spxTextTooShort, { fieldLabel: this.label(), error: this.errors()?.[\"minlength\"].requiredLength });\n });\n\n textTooHigh = computed(() => {\n return this.translateService.instant(spxTextTooHigh, { fieldLabel: this.label(), error: this.errors()?.[\"max\"].max });\n });\n\n textTooLow = computed(() => {\n return this.translateService.instant(spxTextTooLow, { fieldLabel: this.label(), error: this.errors()?.[\"min\"].min });\n });\n\n textPatternNotValid = computed(() => {\n return this.translateService.instant(spxTextPatternNotValid, { fieldLabel: this.label() });\n });\n\n textRequired = computed(() => {\n return this.translateService.instant(spxTextRequired, { fieldLabel: this.label() });\n });\n\n textChoosePast = computed(() => {\n return this.translateService.instant(spxTextChoosePast);\n });\n\n textChooseFuture = computed(() => {\n return this.translateService.instant(spxTextChooseFuture);\n });\n\n textChooseValidMonth = computed(() => {\n return this.translateService.instant(spxTextChooseValidMonth);\n });\n\n textDateMayNotBeFuture = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBeFuture);\n });\n\n textDateMayNotBePast = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBePast);\n });\n\n textInvalidCode = computed(() => {\n return this.translateService.instant(spxTextInvalidCode, { codeName: this.errors()?.[\"invalidCode\"].name, codeCode: this.errors()?.[\"invalidCode\"].code });\n });\n}\n","@if (show()) {\n<div class=\"bg-red-600 rounded-b p-3\">\n @if (maxLength()) {\n <div>{{ textTooLong() }}</div>\n }\n @if (minLength()) {\n <div>{{ textTooShort() }}</div>\n }\n @if (max()) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (min()) {\n <div>{{ textTooLow() }}</div>\n }\n @if (pattern()) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (required()) {\n <div>{{ textRequired() }}</div>\n }\n @if (year()) {\n <div>Please choose a year between 1991 and the current year.</div>\n }\n @if (yearFuture()) {\n <div>Please choose a year between the current year and 2050.</div>\n }\n @if (month()) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (future()) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (past()) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n</div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-validation.mjs","sources":["../../../../projects/softpak/components/spx-validation/required.validator.ts","../../../../projects/softpak/components/spx-validation/max.validator.ts","../../../../projects/softpak/components/spx-validation/maxlength.validator.ts","../../../../projects/softpak/components/spx-validation/min.validator.ts","../../../../projects/softpak/components/spx-validation/minlength.validator.ts","../../../../projects/softpak/components/spx-validation/pattern.validator.ts","../../../../projects/softpak/components/spx-validation/year-and-month.validator.ts","../../../../projects/softpak/components/spx-validation/spx-validate-control.component.ts","../../../../projects/softpak/components/spx-validation/spx-validate-control.component.html","../../../../projects/softpak/components/spx-validation/softpak-components-spx-validation.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorRequired = () => (control: AbstractControl): ValidationErrors | null => {\n if (\n control &&\n valuePairToValue(control.value) === undefined ||\n valuePairToValue(control.value) === null ||\n valuePairToValue(control.value) === '' ||\n valuePairToValue(control.value) === 0\n ) {\n return { required: true };\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMax = (max: number) => (control: AbstractControl): { max: { max: number; actual: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n const value = parseInt(valuePairToValue(control.value).toString(), 10);\n if (!isNaN(value) && value > max) {\n return {\n max: {\n max,\n actual: value\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMaxLength = (maximumLength: number, sanitizer?: (input: string) => string) => (control: AbstractControl): { maxlength: { requiredLength: number; actualLength: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n let value = valuePairToValue(control.value);\n if (sanitizer) {\n value = sanitizer(value.toString());\n }\n if (value.toString().length > maximumLength) {\n return {\n maxlength: {\n requiredLength: maximumLength,\n actualLength: value.toString().length\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMin = (min: number) => (control: AbstractControl): { min: { min: number; actual: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n const value = parseInt(valuePairToValue(control.value).toString(), 10);\n\n if (!isNaN(value) && value < min) {\n return {\n min: {\n min,\n actual: value\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl } from '@angular/forms';\nimport { spxValidatorRequired } from './required.validator';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\nexport const spxValidatorMinLength = (minimumLength: number, sanitizer?: (input: string) => string) => (control: AbstractControl): { minlength: { requiredLength: number; actualLength: number } } | null => {\n if (!spxValidatorRequired()(control)) {\n let value = valuePairToValue(control.value);\n if (sanitizer) {\n value = sanitizer(value.toString());\n }\n if (value.toString().length < minimumLength) {\n return {\n minlength: {\n requiredLength: minimumLength,\n actualLength: value.toString().length\n }\n };\n }\n }\n return null;\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\nimport { spxValidatorRequired } from './required.validator';\n\nexport const spxValidatorPattern = (matcher: RegExp) => (control: AbstractControl): ValidationErrors | null => {\n if (!spxValidatorRequired()(control)) {\n const matches = valuePairToValue(control.value).toString().match(matcher);\n if (matches === null || matches.length === 0) {\n return { pattern: true };\n }\n }\n return null;\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { DateTime } from 'luxon';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\nimport { spxValidatorRequired } from './required.validator';\n\nexport const spxValidatorYearAndMonth = (future?: boolean) => (control: AbstractControl): ValidationErrors | null => {\n if (!spxValidatorRequired()(control)) {\n const val = valuePairToValue(control.value);\n if (val.toUpperCase() !== 'ACEP') {\n const date = DateTime.fromISO(val);\n const year = date.year;\n const month = date.month;\n if (val.length < 6) {\n return {\n minlength: {\n requiredLength: 6,\n actualLength: val.length\n }\n };\n }\n if (month < 1 || month > 12) {\n return { month: true };\n }\n if (future) {\n if (year > 2050 || year < DateTime.now().year) {\n return { yearFuture: true };\n }\n if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') < DateTime.now()) {\n return { past: true };\n }\n } else {\n if (year < 1971 || year > DateTime.now().year) {\n return { year: true };\n }\n if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') > DateTime.now()) {\n return { future: true };\n }\n }\n }\n }\n return null;\n};\n","import { AbstractControl, FormsModule, ValidationErrors } from '@angular/forms';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, signal } from '@angular/core';\nimport { spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextInvalidCode, spxTextPatternNotValid, spxTextRequired, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort } from '@softpak/components/spx-translate';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'spx-validate-control',\n templateUrl: './spx-validate-control.component.html',\n imports: [\n FormsModule,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxValidateControlComponent {\n readonly control = input.required<AbstractControl>();\n readonly label = input<string | unknown>();\n readonly submitTried = input<boolean>();\n readonly errors = input.required<ValidationErrors | null>();\n readonly touched = input.required<boolean>();\n protected readonly show = signal(false);\n private readonly shouldShow = computed(() => this.control() && this.errors() && (this.touched() || this.submitTried()));\n\n private pending: ReturnType<typeof setTimeout> | null = null;\n private token = 0;\n\n // Short delay to avoid growing DOM while clicking on something.\n private _delayShow = effect((onCleanup) => {\n const want = this.shouldShow();\n\n // Invalidate any older timeouts.\n this.token++;\n\n // Cancel any in-flight timeout.\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n\n if (want) {\n const myToken = this.token;\n this.pending = setTimeout(() => {\n // Only set true if no newer change happened AND the condition still holds.\n if (myToken === this.token && this.shouldShow()) {\n this.show.set(true);\n }\n }, 500); // your delay\n } else {\n // Turn off immediately.\n this.show.set(false);\n }\n\n // Clean up if the effect is torn down.\n onCleanup(() => {\n if (this.pending) {\n clearTimeout(this.pending);\n this.pending = null;\n }\n });\n });\n\n maxLength = computed(() => {\n return this.errors() && this.errors()!['maxlength'];\n });\n\n maxLengthRequiredLength = computed(() => {\n return this.maxLength() && this.errors() && this.errors()!['maxlength']['requiredLength'];\n });\n\n minLength = computed(() => {\n return this.errors() && this.errors()!['minlength'];\n });\n\n minLengthRequiredLength = computed(() => {\n return this.minLength() && this.errors() && this.errors()!['minlength']['requiredLength'];\n });\n\n max = computed(() => {\n return this.errors() && this.errors()!['max'];\n });\n\n maxRequiredMax = computed(() => {\n return this.max() && this.errors() && this.errors()!['max']['max'];\n });\n\n min = computed(() => {\n return this.errors() && this.errors()!['min'];\n });\n\n minRequiredMin = computed(() => {\n return this.min() && this.errors() && this.errors()!['min']['min'];\n });\n\n pattern = computed(() => {\n return this.errors() && this.errors()!['pattern'];\n });\n\n required = computed(() => {\n return this.errors() && this.errors()!['required'];\n });\n\n year = computed(() => {\n return this.errors() && this.errors()!['year'];\n });\n\n yearFuture = computed(() => {\n return this.errors() && this.errors()!['yearFuture'];\n });\n\n month = computed(() => {\n return this.errors() && this.errors()!['month'];\n });\n\n future = computed(() => {\n return this.errors() && this.errors()!['future'];\n });\n\n past = computed(() => {\n return this.errors() && this.errors()!['past'];\n });\n\n translateService = inject(TranslateService);\n\n textTooLong = computed(() => {\n return this.translateService.instant(spxTextTooLong, { fieldLabel: this.label(), error: this.errors()?.[\"maxlength\"].requiredLength });\n });\n\n textTooShort = computed(() => {\n return this.translateService.instant(spxTextTooShort, { fieldLabel: this.label(), error: this.errors()?.[\"minlength\"].requiredLength });\n });\n\n textTooHigh = computed(() => {\n return this.translateService.instant(spxTextTooHigh, { fieldLabel: this.label(), error: this.errors()?.[\"max\"].max });\n });\n\n textTooLow = computed(() => {\n return this.translateService.instant(spxTextTooLow, { fieldLabel: this.label(), error: this.errors()?.[\"min\"].min });\n });\n\n textPatternNotValid = computed(() => {\n return this.translateService.instant(spxTextPatternNotValid, { fieldLabel: this.label() });\n });\n\n textRequired = computed(() => {\n return this.translateService.instant(spxTextRequired, { fieldLabel: this.label() });\n });\n\n textChoosePast = computed(() => {\n return this.translateService.instant(spxTextChoosePast);\n });\n\n textChooseFuture = computed(() => {\n return this.translateService.instant(spxTextChooseFuture);\n });\n\n textChooseValidMonth = computed(() => {\n return this.translateService.instant(spxTextChooseValidMonth);\n });\n\n textDateMayNotBeFuture = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBeFuture);\n });\n\n textDateMayNotBePast = computed(() => {\n return this.translateService.instant(spxTextDateMayNotBePast);\n });\n\n textInvalidCode = computed(() => {\n return this.translateService.instant(spxTextInvalidCode, { codeName: this.errors()?.[\"invalidCode\"].name, codeCode: this.errors()?.[\"invalidCode\"].code });\n });\n}\n","@if (show()) {\n<div class=\"bg-red-600 rounded-b p-3\">\n @if (maxLength()) {\n <div>{{ textTooLong() }}</div>\n }\n @if (minLength()) {\n <div>{{ textTooShort() }}</div>\n }\n @if (max()) {\n <div>{{ textTooHigh() }}</div>\n }\n @if (min()) {\n <div>{{ textTooLow() }}</div>\n }\n @if (pattern()) {\n <div>{{ textPatternNotValid() }}</div>\n }\n @if (required()) {\n <div>{{ textRequired() }}</div>\n }\n @if (year()) {\n <div>Please choose a year between 1991 and the current year.</div>\n }\n @if (yearFuture()) {\n <div>Please choose a year between the current year and 2050.</div>\n }\n @if (month()) {\n <div>{{ textChooseValidMonth() }}</div>\n }\n @if (future()) {\n <div>{{ textDateMayNotBeFuture() }}</div>\n }\n @if (past()) {\n <div>{{ textDateMayNotBePast() }}</div>\n }\n</div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -111,10 +111,10 @@ class SpxWelcomeComponent {
111
111
  }));
112
112
  }
113
113
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxWelcomeComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: SpxWelcomeComponent, isStandalone: true, selector: "spx-welcome", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ textSelectYourCompany | translate | capitalize }}\n </ion-title>\n <ion-buttons slot=\"end\">\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <form [formGroup]=\"formGroup()!\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxForm]=\"form()\"\n [spxFormGroup]=\"formSection()\"\n [spxSuggestions]=\"suggestions()\">\n </spx-form-view>\n </form>\n</ion-content>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxForm", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxWelcomeComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: SpxWelcomeComponent, isStandalone: true, selector: "spx-welcome", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ textSelectYourCompany | translate | capitalize }}\n </ion-title>\n <ion-buttons slot=\"end\">\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <form [formGroup]=\"formGroup()!\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxForm]=\"form()\"\n [spxFormGroup]=\"formSection()\"\n [spxSuggestions]=\"suggestions()\">\n </spx-form-view>\n </form>\n</ion-content>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxForm", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: SpxWelcomeComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxWelcomeComponent, decorators: [{
118
118
  type: Component,
119
119
  args: [{ selector: 'spx-welcome', imports: [
120
120
  FormsModule,
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-welcome.mjs","sources":["../../../../projects/softpak/components/spx-welcome/spx-welcome.component.ts","../../../../projects/softpak/components/spx-welcome/spx-welcome.component.html","../../../../projects/softpak/components/spx-welcome/softpak-components-spx-welcome.ts"],"sourcesContent":["import { Component, OnInit, OnDestroy, signal, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { SpxFormButtonTypeEnum, SpxFormI, SpxFormViewComponent } from '@softpak/components/spx-form-view';\nimport { SpxSeverityEnum, unsubscribeSubscriptions, valuePairToValue } from '@softpak/components/spx-helpers';\nimport { SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { spxValidatorRequired } from '@softpak/components/spx-validation';\nimport { Subscription } from 'rxjs';\nimport { spxTextChannel, spxTextCompany, spxTextSelect, spxTextSelectYourCompany } from '@softpak/components/spx-translate';\nimport { IonHeader, IonToolbar, IonTitle, IonButtons, IonContent } from '@ionic/angular/standalone';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { spxToasterActions, SpxToasterAutoCloseSpeedEnum } from '@softpak/components/spx-toaster';\nimport { spxChannelReducer, spxChannelActions } from '@softpak/components/spx-channel-selection';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Capacitor } from '@capacitor/core';\n\nexport const spxSectionWelcome = 'welcome';\nexport const spxCtrlChannel = 'channel';\nexport const spxCtrlChannelType = 'channelType';\n\n@Component({\n selector: 'spx-welcome',\n templateUrl: './spx-welcome.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n SpxCapitalizePipe,\n SpxFormViewComponent,\n IonHeader,\n IonToolbar,\n IonTitle,\n IonButtons,\n IonContent,\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxWelcomeComponent implements OnInit, OnDestroy {\n allChannels = toSignal(this.store.select(spxChannelReducer.default.selectChannels));\n allBrands = computed(() => this.allChannels()?.filter(channel => channel.channelTypes.map(type => type.name).includes(SpxAppChannelTypeEnum.production)).map(c => ({ description: c.brand, value: c.brand })));\n inputBrand = signal<string | null>(null);\n inputChannelType = signal<SpxAppChannelTypeEnum | null>(null);\n selectedBrand = computed(() => this.allChannels()?.find(c => c.brand === this.inputBrand()));\n channelTypeSuggestions = computed(() => this.selectedBrand()?.channelTypes?.filter(channelType => Capacitor.getPlatform() === 'web' ? channelType.webUrl !== undefined : channelType.webUrl === undefined)?.map(channelType => ({\n description: channelType.name,\n value: channelType.name\n })));\n\n protected readonly formGroup = signal<FormGroup | undefined>(undefined);\n protected readonly suggestions = signal<{\n [spxCtrlChannelType]?: SpxValuePair<string>[];\n [spxCtrlChannel]?: SpxValuePair<string>[];\n }>({\n [spxCtrlChannelType]: [],\n [spxCtrlChannel]: [],\n });\n\n textChannel = spxTextChannel;\n textCompany = spxTextCompany;\n textSelect = spxTextSelect;\n textSelectYourCompany = spxTextSelectYourCompany;\n\n protected readonly formSection = computed(() => this.formGroup()?.get(spxSectionWelcome) as FormGroup);\n private readonly ctrlChannel = computed(() => this.formSection()?.get(spxCtrlChannel) as FormControl);\n private readonly ctrlChannelType = computed(() => this.formSection()?.get(spxCtrlChannelType) as FormControl);\n private subscriptions: {\n channel?: Subscription;\n channelType?: Subscription;\n } = {};\n\n protected readonly form = signal<SpxFormI>({\n buttons: [\n {\n severity: SpxSeverityEnum.success,\n type: SpxFormButtonTypeEnum.submit,\n label: () => this.textSelect,\n }\n ],\n sections: [\n {\n key: spxSectionWelcome,\n showTitle: () => false,\n fields: [\n {\n key: spxCtrlChannel,\n type: () => SpxInputTypeEnum.radio,\n label: () => this.textCompany,\n validators: () => [spxValidatorRequired()],\n },\n {\n key: spxCtrlChannelType,\n type: () => SpxInputTypeEnum.radio,\n label: () => this.textChannel,\n capitalize: () => true,\n show: () => valuePairToValue(this.ctrlChannel().value),\n validators: () => [spxValidatorRequired()],\n },\n ]\n }\n ]\n });\n\n constructor(\n private readonly store: Store,\n private readonly formBuilder: FormBuilder\n ) {\n this.formGroup.set(this.formBuilder.group({\n [spxSectionWelcome]: SpxFormViewComponent.createForm(this.form())\n }));\n }\n\n ngOnDestroy(): void {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n ngOnInit(): void {\n this.suggestions()[spxCtrlChannel] = this.allBrands();\n\n this.subscriptions.channel = this.ctrlChannel().valueChanges.subscribe(valuePair => {\n this.inputBrand.set(valuePairToValue(valuePair));\n this.suggestions()[spxCtrlChannelType] = this.channelTypeSuggestions();\n this.ctrlChannelType().setValue({\n value: SpxAppChannelTypeEnum.production,\n });\n });\n\n this.subscriptions.channelType = this.ctrlChannelType().valueChanges.subscribe(valuePair => {\n this.inputChannelType.set(valuePairToValue(this.ctrlChannelType().value));\n });\n }\n\n protected onSubmit(): void {\n if (!this.selectedBrand() || !this.inputChannelType()) {\n this.store.dispatch(spxToasterActions.createWarning({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: 'Please select a company',\n }))\n } else {\n this.store.dispatch(spxChannelActions.choose({\n channel: this.selectedBrand()!,\n channelType: this.inputChannelType()!,\n }));\n }\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ textSelectYourCompany | translate | capitalize }}\n </ion-title>\n <ion-buttons slot=\"end\">\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <form [formGroup]=\"formGroup()!\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxForm]=\"form()\"\n [spxFormGroup]=\"formSection()\"\n [spxSuggestions]=\"suggestions()\">\n </spx-form-view>\n </form>\n</ion-content>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-welcome.mjs","sources":["../../../../projects/softpak/components/spx-welcome/spx-welcome.component.ts","../../../../projects/softpak/components/spx-welcome/spx-welcome.component.html","../../../../projects/softpak/components/spx-welcome/softpak-components-spx-welcome.ts"],"sourcesContent":["import { Component, OnInit, OnDestroy, signal, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { SpxFormButtonTypeEnum, SpxFormI, SpxFormViewComponent } from '@softpak/components/spx-form-view';\nimport { SpxSeverityEnum, unsubscribeSubscriptions, valuePairToValue } from '@softpak/components/spx-helpers';\nimport { SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { spxValidatorRequired } from '@softpak/components/spx-validation';\nimport { Subscription } from 'rxjs';\nimport { spxTextChannel, spxTextCompany, spxTextSelect, spxTextSelectYourCompany } from '@softpak/components/spx-translate';\nimport { IonHeader, IonToolbar, IonTitle, IonButtons, IonContent } from '@ionic/angular/standalone';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { spxToasterActions, SpxToasterAutoCloseSpeedEnum } from '@softpak/components/spx-toaster';\nimport { spxChannelReducer, spxChannelActions } from '@softpak/components/spx-channel-selection';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Capacitor } from '@capacitor/core';\n\nexport const spxSectionWelcome = 'welcome';\nexport const spxCtrlChannel = 'channel';\nexport const spxCtrlChannelType = 'channelType';\n\n@Component({\n selector: 'spx-welcome',\n templateUrl: './spx-welcome.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n SpxCapitalizePipe,\n SpxFormViewComponent,\n IonHeader,\n IonToolbar,\n IonTitle,\n IonButtons,\n IonContent,\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxWelcomeComponent implements OnInit, OnDestroy {\n allChannels = toSignal(this.store.select(spxChannelReducer.default.selectChannels));\n allBrands = computed(() => this.allChannels()?.filter(channel => channel.channelTypes.map(type => type.name).includes(SpxAppChannelTypeEnum.production)).map(c => ({ description: c.brand, value: c.brand })));\n inputBrand = signal<string | null>(null);\n inputChannelType = signal<SpxAppChannelTypeEnum | null>(null);\n selectedBrand = computed(() => this.allChannels()?.find(c => c.brand === this.inputBrand()));\n channelTypeSuggestions = computed(() => this.selectedBrand()?.channelTypes?.filter(channelType => Capacitor.getPlatform() === 'web' ? channelType.webUrl !== undefined : channelType.webUrl === undefined)?.map(channelType => ({\n description: channelType.name,\n value: channelType.name\n })));\n\n protected readonly formGroup = signal<FormGroup | undefined>(undefined);\n protected readonly suggestions = signal<{\n [spxCtrlChannelType]?: SpxValuePair<string>[];\n [spxCtrlChannel]?: SpxValuePair<string>[];\n }>({\n [spxCtrlChannelType]: [],\n [spxCtrlChannel]: [],\n });\n\n textChannel = spxTextChannel;\n textCompany = spxTextCompany;\n textSelect = spxTextSelect;\n textSelectYourCompany = spxTextSelectYourCompany;\n\n protected readonly formSection = computed(() => this.formGroup()?.get(spxSectionWelcome) as FormGroup);\n private readonly ctrlChannel = computed(() => this.formSection()?.get(spxCtrlChannel) as FormControl);\n private readonly ctrlChannelType = computed(() => this.formSection()?.get(spxCtrlChannelType) as FormControl);\n private subscriptions: {\n channel?: Subscription;\n channelType?: Subscription;\n } = {};\n\n protected readonly form = signal<SpxFormI>({\n buttons: [\n {\n severity: SpxSeverityEnum.success,\n type: SpxFormButtonTypeEnum.submit,\n label: () => this.textSelect,\n }\n ],\n sections: [\n {\n key: spxSectionWelcome,\n showTitle: () => false,\n fields: [\n {\n key: spxCtrlChannel,\n type: () => SpxInputTypeEnum.radio,\n label: () => this.textCompany,\n validators: () => [spxValidatorRequired()],\n },\n {\n key: spxCtrlChannelType,\n type: () => SpxInputTypeEnum.radio,\n label: () => this.textChannel,\n capitalize: () => true,\n show: () => valuePairToValue(this.ctrlChannel().value),\n validators: () => [spxValidatorRequired()],\n },\n ]\n }\n ]\n });\n\n constructor(\n private readonly store: Store,\n private readonly formBuilder: FormBuilder\n ) {\n this.formGroup.set(this.formBuilder.group({\n [spxSectionWelcome]: SpxFormViewComponent.createForm(this.form())\n }));\n }\n\n ngOnDestroy(): void {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n ngOnInit(): void {\n this.suggestions()[spxCtrlChannel] = this.allBrands();\n\n this.subscriptions.channel = this.ctrlChannel().valueChanges.subscribe(valuePair => {\n this.inputBrand.set(valuePairToValue(valuePair));\n this.suggestions()[spxCtrlChannelType] = this.channelTypeSuggestions();\n this.ctrlChannelType().setValue({\n value: SpxAppChannelTypeEnum.production,\n });\n });\n\n this.subscriptions.channelType = this.ctrlChannelType().valueChanges.subscribe(valuePair => {\n this.inputChannelType.set(valuePairToValue(this.ctrlChannelType().value));\n });\n }\n\n protected onSubmit(): void {\n if (!this.selectedBrand() || !this.inputChannelType()) {\n this.store.dispatch(spxToasterActions.createWarning({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: 'Please select a company',\n }))\n } else {\n this.store.dispatch(spxChannelActions.choose({\n channel: this.selectedBrand()!,\n channelType: this.inputChannelType()!,\n }));\n }\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ textSelectYourCompany | translate | capitalize }}\n </ion-title>\n <ion-buttons slot=\"end\">\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <form [formGroup]=\"formGroup()!\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxForm]=\"form()\"\n [spxFormGroup]=\"formSection()\"\n [spxSuggestions]=\"suggestions()\">\n </spx-form-view>\n </form>\n</ion-content>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}