@softpak/components 19.18.0 → 19.19.0

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 (64) hide show
  1. package/README.md +24 -24
  2. package/fesm2022/softpak-components-spx-404-page.mjs +2 -2
  3. package/fesm2022/softpak-components-spx-404-page.mjs.map +1 -1
  4. package/fesm2022/softpak-components-spx-alert.mjs +2 -2
  5. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  6. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  7. package/fesm2022/softpak-components-spx-app-expiry.mjs +56 -56
  8. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  9. package/fesm2022/softpak-components-spx-button.mjs +2 -2
  10. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  11. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  12. package/fesm2022/softpak-components-spx-card.mjs +56 -56
  13. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  14. package/fesm2022/softpak-components-spx-change-details.mjs +54 -19
  15. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  16. package/fesm2022/softpak-components-spx-channel-selection.mjs +52 -52
  17. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  18. package/fesm2022/softpak-components-spx-check-digit.mjs +2 -2
  19. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  20. package/fesm2022/softpak-components-spx-confirm.mjs +4 -4
  21. package/fesm2022/softpak-components-spx-confirm.mjs.map +1 -1
  22. package/fesm2022/softpak-components-spx-form-section.mjs +20 -20
  23. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  24. package/fesm2022/softpak-components-spx-form-view.mjs +4 -4
  25. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  26. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  27. package/fesm2022/softpak-components-spx-inputs.mjs +20 -20
  28. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  29. package/fesm2022/softpak-components-spx-navigation.mjs +44 -44
  30. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  31. package/fesm2022/softpak-components-spx-number-check.mjs +76 -76
  32. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  33. package/fesm2022/softpak-components-spx-pagination.mjs +2 -2
  34. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  35. package/fesm2022/softpak-components-spx-patch.mjs +24 -24
  36. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-pipes.mjs.map +1 -1
  38. package/fesm2022/softpak-components-spx-progress-bar.mjs +14 -14
  39. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  40. package/fesm2022/softpak-components-spx-spinner.mjs +142 -142
  41. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  42. package/fesm2022/softpak-components-spx-stock-info.mjs +2 -2
  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 +2 -2
  46. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  47. package/fesm2022/softpak-components-spx-toaster.mjs +92 -92
  48. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  49. package/fesm2022/softpak-components-spx-toggle.mjs +34 -0
  50. package/fesm2022/softpak-components-spx-toggle.mjs.map +1 -0
  51. package/fesm2022/softpak-components-spx-translate.mjs.map +1 -1
  52. package/fesm2022/softpak-components-spx-update.mjs +4 -4
  53. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  54. package/fesm2022/softpak-components-spx-validation.mjs +2 -2
  55. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  56. package/package.json +24 -20
  57. package/spx-change-details/spx-change-details.component.d.ts +4 -2
  58. package/spx-helpers/input-alert.interface.d.ts +5 -0
  59. package/spx-helpers/public-api.d.ts +1 -0
  60. package/spx-inputs/spx-input.component.d.ts +1 -1
  61. package/spx-toggle/index.d.ts +5 -0
  62. package/spx-toggle/public-api.d.ts +1 -0
  63. package/spx-toggle/src/spx-toggle.component.d.ts +12 -0
  64. package/tailwind.css +1 -1
@@ -0,0 +1,34 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, model, Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { FormsModule } from '@angular/forms';
5
+
6
+ class SpxToggleComponent {
7
+ constructor() {
8
+ this.control = input();
9
+ this.spxToggled = model(false);
10
+ this.spxLabelPlacement = input("end");
11
+ }
12
+ ngOnInit() {
13
+ const toggled = this.control()?.value === true;
14
+ this.spxToggled.set(toggled);
15
+ }
16
+ onValueChange(value) {
17
+ this.control()?.setValue(value);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: SpxToggleComponent, isStandalone: true, selector: "spx-toggle", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null }, spxToggled: { classPropertyName: "spxToggled", publicName: "spxToggled", isSignal: true, isRequired: false, transformFunction: null }, spxLabelPlacement: { classPropertyName: "spxLabelPlacement", publicName: "spxLabelPlacement", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { spxToggled: "spxToggledChange" }, ngImport: i0, template: "<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>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxToggleComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'spx-toggle', standalone: true, imports: [
25
+ FormsModule
26
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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>" }]
27
+ }] });
28
+
29
+ /**
30
+ * Generated bundle index. Do not edit.
31
+ */
32
+
33
+ export { SpxToggleComponent };
34
+ //# sourceMappingURL=softpak-components-spx-toggle.mjs.map
@@ -0,0 +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,IAAO,CAAA,OAAA,GAAG,KAAK,EAAe;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC;AAClC,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAkB,KAAK,CAAC;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,EACP,OAAA,EAAA;wBACP;qBACD,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k3BAAA,EAAA;;;AEZnD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-translate.mjs","sources":["../../../../projects/softpak/components/spx-translate/spx-translate._const.ts","../../../../projects/softpak/components/spx-translate/spx-translate.en.ts","../../../../projects/softpak/components/spx-translate/spx-translate.nl.ts","../../../../projects/softpak/components/spx-translate/softpak-components-spx-translate.ts"],"sourcesContent":["export const spxTextCheckingForUpdates = 'spxTextCheckingForUpdates';\r\nexport const spxTextOneMomentPlease = 'spxTextOneMomentPlease';\r\nexport const spxTextPatchAvailable = 'spxTextPatchAvailable';\r\nexport const spxTextUpdateAvailable = 'spxTextUpdateAvailable';\r\nexport const spxTextReadyToBeInstalled = 'spxTextReadyToBeInstalled';\r\nexport const spxTextUpdate = 'spxTextUpdate';\r\nexport const spxTextOpenAppStore = 'spxTextOpenAppStore';\r\nexport const spxTextChannel = 'spxTextChannel';\r\nexport const spxTextCompany = 'spxTextCompany';\r\nexport const spxTextSelect = 'spxTextSelect';\r\nexport const spxTextSelectYourCompany = 'spxSelectYourCompany';\r\nexport const spxTextChange = 'spxTextChange';\r\nexport const spxText404PageNotFound = \"spxText404PageNotFound\";\r\nexport const spxTextPageNotFound = \"spxTextPageNotFound\";\r\nexport const spxTextPageNotFoundDescription = \"spxTextPageNotFoundDescription\";\r\nexport const spxTextGoHome = \"spxTextGoHome\";\r\n\r\nexport interface SpxTranslateI {\r\n [spxTextChange]: string;\r\n [spxTextCheckingForUpdates]: string;\r\n [spxTextOneMomentPlease]: string;\r\n [spxTextPatchAvailable]: string;\r\n [spxTextUpdateAvailable]: string;\r\n [spxTextReadyToBeInstalled]: string;\r\n [spxTextUpdate]: string;\r\n [spxTextOpenAppStore]: string;\r\n [spxTextChannel]: string;\r\n [spxTextCompany]: string;\r\n [spxTextSelect]: string;\r\n [spxTextSelectYourCompany]: string;\r\n [spxText404PageNotFound]: string;\r\n [spxTextPageNotFound]: string;\r\n [spxTextPageNotFoundDescription]: string;\r\n [spxTextGoHome]: string;\r\n}\r\n","import { spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextGoHome, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextSelect, spxTextSelectYourCompany, spxTextUpdate, spxTextUpdateAvailable, SpxTranslateI } from \"./spx-translate._const\";\r\n\r\nexport const SpxTranslateEn: SpxTranslateI = {\r\n [spxTextCheckingForUpdates]: 'checking for updates',\r\n [spxTextOneMomentPlease]: 'one moment please',\r\n [spxTextReadyToBeInstalled]: 'ready to be installed',\r\n [spxTextPatchAvailable]: 'patch available',\r\n [spxTextUpdateAvailable]: 'update available',\r\n [spxTextUpdate]: 'update',\r\n [spxTextOpenAppStore]: 'open app store',\r\n [spxTextChannel]: 'channel',\r\n [spxTextCompany]: 'company',\r\n [spxTextSelect]: 'select',\r\n [spxTextSelectYourCompany]: 'select your company',\r\n [spxTextChange]: 'change',\r\n [spxText404PageNotFound]: \"404 page not found\",\r\n [spxTextPageNotFound]: \"Page not found\",\r\n [spxTextPageNotFoundDescription]: \"Sorry, the page you’re looking for doesn’t exist or has been moved.\",\r\n [spxTextGoHome]: \"Go home\"\r\n}\r\n","import { spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextGoHome, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextSelect, spxTextSelectYourCompany, spxTextUpdate, spxTextUpdateAvailable, SpxTranslateI } from \"./spx-translate._const\";\r\n\r\nexport const SpxTranslateNl: SpxTranslateI = {\r\n [spxTextCheckingForUpdates]: 'controleren op updates',\r\n [spxTextOneMomentPlease]: 'een moment geduld alstublieft',\r\n [spxTextReadyToBeInstalled]: 'ready to be installed',\r\n [spxTextPatchAvailable]: 'patch available',\r\n [spxTextUpdateAvailable]: 'update available',\r\n [spxTextUpdate]: 'updaten',\r\n [spxTextOpenAppStore]: 'open app store',\r\n [spxTextChannel]: 'kanaal',\r\n [spxTextCompany]: 'bedrijf',\r\n [spxTextSelect]: 'selecteer',\r\n [spxTextSelectYourCompany]: 'selecteer uw bedrijf',\r\n [spxTextChange]: 'wissel',\r\n [spxText404PageNotFound]: \"404 pagina niet gevonden\",\r\n [spxTextPageNotFound]: \"Pagina niet gevonden\",\r\n [spxTextPageNotFoundDescription]: \"Sorry, de pagina die u zoekt bestaat niet of is verplaatst.\",\r\n [spxTextGoHome]: \"Ga naar het hoofdscherm\"\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,yBAAyB,GAAG;AAClC,MAAM,sBAAsB,GAAG;AAC/B,MAAM,qBAAqB,GAAG;AAC9B,MAAM,sBAAsB,GAAG;AAC/B,MAAM,yBAAyB,GAAG;AAClC,MAAM,aAAa,GAAG;AACtB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,cAAc,GAAG;AACvB,MAAM,cAAc,GAAG;AACvB,MAAM,aAAa,GAAG;AACtB,MAAM,wBAAwB,GAAG;AACjC,MAAM,aAAa,GAAG;AACtB,MAAM,sBAAsB,GAAG;AAC/B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,8BAA8B,GAAG;AACvC,MAAM,aAAa,GAAG;;ACbhB,MAAA,cAAc,GAAkB;IAC3C,CAAC,yBAAyB,GAAG,sBAAsB;IACnD,CAAC,sBAAsB,GAAG,mBAAmB;IAC7C,CAAC,yBAAyB,GAAG,uBAAuB;IACpD,CAAC,qBAAqB,GAAG,iBAAiB;IAC1C,CAAC,sBAAsB,GAAG,kBAAkB;IAC5C,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,wBAAwB,GAAG,qBAAqB;IACjD,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,sBAAsB,GAAG,oBAAoB;IAC9C,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,8BAA8B,GAAG,qEAAqE;IACvG,CAAC,aAAa,GAAG;;;AChBN,MAAA,cAAc,GAAkB;IAC3C,CAAC,yBAAyB,GAAG,wBAAwB;IACrD,CAAC,sBAAsB,GAAG,+BAA+B;IACzD,CAAC,yBAAyB,GAAG,uBAAuB;IACpD,CAAC,qBAAqB,GAAG,iBAAiB;IAC1C,CAAC,sBAAsB,GAAG,kBAAkB;IAC5C,CAAC,aAAa,GAAG,SAAS;IAC1B,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,cAAc,GAAG,QAAQ;IAC1B,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,aAAa,GAAG,WAAW;IAC5B,CAAC,wBAAwB,GAAG,sBAAsB;IAClD,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,sBAAsB,GAAG,0BAA0B;IACpD,CAAC,mBAAmB,GAAG,sBAAsB;IAC7C,CAAC,8BAA8B,GAAG,6DAA6D;IAC/F,CAAC,aAAa,GAAG;;;AClBnB;;AAEG;;;;"}
1
+ {"version":3,"file":"softpak-components-spx-translate.mjs","sources":["../../../../projects/softpak/components/spx-translate/spx-translate._const.ts","../../../../projects/softpak/components/spx-translate/spx-translate.en.ts","../../../../projects/softpak/components/spx-translate/spx-translate.nl.ts","../../../../projects/softpak/components/spx-translate/softpak-components-spx-translate.ts"],"sourcesContent":["export const spxTextCheckingForUpdates = 'spxTextCheckingForUpdates';\nexport const spxTextOneMomentPlease = 'spxTextOneMomentPlease';\nexport const spxTextPatchAvailable = 'spxTextPatchAvailable';\nexport const spxTextUpdateAvailable = 'spxTextUpdateAvailable';\nexport const spxTextReadyToBeInstalled = 'spxTextReadyToBeInstalled';\nexport const spxTextUpdate = 'spxTextUpdate';\nexport const spxTextOpenAppStore = 'spxTextOpenAppStore';\nexport const spxTextChannel = 'spxTextChannel';\nexport const spxTextCompany = 'spxTextCompany';\nexport const spxTextSelect = 'spxTextSelect';\nexport const spxTextSelectYourCompany = 'spxSelectYourCompany';\nexport const spxTextChange = 'spxTextChange';\nexport const spxText404PageNotFound = \"spxText404PageNotFound\";\nexport const spxTextPageNotFound = \"spxTextPageNotFound\";\nexport const spxTextPageNotFoundDescription = \"spxTextPageNotFoundDescription\";\nexport const spxTextGoHome = \"spxTextGoHome\";\n\nexport interface SpxTranslateI {\n [spxTextChange]: string;\n [spxTextCheckingForUpdates]: string;\n [spxTextOneMomentPlease]: string;\n [spxTextPatchAvailable]: string;\n [spxTextUpdateAvailable]: string;\n [spxTextReadyToBeInstalled]: string;\n [spxTextUpdate]: string;\n [spxTextOpenAppStore]: string;\n [spxTextChannel]: string;\n [spxTextCompany]: string;\n [spxTextSelect]: string;\n [spxTextSelectYourCompany]: string;\n [spxText404PageNotFound]: string;\n [spxTextPageNotFound]: string;\n [spxTextPageNotFoundDescription]: string;\n [spxTextGoHome]: string;\n}\n","import { spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextGoHome, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextSelect, spxTextSelectYourCompany, spxTextUpdate, spxTextUpdateAvailable, SpxTranslateI } from \"./spx-translate._const\";\n\nexport const SpxTranslateEn: SpxTranslateI = {\n [spxTextCheckingForUpdates]: 'checking for updates',\n [spxTextOneMomentPlease]: 'one moment please',\n [spxTextReadyToBeInstalled]: 'ready to be installed',\n [spxTextPatchAvailable]: 'patch available',\n [spxTextUpdateAvailable]: 'update available',\n [spxTextUpdate]: 'update',\n [spxTextOpenAppStore]: 'open app store',\n [spxTextChannel]: 'channel',\n [spxTextCompany]: 'company',\n [spxTextSelect]: 'select',\n [spxTextSelectYourCompany]: 'select your company',\n [spxTextChange]: 'change',\n [spxText404PageNotFound]: \"404 page not found\",\n [spxTextPageNotFound]: \"Page not found\",\n [spxTextPageNotFoundDescription]: \"Sorry, the page you’re looking for doesn’t exist or has been moved.\",\n [spxTextGoHome]: \"Go home\"\n}\n","import { spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextGoHome, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextSelect, spxTextSelectYourCompany, spxTextUpdate, spxTextUpdateAvailable, SpxTranslateI } from \"./spx-translate._const\";\n\nexport const SpxTranslateNl: SpxTranslateI = {\n [spxTextCheckingForUpdates]: 'controleren op updates',\n [spxTextOneMomentPlease]: 'een moment geduld alstublieft',\n [spxTextReadyToBeInstalled]: 'ready to be installed',\n [spxTextPatchAvailable]: 'patch available',\n [spxTextUpdateAvailable]: 'update available',\n [spxTextUpdate]: 'updaten',\n [spxTextOpenAppStore]: 'open app store',\n [spxTextChannel]: 'kanaal',\n [spxTextCompany]: 'bedrijf',\n [spxTextSelect]: 'selecteer',\n [spxTextSelectYourCompany]: 'selecteer uw bedrijf',\n [spxTextChange]: 'wissel',\n [spxText404PageNotFound]: \"404 pagina niet gevonden\",\n [spxTextPageNotFound]: \"Pagina niet gevonden\",\n [spxTextPageNotFoundDescription]: \"Sorry, de pagina die u zoekt bestaat niet of is verplaatst.\",\n [spxTextGoHome]: \"Ga naar het hoofdscherm\"\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,yBAAyB,GAAG;AAClC,MAAM,sBAAsB,GAAG;AAC/B,MAAM,qBAAqB,GAAG;AAC9B,MAAM,sBAAsB,GAAG;AAC/B,MAAM,yBAAyB,GAAG;AAClC,MAAM,aAAa,GAAG;AACtB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,cAAc,GAAG;AACvB,MAAM,cAAc,GAAG;AACvB,MAAM,aAAa,GAAG;AACtB,MAAM,wBAAwB,GAAG;AACjC,MAAM,aAAa,GAAG;AACtB,MAAM,sBAAsB,GAAG;AAC/B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,8BAA8B,GAAG;AACvC,MAAM,aAAa,GAAG;;ACbhB,MAAA,cAAc,GAAkB;IAC3C,CAAC,yBAAyB,GAAG,sBAAsB;IACnD,CAAC,sBAAsB,GAAG,mBAAmB;IAC7C,CAAC,yBAAyB,GAAG,uBAAuB;IACpD,CAAC,qBAAqB,GAAG,iBAAiB;IAC1C,CAAC,sBAAsB,GAAG,kBAAkB;IAC5C,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,wBAAwB,GAAG,qBAAqB;IACjD,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,sBAAsB,GAAG,oBAAoB;IAC9C,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,8BAA8B,GAAG,qEAAqE;IACvG,CAAC,aAAa,GAAG;;;AChBN,MAAA,cAAc,GAAkB;IAC3C,CAAC,yBAAyB,GAAG,wBAAwB;IACrD,CAAC,sBAAsB,GAAG,+BAA+B;IACzD,CAAC,yBAAyB,GAAG,uBAAuB;IACpD,CAAC,qBAAqB,GAAG,iBAAiB;IAC1C,CAAC,sBAAsB,GAAG,kBAAkB;IAC5C,CAAC,aAAa,GAAG,SAAS;IAC1B,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,cAAc,GAAG,QAAQ;IAC1B,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,aAAa,GAAG,WAAW;IAC5B,CAAC,wBAAwB,GAAG,sBAAsB;IAClD,CAAC,aAAa,GAAG,QAAQ;IACzB,CAAC,sBAAsB,GAAG,0BAA0B;IACpD,CAAC,mBAAmB,GAAG,sBAAsB;IAC7C,CAAC,8BAA8B,GAAG,6DAA6D;IAC/F,CAAC,aAAa,GAAG;;;AClBnB;;AAEG;;;;"}
@@ -131,7 +131,7 @@ class SpxUpdatePageComponent {
131
131
  console.log('UPD constructor');
132
132
  }
133
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxUpdatePageComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\r\n <ion-toolbar>\r\n <ion-title>\r\n {{ spxTextCheckingForUpdates | translate | capitalize }}\r\n </ion-title>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content class=\"ion-padding\">\r\n {{ spxTextOneMomentPlease | translate | capitalize }}...\r\n</ion-content>\r\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" }] }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", 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" }] }); }
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
137
137
  type: Component,
@@ -142,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
142
142
  IonTitle,
143
143
  SpxCapitalizePipe,
144
144
  TranslatePipe,
145
- ], template: "<ion-header>\r\n <ion-toolbar>\r\n <ion-title>\r\n {{ spxTextCheckingForUpdates | translate | capitalize }}\r\n </ion-title>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content class=\"ion-padding\">\r\n {{ spxTextOneMomentPlease | translate | capitalize }}...\r\n</ion-content>\r\n" }]
145
+ ], 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" }]
146
146
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }, { type: i3.NavController }] });
147
147
 
148
148
  const acceptUpdate = createAction('[SPX / Update Pending] Accept update', props());
@@ -235,7 +235,7 @@ class SpxUpdatePendingComponent {
235
235
  this.appStore.dispatch(acceptUpdate({}));
236
236
  }
237
237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxUpdatePendingComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: SpxUpdatePendingComponent, isStandalone: true, selector: "spx-update-pending", ngImport: i0, template: "@if (showLiveUpdateReady()) {\r\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\r\n <div class=\"grow\">\r\n <p\r\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\">\r\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\r\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\r\n </div>\r\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\r\n }}</spx-button>\r\n</div>\r\n}", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: SpxUpdatePendingComponent, isStandalone: true, selector: "spx-update-pending", 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"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
239
239
  }
240
240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxUpdatePendingComponent, decorators: [{
241
241
  type: Component,
@@ -243,7 +243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
243
243
  SpxButtonComponent,
244
244
  SpxCapitalizePipe,
245
245
  TranslatePipe,
246
- ], template: "@if (showLiveUpdateReady()) {\r\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\r\n <div class=\"grow\">\r\n <p\r\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\">\r\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\r\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\r\n </div>\r\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\r\n }}</spx-button>\r\n</div>\r\n}" }]
246
+ ], 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}" }]
247
247
  }], ctorParameters: () => [{ type: i1.Store }] });
248
248
 
249
249
  const spxUpdateUrl = '';
@@ -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';\r\n\r\nexport const anUpdateIsReady = createAction('[SPX / Update Check] An update is ready', props<Record<string, unknown>>());\r\nexport const clearError = createAction('[SPX / Update Check] Clear error', props<Record<string, unknown>>());\r\nexport const checkFailed = createAction('[SPX / Update Check] Error happened', props<{ startUpdateAgainAfterTimeout?: boolean }>());\r\nexport const initialize = createAction('[SPX / Update Check] Initialize', props<Record<string, unknown>>());\r\nexport const noUpdateWasFound = createAction('[SPX / Update Check] No update was found', props<{ startUpdateAgainAfterTimeout?: boolean }>());\r\nexport const notAvailableOnWeb = createAction('[SPX / Update Check] Not available on web', props<Record<string, unknown>>());\r\nexport const runCheck = createAction('[SPX / Update Check] Run', props<{ forceWaitForUpdate?: boolean; }>());\r\n\r\nconst all = union({\r\n anUpdateIsReady,\r\n clearError,\r\n checkFailed,\r\n initialize,\r\n noUpdateWasFound,\r\n notAvailableOnWeb,\r\n runCheck,\r\n});\r\n\r\nexport type Actions = typeof all;\r\n","import { StateI } from \"./spx-update-check.state\";\r\n\r\nexport const initialState: StateI = {\r\n forceWaitForUpdate: false,\r\n lastCheck: null,\r\n showError: false,\r\n};\r\n","\r\nimport * as actions from './spx-update-check.actions';\r\nimport { createFeature, createReducer, on } from '@ngrx/store';\r\nimport { StateI } from './spx-update-check.state';\r\nimport { initialState } from './spx-update-check.initial';\r\nimport { DateTime } from 'luxon';\r\n \r\nexport default createFeature({\r\n name: 'spxUpdateCheck',\r\n reducer: createReducer(\r\n initialState,\r\n on(actions.anUpdateIsReady, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n lastCheck: DateTime.now().toISO(),\r\n showError: false,\r\n };\r\n }),\r\n on(actions.clearError, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n showError: false,\r\n };\r\n }),\r\n on(actions.checkFailed, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n forceWaitForUpdate: false,\r\n showError: true,\r\n };\r\n }),\r\n on(actions.noUpdateWasFound, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n forceWaitForUpdate: false,\r\n lastCheck: DateTime.now().toISO(),\r\n showError: false,\r\n };\r\n }),\r\n on(actions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\r\n return {\r\n ...state,\r\n forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate\r\n };\r\n }),\r\n on(actions.notAvailableOnWeb, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n forceWaitForUpdate: false\r\n };\r\n }),\r\n ),\r\n});\r\n","import { Component } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\r\nimport { Subscription } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { runCheck } from './store/spx-update-check/spx-update-check.actions';\r\nimport { default as updCheck } from './store/spx-update-check/spx-update-check.reducer';\r\nimport { unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\r\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\r\nimport { spxTextCheckingForUpdates, spxTextOneMomentPlease } from '@softpak/components/spx-translate';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'spx-update-page',\r\n imports: [\r\n IonContent,\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n SpxCapitalizePipe,\r\n TranslatePipe,\r\n ],\r\n templateUrl: `./spx-update-page.component.html`,\r\n})\r\nexport class SpxUpdatePageComponent {\r\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\r\n spxTextOneMomentPlease = spxTextOneMomentPlease;\r\n\r\n private subscriptions: {\r\n updCheck?: Subscription;\r\n } = {};\r\n\r\n ngOnInit() {\r\n console.log('ngOnInit event fired');\r\n\r\n this.appStore.dispatch(runCheck({ forceWaitForUpdate: true }));\r\n this.subscriptions.updCheck = this.appStore.select(updCheck.selectForceWaitForUpdate).subscribe(forceWaitForUpdate => {\r\n if (forceWaitForUpdate === false) {\r\n if (this.activatedRoute.snapshot.data['url'] === undefined) {\r\n console.error('configure data property \\'url\\' in route for update page');\r\n }\r\n this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n console.log('ngOnDestroy event fired');\r\n\r\n unsubscribeSubscriptions(this.subscriptions);\r\n }\r\n\r\n constructor(\r\n private readonly appStore: Store,\r\n private readonly activatedRoute: ActivatedRoute,\r\n private readonly navController: NavController,\r\n ) {\r\n console.log('UPD constructor');\r\n }\r\n}\r\n","<ion-header>\r\n <ion-toolbar>\r\n <ion-title>\r\n {{ spxTextCheckingForUpdates | translate | capitalize }}\r\n </ion-title>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content class=\"ion-padding\">\r\n {{ spxTextOneMomentPlease | translate | capitalize }}...\r\n</ion-content>\r\n","import { createAction, props, union } from '@ngrx/store';\r\n\r\nexport const acceptUpdate = createAction('[SPX / Update Pending] Accept update', props<Record<string, unknown>>());\r\nexport const hasBeenDownloaded = createAction('[SPX / Update Pending] Has been downloaded', props<Record<string, unknown>>());\r\nexport const hasBeenInstalled = createAction('[SPX / Update Pending] Has been installed', props<Record<string, unknown>>());\r\nexport const postpone = createAction('[SPX / Update Pending] Postpone', props<Record<string, unknown>>());\r\nexport const postponeExpired = createAction('[SPX / Update Pending] Postpone expired', props<Record<string, unknown>>());\r\n\r\nconst all = union({\r\n acceptUpdate,\r\n hasBeenDownloaded,\r\n hasBeenInstalled,\r\n postpone,\r\n postponeExpired,\r\n});\r\n\r\nexport type Actions = typeof all;\r\n","import { StateI } from \"./spx-update-pending.state\";\r\n\r\nexport const initialState: StateI = {\r\n showLiveUpdateReady: false,\r\n updateIsDownloadedAndPending: false,\r\n};\r\n","\r\nimport * as actions from './spx-update-pending.actions';\r\nimport { createReducer, on, createFeature } from '@ngrx/store';\r\nimport { StateI } from './spx-update-pending.state';\r\nimport { initialState } from './spx-update-pending.initial';\r\n\r\nexport default createFeature({\r\n name: 'spxUpdatePending',\r\n reducer: createReducer(\r\n initialState,\r\n on(actions.hasBeenDownloaded, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n showLiveUpdateReady: true,\r\n updateIsDownloadedAndPending: true,\r\n };\r\n }),\r\n on(actions.hasBeenInstalled, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n showLiveUpdateReady: false,\r\n updateIsDownloadedAndPending: false,\r\n };\r\n }),\r\n on(actions.postpone, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n showLiveUpdateReady: false,\r\n };\r\n }),\r\n on(actions.postponeExpired, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n showLiveUpdateReady: true,\r\n };\r\n }),\r\n ),\r\n});\r\n","import { Component, computed, signal } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { acceptUpdate } from './store/spx-update-pending/spx-update-pending.actions';\r\nimport { default as updPending } from './store/spx-update-pending/spx-update-pending.reducer';\r\nimport { SpxSeverityEnum, unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\r\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\r\nimport { spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextUpdate, spxTextUpdateAvailable } from '@softpak/components/spx-translate';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\n\r\n@Component({\r\n selector: 'spx-update-pending',\r\n imports: [\r\n SpxButtonComponent,\r\n SpxCapitalizePipe,\r\n TranslatePipe,\r\n ],\r\n templateUrl: `./spx-update-pending.component.html`,\r\n})\r\nexport class SpxUpdatePendingComponent {\r\n availableStoreVersion = signal<undefined | string>(undefined);\r\n currentStoreVersion = signal<undefined | string>(undefined);\r\n severitySuccess = SpxSeverityEnum.success;\r\n showLiveUpdateReady = signal<boolean>(false);\r\n spxTextUpdate = spxTextUpdate;\r\n spxTextReadyToBeInstalled = spxTextReadyToBeInstalled;\r\n spxTextPatchAvailable = spxTextPatchAvailable;\r\n spxTextUpdateAvailable = spxTextUpdateAvailable;\r\n spxTextOpenAppStore = spxTextOpenAppStore;\r\n\r\n private subscriptions: {\r\n updPending?: Subscription;\r\n } = {};\r\n\r\n ngOnInit() {\r\n this.subscriptions.updPending = this.appStore.select(updPending.selectShowLiveUpdateReady).subscribe(showLiveUpdateReady => {\r\n this.showLiveUpdateReady.set(showLiveUpdateReady);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n unsubscribeSubscriptions(this.subscriptions);\r\n }\r\n\r\n constructor(\r\n private readonly appStore: Store,\r\n ) {}\r\n\r\n onUpdate(): void {\r\n this.appStore.dispatch(acceptUpdate({}));\r\n }\r\n}\r\n","@if (showLiveUpdateReady()) {\r\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\r\n <div class=\"grow\">\r\n <p\r\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\">\r\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\r\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\r\n </div>\r\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\r\n }}</spx-button>\r\n</div>\r\n}","export const spxUpdateUrl = '';","import { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { from, Observable, of } from 'rxjs';\r\nimport { catchError, delay, exhaustMap, map, mergeMap, tap } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport * as actions from './spx-update-check.actions';\r\nimport { getConfig, reload, setConfig, sync, SyncResult } from '@capacitor/live-updates';\r\nimport { captureMessage } from '@sentry/angular';\r\nimport { Capacitor } from '@capacitor/core';\r\nimport { App } from '@capacitor/app';\r\nimport { hasBeenDownloaded } from '../spx-update-pending/spx-update-pending.actions';\r\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\r\n\r\n@Injectable()\r\nexport class Effects {\r\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\r\n ofType(actions.initialize),\r\n delay(120000),\r\n mergeMap(() => [\r\n actions.runCheck({}),\r\n ]))\r\n );\r\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\r\n ofType(actions.runCheck),\r\n tap(async () => {\r\n if (Capacitor.getPlatform() !== 'web') {\r\n // Migrate from e.g. 1.2.x to 1.3.x\r\n const binaryInfo = await App.getInfo()\r\n const binaryVersionGroup = binaryInfo.version.substring(0, 3);\r\n const config = await getConfig();\r\n const channelVersionGroup = config.channel!.split('-')[1].substring(0, 3); // e.g. \"1.4\"\r\n let channelType = config.channel!.split('-')[0];\r\n // Temp fix\r\n if (channelType === 'null') {\r\n channelType = 'Production';\r\n }\r\n // End temp fix\r\n if (channelType === null || binaryVersionGroup != channelVersionGroup) {\r\n await setConfig({\r\n channel: `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`\r\n });\r\n }\r\n // End migrate from e.g. 1.2.x to 1.3.x\r\n }\r\n }),\r\n exhaustMap((action) => from(sync()).pipe(\r\n map((syncResult: SyncResult) => {\r\n if (syncResult.activeApplicationPathChanged) {\r\n if (action.forceWaitForUpdate) {\r\n reload();\r\n }\r\n return actions.anUpdateIsReady({});\r\n } else {\r\n return actions.noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });\r\n }\r\n }),\r\n catchError((err) => {\r\n if (err.message !== 'Not implemented for web only') {\r\n captureMessage(\"[UPD] Handled: \" + err.message);\r\n }\r\n return err.message === 'Not implemented for web only' ? of(actions.notAvailableOnWeb({})) : of(actions.checkFailed({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }))\r\n })\r\n )),\r\n ));\r\n\r\n constructor(\r\n private readonly actions$: Actions,\r\n ) { }\r\n\r\n whenAndUpdateIsReady$: Observable<any> = createEffect(() => this.actions$.pipe(\r\n ofType(actions.anUpdateIsReady),\r\n mergeMap(() => [\r\n hasBeenDownloaded({}),\r\n ]))\r\n );\r\n\r\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\r\n ofType(actions.checkFailed),\r\n delay(30000),\r\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\r\n actions.runCheck({}),\r\n ]))\r\n );\r\n\r\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\r\n ofType(actions.noUpdateWasFound),\r\n delay(120000),\r\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\r\n actions.runCheck({}),\r\n ]))\r\n );\r\n}\r\n\r\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport * as actions from './spx-update-pending.actions';\r\nimport { reload } from '@capacitor/live-updates';\r\n\r\n@Injectable()\r\nexport class Effects {\r\n\r\n constructor(\r\n private readonly actions$: Actions,\r\n ) { }\r\n\r\n whenAccepted$: Observable<any> = createEffect(() => this.actions$.pipe(\r\n ofType(actions.acceptUpdate),\r\n mergeMap(() => {\r\n reload();\r\n return []; \r\n })) as any\r\n );\r\n}\r\n\r\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","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})\nexport class SpxUpdatePageComponent {\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextOneMomentPlease = spxTextOneMomentPlease;\n\n private subscriptions: {\n updCheck?: Subscription;\n } = {};\n\n ngOnInit() {\n console.log('ngOnInit event fired');\n\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 console.log('ngOnDestroy event fired');\n\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 console.log('UPD constructor');\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 { Component, computed, 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';\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})\nexport class SpxUpdatePendingComponent {\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 });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\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","actions.initialize","i1","Effects","actions.acceptUpdate"],"mappings":"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"}
@@ -177,13 +177,13 @@ class SpxValidateControlComponent {
177
177
  return this.control.errors && this.control.errors['past'];
178
178
  }
179
179
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
180
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "@if (control && control.errors && (control.touched || submitTried)) {\r\n @if (maxLength) {\r\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\r\n }\r\n @if (minLength) {\r\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\r\n }\r\n @if (max) {\r\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\r\n }\r\n @if (min) {\r\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\r\n }\r\n @if (pattern) {\r\n <div>The pattern of '{{ label }}' not valid.</div>\r\n }\r\n @if (required) {\r\n <div>'{{ label }}' is required.</div>\r\n }\r\n @if (year) {\r\n <div>Please choose a year between 1991 and the current year.</div>\r\n }\r\n @if (yearFuture) {\r\n <div>Please choose a year between the current year and 2050.</div>\r\n }\r\n @if (month) {\r\n <div>Please choose a valid month (a value between 01 and 12).</div>\r\n }\r\n @if (future) {\r\n <div>The selected date may not be in the future.</div>\r\n }\r\n @if (past) {\r\n <div>The selected date may not be in the past.</div>\r\n }\r\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }] }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "@if (control && control.errors && (control.touched || submitTried)) {\n @if (maxLength) {\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n }\n @if (minLength) {\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n }\n @if (max) {\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n }\n @if (min) {\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n }\n @if (pattern) {\n <div>The pattern of '{{ label }}' not valid.</div>\n }\n @if (required) {\n <div>'{{ label }}' is required.</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>Please choose a valid month (a value between 01 and 12).</div>\n }\n @if (future) {\n <div>The selected date may not be in the future.</div>\n }\n @if (past) {\n <div>The selected date may not be in the past.</div>\n }\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }] }); }
181
181
  }
182
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
183
183
  type: Component,
184
184
  args: [{ selector: 'spx-validate-control', imports: [
185
185
  FormsModule
186
- ], template: "@if (control && control.errors && (control.touched || submitTried)) {\r\n @if (maxLength) {\r\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\r\n }\r\n @if (minLength) {\r\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\r\n }\r\n @if (max) {\r\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\r\n }\r\n @if (min) {\r\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\r\n }\r\n @if (pattern) {\r\n <div>The pattern of '{{ label }}' not valid.</div>\r\n }\r\n @if (required) {\r\n <div>'{{ label }}' is required.</div>\r\n }\r\n @if (year) {\r\n <div>Please choose a year between 1991 and the current year.</div>\r\n }\r\n @if (yearFuture) {\r\n <div>Please choose a year between the current year and 2050.</div>\r\n }\r\n @if (month) {\r\n <div>Please choose a valid month (a value between 01 and 12).</div>\r\n }\r\n @if (future) {\r\n <div>The selected date may not be in the future.</div>\r\n }\r\n @if (past) {\r\n <div>The selected date may not be in the past.</div>\r\n }\r\n}" }]
186
+ ], template: "@if (control && control.errors && (control.touched || submitTried)) {\n @if (maxLength) {\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n }\n @if (minLength) {\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n }\n @if (max) {\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n }\n @if (min) {\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n }\n @if (pattern) {\n <div>The pattern of '{{ label }}' not valid.</div>\n }\n @if (required) {\n <div>'{{ label }}' is required.</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>Please choose a valid month (a value between 01 and 12).</div>\n }\n @if (future) {\n <div>The selected date may not be in the future.</div>\n }\n @if (past) {\n <div>The selected date may not be in the past.</div>\n }\n}" }]
187
187
  }], propDecorators: { control: [{
188
188
  type: Input
189
189
  }], label: [{
@@ -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';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\nexport const spxValidatorRequired = () => (control: AbstractControl): ValidationErrors | null => {\r\n if (\r\n control &&\r\n valuePairToValue(control.value) === undefined ||\r\n valuePairToValue(control.value) === null ||\r\n valuePairToValue(control.value) === '' ||\r\n valuePairToValue(control.value) === 0\r\n ) {\r\n return { required: true };\r\n }\r\n return null;\r\n};\r\n","import { AbstractControl } from '@angular/forms';\r\nimport { spxValidatorRequired } from './required.validator';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\nexport const spxValidatorMax = (max: number) => (control: AbstractControl): { max: { max: number; actual: number } } | null => {\r\n if (!spxValidatorRequired()(control)) {\r\n const value = parseInt(valuePairToValue(control.value).toString(), 10);\r\n if (!isNaN(value) && value > max) {\r\n return {\r\n max: {\r\n max,\r\n actual: value\r\n }\r\n };\r\n }\r\n }\r\n return null;\r\n};\r\n","import { AbstractControl } from '@angular/forms';\r\nimport { spxValidatorRequired } from './required.validator';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\nexport const spxValidatorMaxLength = (maximumLength: number, sanitizer?: (input: string) => string) => (control: AbstractControl): { maxlength: { requiredLength: number; actualLength: number } } | null => {\r\n if (!spxValidatorRequired()(control)) {\r\n let value = valuePairToValue(control.value);\r\n if (sanitizer) {\r\n value = sanitizer(value.toString());\r\n }\r\n if (value.toString().length > maximumLength) {\r\n return {\r\n maxlength: {\r\n requiredLength: maximumLength,\r\n actualLength: value.toString().length\r\n }\r\n };\r\n }\r\n }\r\n return null;\r\n};\r\n","import { AbstractControl } from '@angular/forms';\r\nimport { spxValidatorRequired } from './required.validator';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\nexport const spxValidatorMin = (min: number) => (control: AbstractControl): { min: { min: number; actual: number } } | null => {\r\n if (!spxValidatorRequired()(control)) {\r\n const value = parseInt(valuePairToValue(control.value).toString(), 10);\r\n\r\n if (!isNaN(value) && value < min) {\r\n return {\r\n min: {\r\n min,\r\n actual: value\r\n }\r\n };\r\n }\r\n }\r\n return null;\r\n};\r\n","import { AbstractControl } from '@angular/forms';\r\nimport { spxValidatorRequired } from './required.validator';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\nexport const spxValidatorMinLength = (minimumLength: number, sanitizer?: (input: string) => string) => (control: AbstractControl): { minlength: { requiredLength: number; actualLength: number } } | null => {\r\n if (!spxValidatorRequired()(control)) {\r\n let value = valuePairToValue(control.value);\r\n if (sanitizer) {\r\n value = sanitizer(value.toString());\r\n }\r\n if (value.toString().length < minimumLength) {\r\n return {\r\n minlength: {\r\n requiredLength: minimumLength,\r\n actualLength: value.toString().length\r\n }\r\n };\r\n }\r\n }\r\n return null;\r\n};\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\nimport { spxValidatorRequired } from './required.validator';\r\n\r\nexport const spxValidatorPattern = (matcher: RegExp) => (control: AbstractControl): ValidationErrors | null => {\r\n if (!spxValidatorRequired()(control)) {\r\n const matches = valuePairToValue(control.value).toString().match(matcher);\r\n if (matches === null || matches.length === 0) {\r\n return { pattern: true };\r\n }\r\n }\r\n return null;\r\n};\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\nimport { DateTime } from 'luxon';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\nimport { spxValidatorRequired } from './required.validator';\r\n\r\nexport const spxValidatorYearAndMonth = (future?: boolean) => (control: AbstractControl): ValidationErrors | null => {\r\n if (!spxValidatorRequired()(control)) {\r\n const val = valuePairToValue(control.value);\r\n if (val.toUpperCase() !== 'ACEP') {\r\n const date = DateTime.fromISO(val);\r\n const year = date.year;\r\n const month = date.month;\r\n if (val.length < 6) {\r\n return {\r\n minlength: {\r\n requiredLength: 6,\r\n actualLength: val.length\r\n }\r\n };\r\n }\r\n if (month < 1 || month > 12) {\r\n return { month: true };\r\n }\r\n if (future) {\r\n if (year > 2050 || year < DateTime.now().year) {\r\n return { yearFuture: true };\r\n }\r\n if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') < DateTime.now()) {\r\n return { past: true };\r\n }\r\n } else {\r\n if (year < 1971 || year > DateTime.now().year) {\r\n return { year: true };\r\n }\r\n if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') > DateTime.now()) {\r\n return { future: true };\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n};\r\n","\r\nimport { Component, Input } from '@angular/core';\r\nimport { AbstractControl, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'spx-validate-control',\r\n templateUrl: './spx-validate-control.component.html',\r\n imports: [\r\n FormsModule\r\n ]\r\n})\r\nexport class SpxValidateControlComponent {\r\n @Input() control!: AbstractControl;\r\n @Input() label: string | unknown;\r\n @Input() submitTried!: boolean;\r\n\r\n get maxLength() {\r\n return this.control.errors && this.control.errors['maxlength'];\r\n }\r\n\r\n get maxLengthRequiredLength() {\r\n return this.maxLength && this.control.errors && this.control.errors['maxlength']['requiredLength'];\r\n }\r\n\r\n get minLength() {\r\n return this.control.errors && this.control.errors['minlength'];\r\n }\r\n\r\n get minLengthRequiredLength() {\r\n return this.minLength && this.control.errors && this.control.errors['minlength']['requiredLength'];\r\n }\r\n\r\n get max() {\r\n return this.control.errors && this.control.errors['max'];\r\n }\r\n\r\n get maxRequiredMax() {\r\n return this.max && this.control.errors && this.control.errors['max']['max'];\r\n }\r\n\r\n get min() {\r\n return this.control.errors && this.control.errors['min'];\r\n }\r\n\r\n get minRequiredMin() {\r\n return this.min && this.control.errors && this.control.errors['min']['min'];\r\n }\r\n\r\n get pattern() {\r\n return this.control.errors && this.control.errors['pattern'];\r\n }\r\n\r\n get required() {\r\n return this.control.errors && this.control.errors['required'];\r\n }\r\n\r\n get year() {\r\n return this.control.errors && this.control.errors['year'];\r\n }\r\n\r\n get yearFuture() {\r\n return this.control.errors && this.control.errors['yearFuture'];\r\n }\r\n\r\n get month() {\r\n return this.control.errors && this.control.errors['month'];\r\n }\r\n\r\n get future() {\r\n return this.control.errors && this.control.errors['future'];\r\n }\r\n\r\n get past() {\r\n return this.control.errors && this.control.errors['past'];\r\n }\r\n}\r\n","@if (control && control.errors && (control.touched || submitTried)) {\r\n @if (maxLength) {\r\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\r\n }\r\n @if (minLength) {\r\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\r\n }\r\n @if (max) {\r\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\r\n }\r\n @if (min) {\r\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\r\n }\r\n @if (pattern) {\r\n <div>The pattern of '{{ label }}' not valid.</div>\r\n }\r\n @if (required) {\r\n <div>'{{ label }}' is required.</div>\r\n }\r\n @if (year) {\r\n <div>Please choose a year between 1991 and the current year.</div>\r\n }\r\n @if (yearFuture) {\r\n <div>Please choose a year between the current year and 2050.</div>\r\n }\r\n @if (month) {\r\n <div>Please choose a valid month (a value between 01 and 12).</div>\r\n }\r\n @if (future) {\r\n <div>The selected date may not be in the future.</div>\r\n }\r\n @if (past) {\r\n <div>The selected date may not be in the past.</div>\r\n }\r\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","\nimport { Component, Input } from '@angular/core';\nimport { AbstractControl, FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'spx-validate-control',\n templateUrl: './spx-validate-control.component.html',\n imports: [\n FormsModule\n ]\n})\nexport class SpxValidateControlComponent {\n @Input() control!: AbstractControl;\n @Input() label: string | unknown;\n @Input() submitTried!: boolean;\n\n get maxLength() {\n return this.control.errors && this.control.errors['maxlength'];\n }\n\n get maxLengthRequiredLength() {\n return this.maxLength && this.control.errors && this.control.errors['maxlength']['requiredLength'];\n }\n\n get minLength() {\n return this.control.errors && this.control.errors['minlength'];\n }\n\n get minLengthRequiredLength() {\n return this.minLength && this.control.errors && this.control.errors['minlength']['requiredLength'];\n }\n\n get max() {\n return this.control.errors && this.control.errors['max'];\n }\n\n get maxRequiredMax() {\n return this.max && this.control.errors && this.control.errors['max']['max'];\n }\n\n get min() {\n return this.control.errors && this.control.errors['min'];\n }\n\n get minRequiredMin() {\n return this.min && this.control.errors && this.control.errors['min']['min'];\n }\n\n get pattern() {\n return this.control.errors && this.control.errors['pattern'];\n }\n\n get required() {\n return this.control.errors && this.control.errors['required'];\n }\n\n get year() {\n return this.control.errors && this.control.errors['year'];\n }\n\n get yearFuture() {\n return this.control.errors && this.control.errors['yearFuture'];\n }\n\n get month() {\n return this.control.errors && this.control.errors['month'];\n }\n\n get future() {\n return this.control.errors && this.control.errors['future'];\n }\n\n get past() {\n return this.control.errors && this.control.errors['past'];\n }\n}\n","@if (control && control.errors && (control.touched || submitTried)) {\n @if (maxLength) {\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n }\n @if (minLength) {\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n }\n @if (max) {\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n }\n @if (min) {\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n }\n @if (pattern) {\n <div>The pattern of '{{ label }}' not valid.</div>\n }\n @if (required) {\n <div>'{{ label }}' is required.</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>Please choose a valid month (a value between 01 and 12).</div>\n }\n @if (future) {\n <div>The selected date may not be in the future.</div>\n }\n @if (past) {\n <div>The selected date may not be in the past.</div>\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "19.18.0",
3
+ "version": "19.19.0",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "19.x.x",
@@ -37,6 +37,10 @@
37
37
  "types": "./spx-alert/index.d.ts",
38
38
  "default": "./fesm2022/softpak-components-spx-alert.mjs"
39
39
  },
40
+ "./spx-app-configuration": {
41
+ "types": "./spx-app-configuration/index.d.ts",
42
+ "default": "./fesm2022/softpak-components-spx-app-configuration.mjs"
43
+ },
40
44
  "./spx-button": {
41
45
  "types": "./spx-button/index.d.ts",
42
46
  "default": "./fesm2022/softpak-components-spx-button.mjs"
@@ -45,22 +49,18 @@
45
49
  "types": "./spx-app-expiry/index.d.ts",
46
50
  "default": "./fesm2022/softpak-components-spx-app-expiry.mjs"
47
51
  },
48
- "./spx-app-configuration": {
49
- "types": "./spx-app-configuration/index.d.ts",
50
- "default": "./fesm2022/softpak-components-spx-app-configuration.mjs"
51
- },
52
52
  "./spx-capitalize": {
53
53
  "types": "./spx-capitalize/index.d.ts",
54
54
  "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
55
55
  },
56
- "./spx-change-details": {
57
- "types": "./spx-change-details/index.d.ts",
58
- "default": "./fesm2022/softpak-components-spx-change-details.mjs"
59
- },
60
56
  "./spx-card": {
61
57
  "types": "./spx-card/index.d.ts",
62
58
  "default": "./fesm2022/softpak-components-spx-card.mjs"
63
59
  },
60
+ "./spx-change-details": {
61
+ "types": "./spx-change-details/index.d.ts",
62
+ "default": "./fesm2022/softpak-components-spx-change-details.mjs"
63
+ },
64
64
  "./spx-channel-selection": {
65
65
  "types": "./spx-channel-selection/index.d.ts",
66
66
  "default": "./fesm2022/softpak-components-spx-channel-selection.mjs"
@@ -85,10 +85,6 @@
85
85
  "types": "./spx-helpers/index.d.ts",
86
86
  "default": "./fesm2022/softpak-components-spx-helpers.mjs"
87
87
  },
88
- "./spx-navigation": {
89
- "types": "./spx-navigation/index.d.ts",
90
- "default": "./fesm2022/softpak-components-spx-navigation.mjs"
91
- },
92
88
  "./spx-inputs": {
93
89
  "types": "./spx-inputs/index.d.ts",
94
90
  "default": "./fesm2022/softpak-components-spx-inputs.mjs"
@@ -97,14 +93,14 @@
97
93
  "types": "./spx-number-check/index.d.ts",
98
94
  "default": "./fesm2022/softpak-components-spx-number-check.mjs"
99
95
  },
96
+ "./spx-navigation": {
97
+ "types": "./spx-navigation/index.d.ts",
98
+ "default": "./fesm2022/softpak-components-spx-navigation.mjs"
99
+ },
100
100
  "./spx-pagination": {
101
101
  "types": "./spx-pagination/index.d.ts",
102
102
  "default": "./fesm2022/softpak-components-spx-pagination.mjs"
103
103
  },
104
- "./spx-progress-bar": {
105
- "types": "./spx-progress-bar/index.d.ts",
106
- "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
107
- },
108
104
  "./spx-patch": {
109
105
  "types": "./spx-patch/index.d.ts",
110
106
  "default": "./fesm2022/softpak-components-spx-patch.mjs"
@@ -113,14 +109,18 @@
113
109
  "types": "./spx-pipes/index.d.ts",
114
110
  "default": "./fesm2022/softpak-components-spx-pipes.mjs"
115
111
  },
116
- "./spx-spinner": {
117
- "types": "./spx-spinner/index.d.ts",
118
- "default": "./fesm2022/softpak-components-spx-spinner.mjs"
112
+ "./spx-progress-bar": {
113
+ "types": "./spx-progress-bar/index.d.ts",
114
+ "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
119
115
  },
120
116
  "./spx-stock-info": {
121
117
  "types": "./spx-stock-info/index.d.ts",
122
118
  "default": "./fesm2022/softpak-components-spx-stock-info.mjs"
123
119
  },
120
+ "./spx-spinner": {
121
+ "types": "./spx-spinner/index.d.ts",
122
+ "default": "./fesm2022/softpak-components-spx-spinner.mjs"
123
+ },
124
124
  "./spx-storage": {
125
125
  "types": "./spx-storage/index.d.ts",
126
126
  "default": "./fesm2022/softpak-components-spx-storage.mjs"
@@ -133,6 +133,10 @@
133
133
  "types": "./spx-toaster/index.d.ts",
134
134
  "default": "./fesm2022/softpak-components-spx-toaster.mjs"
135
135
  },
136
+ "./spx-toggle": {
137
+ "types": "./spx-toggle/index.d.ts",
138
+ "default": "./fesm2022/softpak-components-spx-toggle.mjs"
139
+ },
136
140
  "./spx-translate": {
137
141
  "types": "./spx-translate/index.d.ts",
138
142
  "default": "./fesm2022/softpak-components-spx-translate.mjs"
@@ -16,7 +16,9 @@ export declare const ctrlUseCategories = "useCategories";
16
16
  export declare class SpxChangeDetailsComponent {
17
17
  readonly formBuilder: FormBuilder;
18
18
  formGroup: FormGroup;
19
- suggestions: any;
19
+ private _suggestions;
20
+ get suggestions(): any;
21
+ set suggestions(value: any);
20
22
  textCategory: string;
21
23
  textContainerNumber: string;
22
24
  textContainerType: string;
@@ -54,5 +56,5 @@ export declare class SpxChangeDetailsComponent {
54
56
  onSubmit(): void;
55
57
  private listenToContainerType;
56
58
  static ɵfac: i0.ɵɵFactoryDeclaration<SpxChangeDetailsComponent, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<SpxChangeDetailsComponent, "spx-change-details", never, { "formGroup": { "alias": "formGroup"; "required": false; }; "suggestions": { "alias": "suggestions"; "required": false; }; "textCategory": { "alias": "textCategory"; "required": false; }; "textContainerNumber": { "alias": "textContainerNumber"; "required": false; }; "textContainerType": { "alias": "textContainerType"; "required": false; }; "textCustomer": { "alias": "textCustomer"; "required": false; }; "textLicensePlate": { "alias": "textLicensePlate"; "required": false; }; "textSave": { "alias": "textSave"; "required": false; }; "textTonsTested": { "alias": "textTonsTested"; "required": false; }; }, { "spxBlurCategory": "spxBlurCategory"; "spxBlurContainerType": "spxBlurContainerType"; "spxSearchCategory": "spxSearchCategory"; "spxSearchContainerType": "spxSearchContainerType"; "spxSearchTonsTested": "spxSearchTonsTested"; "submit": "submit"; }, never, never, true, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpxChangeDetailsComponent, "spx-change-details", never, { "formGroup": { "alias": "formGroup"; "required": false; }; "_suggestions": { "alias": "_suggestions"; "required": false; }; "suggestions": { "alias": "suggestions"; "required": false; }; "textCategory": { "alias": "textCategory"; "required": false; }; "textContainerNumber": { "alias": "textContainerNumber"; "required": false; }; "textContainerType": { "alias": "textContainerType"; "required": false; }; "textCustomer": { "alias": "textCustomer"; "required": false; }; "textLicensePlate": { "alias": "textLicensePlate"; "required": false; }; "textSave": { "alias": "textSave"; "required": false; }; "textTonsTested": { "alias": "textTonsTested"; "required": false; }; }, { "spxBlurCategory": "spxBlurCategory"; "spxBlurContainerType": "spxBlurContainerType"; "spxSearchCategory": "spxSearchCategory"; "spxSearchContainerType": "spxSearchContainerType"; "spxSearchTonsTested": "spxSearchTonsTested"; "submit": "submit"; }, never, never, true, never>;
58
60
  }
@@ -0,0 +1,5 @@
1
+ import { SpxSeverityEnum } from "./spx-severity.enum";
2
+ export interface SpxInputAlertI {
3
+ text: string;
4
+ severity: SpxSeverityEnum;
5
+ }
@@ -2,3 +2,4 @@ export * from './calc-check-digit.function';
2
2
  export * from './spx-severity.enum';
3
3
  export * from './unsubscribe-subscriptions.function';
4
4
  export * from './value-pair-to-value.function';
5
+ export * from './input-alert.interface';
@@ -7,7 +7,7 @@ import { SpxInputTypeEnum } from './spx-input-type.enum';
7
7
  import { SpxInputTimeComponent } from './spx-input-time/spx-input-time.component';
8
8
  import { SpxInputDateComponent } from './spx-input-date/spx-input-date.component';
9
9
  import { SelectedInputService } from './input.service';
10
- import { SpxInputAlertI } from './spx-input-alert-interface';
10
+ import { SpxInputAlertI } from '@softpak/components/spx-helpers';
11
11
  import * as i0 from "@angular/core";
12
12
  export declare class SpxInputComponent {
13
13
  readonly spxLabel: import("@angular/core").InputSignal<string>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@softpak/components/spx-toggle" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './src/spx-toggle.component';
@@ -0,0 +1,12 @@
1
+ import { OnInit } from "@angular/core";
2
+ import { FormControl } from "@angular/forms";
3
+ import * as i0 from "@angular/core";
4
+ export declare class SpxToggleComponent implements OnInit {
5
+ control: import("@angular/core").InputSignal<FormControl<any> | undefined>;
6
+ spxToggled: import("@angular/core").ModelSignal<boolean>;
7
+ spxLabelPlacement: import("@angular/core").InputSignal<"end" | "start">;
8
+ ngOnInit(): void;
9
+ onValueChange(value: boolean): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpxToggleComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpxToggleComponent, "spx-toggle", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "spxToggled": { "alias": "spxToggled"; "required": false; "isSignal": true; }; "spxLabelPlacement": { "alias": "spxLabelPlacement"; "required": false; "isSignal": true; }; }, { "spxToggled": "spxToggledChange"; }, never, ["*"], true, never>;
12
+ }