@softpak/components 19.17.0-beta.4 → 19.18.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 (77) hide show
  1. package/fesm2022/softpak-components-spx-404-page.mjs +47 -0
  2. package/fesm2022/softpak-components-spx-404-page.mjs.map +1 -0
  3. package/fesm2022/softpak-components-spx-alert.mjs +6 -7
  4. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  5. package/fesm2022/softpak-components-spx-app-expiry.mjs +91 -23
  6. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  7. package/fesm2022/softpak-components-spx-button.mjs +22 -8
  8. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  9. package/fesm2022/softpak-components-spx-card.mjs +88 -17
  10. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  11. package/fesm2022/softpak-components-spx-change-details.mjs +64 -48
  12. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  13. package/fesm2022/softpak-components-spx-check-digit.mjs +28 -24
  14. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  15. package/fesm2022/softpak-components-spx-confirm.mjs.map +1 -1
  16. package/fesm2022/softpak-components-spx-form-section.mjs +33 -8
  17. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  18. package/fesm2022/softpak-components-spx-form-view.mjs +53 -39
  19. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  20. package/fesm2022/softpak-components-spx-inputs.mjs +6 -15
  21. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  22. package/fesm2022/softpak-components-spx-navigation.mjs +89 -34
  23. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  24. package/fesm2022/softpak-components-spx-number-check.mjs +198 -91
  25. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  26. package/fesm2022/softpak-components-spx-pagination.mjs +21 -12
  27. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  28. package/fesm2022/softpak-components-spx-patch.mjs +39 -8
  29. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  30. package/fesm2022/softpak-components-spx-progress-bar.mjs +22 -8
  31. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  32. package/fesm2022/softpak-components-spx-spinner.mjs +160 -15
  33. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  34. package/fesm2022/softpak-components-spx-stock-info.mjs +128 -71
  35. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  36. package/fesm2022/softpak-components-spx-toaster.mjs +163 -36
  37. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  38. package/fesm2022/softpak-components-spx-translate.mjs +13 -1
  39. package/fesm2022/softpak-components-spx-translate.mjs.map +1 -1
  40. package/fesm2022/softpak-components-spx-update.mjs +3 -3
  41. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  42. package/fesm2022/softpak-components-spx-validation.mjs +55 -56
  43. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  44. package/package.json +36 -32
  45. package/spx-404-page/index.d.ts +5 -0
  46. package/spx-404-page/public-api.d.ts +1 -0
  47. package/spx-404-page/spx-404-page.component.d.ts +15 -0
  48. package/spx-alert/spx-alert.component.d.ts +1 -1
  49. package/spx-app-expiry/spx-app-expiry.component.d.ts +14 -14
  50. package/spx-button/spx-button.component.d.ts +3 -0
  51. package/spx-card/spx-card-item/spx-card-item.component.d.ts +1 -0
  52. package/spx-card/spx-card.component.d.ts +9 -8
  53. package/spx-change-details/spx-change-details.component.d.ts +23 -22
  54. package/spx-check-digit/spx-check-digit.component.d.ts +9 -9
  55. package/spx-form-section/spx-form-section.component.d.ts +5 -5
  56. package/spx-form-view/spx-autocomplete-search.component.d.ts +16 -15
  57. package/spx-form-view/spx-form-view.component.d.ts +1 -1
  58. package/spx-inputs/spx-input-text/spx-input-text.component.d.ts +1 -4
  59. package/spx-inputs/spx-input.component.d.ts +0 -1
  60. package/spx-navigation/public-api.d.ts +2 -2
  61. package/spx-navigation/spx-home-tile.component.d.ts +11 -0
  62. package/spx-navigation/{spx-home-tile/spx-home-tiles.component.d.ts → spx-home-tiles.component.d.ts} +2 -2
  63. package/spx-navigation/spx-navigation.component.d.ts +8 -11
  64. package/spx-number-check/spx-number-check.component.d.ts +32 -26
  65. package/spx-pagination/spx-pagination.component.d.ts +10 -9
  66. package/spx-patch/spx-patch.component.d.ts +4 -4
  67. package/spx-progress-bar/spx-progress-bar.component.d.ts +3 -3
  68. package/spx-spinner/spx-spinner.component.d.ts +3 -3
  69. package/spx-stock-info/spx-stock-info.component.d.ts +49 -48
  70. package/spx-toaster/src/spx-toaster-message.interface.d.ts +1 -5
  71. package/spx-toaster/src/spx-toaster.component.d.ts +14 -6
  72. package/spx-translate/spx-translate._const.d.ts +8 -0
  73. package/spx-update/store/spx-update-check/spx-update-check.actions.d.ts +5 -5
  74. package/spx-update/store/spx-update-pending/spx-update-pending.actions.d.ts +1 -1
  75. package/spx-validation/spx-validate-control.component.d.ts +20 -22
  76. package/tailwind.css +1 -1
  77. package/spx-navigation/spx-home-tile/spx-home-tile.component.d.ts +0 -11
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, effect, Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { EventEmitter, Component, HostBinding, Input, Output } from '@angular/core';
3
3
  import { SpxAlertComponent } from '@softpak/components/spx-alert';
4
4
  import { createAction, props, union, createFeature, createReducer, on } from '@ngrx/store';
5
5
  import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
@@ -28,49 +28,169 @@ function toasterAutocloseSpeed(autoCloseSpeed, messageText) {
28
28
  }
29
29
 
30
30
  class SpxToasterComponent {
31
- constructor() {
32
- this.messages = input.required();
33
- this.spxAutoclose = input();
34
- this.spxClose = output();
35
- effect(() => {
36
- this.messages().forEach((message) => {
37
- if (message.autoClose) {
38
- setTimeout(() => {
39
- this.handleClose(message.id);
40
- }, message.autoClose);
41
- }
42
- });
43
- });
31
+ constructor(renderer, el) {
32
+ this.renderer = renderer;
33
+ this.el = el;
34
+ this.hostClass = true;
35
+ this.spxClose = new EventEmitter();
36
+ this.count = 0;
37
+ }
38
+ ngOnChanges() {
39
+ this.messages = this.messages.map(m => ({ ...m, autoClose: this.calcToasterAutocloseSpeed(m.autoClose, m.message) }));
40
+ if (this.messages.length > 0) {
41
+ setTimeout(() => {
42
+ this.messages = this.messages.map(message => {
43
+ if (message.autoClose) {
44
+ // console.log(message.autoClose);
45
+ // this.showProgressBar(message.autoClose, message.id)
46
+ // this.showProgressBar(600000, message.id)
47
+ setTimeout(() => {
48
+ this.handleClose(message.id);
49
+ }, message.autoClose);
50
+ }
51
+ return message;
52
+ });
53
+ }, 0);
54
+ }
55
+ }
56
+ showProgressBar(autoclose, id) {
57
+ const alertElement = this.el.nativeElement.querySelector(`spx-alert[id="${id}"]`);
58
+ console.log(alertElement);
59
+ if (alertElement) {
60
+ }
61
+ else {
62
+ console.error(`spx-alert element with ID ${id} not found.`);
63
+ }
44
64
  }
45
65
  handleClose(id) {
46
66
  this.spxClose.emit(id);
47
67
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxToasterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: SpxToasterComponent, isStandalone: true, selector: "spx-toaster", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: true, transformFunction: null }, spxAutoclose: { classPropertyName: "spxAutoclose", publicName: "spxAutoclose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { spxClose: "spxClose" }, host: { classAttribute: "spx-toasts-displayer" }, ngImport: i0, template: "\r\n@if (messages().length > 0) {\r\n <div\r\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\r\n @for (message of messages(); track message) {\r\n <spx-alert\r\n [spxAutoclose]=\"message.autoClose\"\r\n [spxCloseable]=\"message.closeable\"\r\n [spxSeverity]=\"message.severity\"\r\n [spxTitle]=\"message.title\"\r\n (spxClose)=\"handleClose(message.id)\"\r\n (click)=\"handleClose(message.id)\"\r\n [id]=\"message.id\"\r\n >{{message.message}}\r\n </spx-alert>\r\n }\r\n </div>\r\n}", styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"], dependencies: [{ kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity"], outputs: ["spxClose", "spxTitleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
+ calcToasterAutocloseSpeed(autoCloseSpeed, messageText) {
69
+ switch (autoCloseSpeed) {
70
+ case SpxToasterAutoCloseSpeedEnum.DEFAULT:
71
+ return Math.min(Math.max(messageText.length * 50, 2000), 7000);
72
+ case SpxToasterAutoCloseSpeedEnum.SLOW:
73
+ return Math.min(Math.max(messageText.length * 60, 3000), 10000);
74
+ default:
75
+ return autoCloseSpeed;
76
+ }
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxToasterComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: SpxToasterComponent, isStandalone: true, selector: "spx-toaster", inputs: { messages: "messages", spxAutoclose: "spxAutoclose" }, outputs: { spxClose: "spxClose" }, host: { properties: { "class.spx-toasts-displayer": "this.hostClass" } }, usesOnChanges: true, ngImport: i0, template: `
80
+ @if (messages && messages.length > 0) {
81
+ <div
82
+ class="flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50">
83
+ <style>
84
+ .progress-bar-container {
85
+ width: 100%;
86
+ height: 5px;
87
+ background-color: #ccc;
88
+ margin-top: 8px;
89
+ border-radius: 2px;
90
+ overflow: hidden;
91
+ }
92
+ .progress-bar {
93
+ height: 100%;
94
+ background-color: #76c7c0;
95
+ animation-name: progress;
96
+ animation-timing-function: ease-in-out;
97
+ animation-fill-mode: forwards;
98
+ animation-duration: 5000;
99
+ }
100
+ @keyframes progress {
101
+ from {
102
+ width: 0%;
103
+ }
104
+ to {
105
+ width: 100%;
106
+ }
107
+ }
108
+ </style>
109
+ @for (message of messages; track message) {
110
+ <spx-alert
111
+ [spxAutoclose]="message.autoClose"
112
+ [spxCloseable]="message.closeable"
113
+ [spxSeverity]="message.severity"
114
+ [spxTitle]="message.title"
115
+ (spxClose)="handleClose(message.id)"
116
+ (click)="handleClose(message.id)"
117
+ [id]="message.id"
118
+ >{{message.message}}
119
+ <!-- <div *ngIf="message.autoClose" class="progress-bar-container">
120
+ <div class="progress-bar"></div>
121
+ </div> -->
122
+ </spx-alert>
123
+ }
124
+ </div>
125
+ }`, isInline: true, styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"], dependencies: [{ kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity"], outputs: ["spxClose", "spxTitleChange"] }] }); }
50
126
  }
51
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SpxToasterComponent, decorators: [{
52
128
  type: Component,
53
- args: [{ selector: 'spx-toaster', standalone: true, imports: [SpxAlertComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
54
- class: 'spx-toasts-displayer',
55
- }, template: "\r\n@if (messages().length > 0) {\r\n <div\r\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\r\n @for (message of messages(); track message) {\r\n <spx-alert\r\n [spxAutoclose]=\"message.autoClose\"\r\n [spxCloseable]=\"message.closeable\"\r\n [spxSeverity]=\"message.severity\"\r\n [spxTitle]=\"message.title\"\r\n (spxClose)=\"handleClose(message.id)\"\r\n (click)=\"handleClose(message.id)\"\r\n [id]=\"message.id\"\r\n >{{message.message}}\r\n </spx-alert>\r\n }\r\n </div>\r\n}", styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"] }]
56
- }], ctorParameters: () => [] });
129
+ args: [{
130
+ selector: 'spx-toaster',
131
+ template: `
132
+ @if (messages && messages.length > 0) {
133
+ <div
134
+ class="flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50">
135
+ <style>
136
+ .progress-bar-container {
137
+ width: 100%;
138
+ height: 5px;
139
+ background-color: #ccc;
140
+ margin-top: 8px;
141
+ border-radius: 2px;
142
+ overflow: hidden;
143
+ }
144
+ .progress-bar {
145
+ height: 100%;
146
+ background-color: #76c7c0;
147
+ animation-name: progress;
148
+ animation-timing-function: ease-in-out;
149
+ animation-fill-mode: forwards;
150
+ animation-duration: 5000;
151
+ }
152
+ @keyframes progress {
153
+ from {
154
+ width: 0%;
155
+ }
156
+ to {
157
+ width: 100%;
158
+ }
159
+ }
160
+ </style>
161
+ @for (message of messages; track message) {
162
+ <spx-alert
163
+ [spxAutoclose]="message.autoClose"
164
+ [spxCloseable]="message.closeable"
165
+ [spxSeverity]="message.severity"
166
+ [spxTitle]="message.title"
167
+ (spxClose)="handleClose(message.id)"
168
+ (click)="handleClose(message.id)"
169
+ [id]="message.id"
170
+ >{{message.message}}
171
+ <!-- <div *ngIf="message.autoClose" class="progress-bar-container">
172
+ <div class="progress-bar"></div>
173
+ </div> -->
174
+ </spx-alert>
175
+ }
176
+ </div>
177
+ }`,
178
+ imports: [
179
+ SpxAlertComponent
180
+ ]
181
+ }]
182
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
183
+ type: HostBinding,
184
+ args: ['class.spx-toasts-displayer']
185
+ }], messages: [{
186
+ type: Input
187
+ }], spxClose: [{
188
+ type: Output
189
+ }], spxAutoclose: [{
190
+ type: Input
191
+ }] } });
57
192
 
58
193
  class SpxToasterMessageI {
59
- constructor(message, id, severity, autoClose, closeable) {
60
- this.autoClose = autoClose;
61
- this.message = message || '';
62
- this.id = id;
63
- this.severity = severity;
64
- this.closeable = closeable;
65
- }
66
- get autoClose() {
67
- return this._autoClose;
68
- }
69
- set autoClose(value) {
70
- if (value && value !== this._autoClose) {
71
- this._autoClose = toasterAutocloseSpeed(value, this.message);
72
- }
73
- }
74
194
  }
75
195
 
76
196
  const clearAll = createAction('[SPX / Toaster] Clear all', props());
@@ -115,7 +235,14 @@ var spxToaster_initial = /*#__PURE__*/Object.freeze({
115
235
  });
116
236
 
117
237
  function addMessage(currentMessages, newMessage) {
118
- const messages = [new SpxToasterMessageI(newMessage.message, newMessage.id, newMessage.severity, newMessage.autoClose ? newMessage.autoClose : undefined, newMessage.closeable ? newMessage.closeable : true), ...currentMessages];
238
+ const messages = [{
239
+ autoClose: newMessage.autoClose ? newMessage.autoClose : undefined,
240
+ closeable: newMessage.closeable ? newMessage.closeable : true,
241
+ id: newMessage.id,
242
+ message: newMessage.message,
243
+ title: newMessage.title,
244
+ severity: newMessage.severity,
245
+ }, ...currentMessages];
119
246
  if (messages.length > 5) {
120
247
  messages.length = 5;
121
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-toaster.mjs","sources":["../../../../projects/softpak/components/spx-toaster/src/spx-toaster-autoclose-speed.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.html","../../../../projects/softpak/components/spx-toaster/src/spx-toaster-message.interface.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.actions.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.initial.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.reducer.ts","../../../../projects/softpak/components/spx-toaster/softpak-components-spx-toaster.ts"],"sourcesContent":["export enum SpxToasterSeverityEnum {\r\n ERROR = 'error',\r\n INFO = 'info',\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n}\r\n\r\nexport enum SpxToasterAutoCloseSpeedEnum {\r\n DEFAULT = -1,\r\n SLOW = -2,\r\n}\r\n\r\nexport function toasterAutocloseSpeed(autoCloseSpeed: SpxToasterAutoCloseSpeedEnum, messageText: string) {\r\n switch (autoCloseSpeed) {\r\n case SpxToasterAutoCloseSpeedEnum.DEFAULT:\r\n return Math.min(Math.max(messageText.length * 50, 2000), 7000);\r\n case SpxToasterAutoCloseSpeedEnum.SLOW:\r\n return Math.min(Math.max(messageText.length * 60, 3000), 10000);\r\n default:\r\n return autoCloseSpeed;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { SpxToasterMessageI } from './spx-toaster-message.interface';\r\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\r\n\r\n@Component({\r\n selector: 'spx-toaster',\r\n standalone: true,\r\n imports: [SpxAlertComponent],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrl: './spx-toaster.component.scss',\r\n templateUrl: './spx-toaster.component.html',\r\n host: {\r\n class: 'spx-toasts-displayer',\r\n },\r\n})\r\nexport class SpxToasterComponent {\r\n messages = input.required<SpxToasterMessageI[]>();\r\n readonly spxAutoclose = input<number>();\r\n spxClose = output<number>();\r\n constructor() {\r\n effect(() => {\r\n this.messages().forEach((message) => {\r\n if (message.autoClose) {\r\n setTimeout(() => {\r\n this.handleClose(message.id);\r\n }, message.autoClose);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public handleClose(id: number) {\r\n this.spxClose.emit(id);\r\n }\r\n}\r\n","\r\n@if (messages().length > 0) {\r\n <div\r\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\r\n @for (message of messages(); track message) {\r\n <spx-alert\r\n [spxAutoclose]=\"message.autoClose\"\r\n [spxCloseable]=\"message.closeable\"\r\n [spxSeverity]=\"message.severity\"\r\n [spxTitle]=\"message.title\"\r\n (spxClose)=\"handleClose(message.id)\"\r\n (click)=\"handleClose(message.id)\"\r\n [id]=\"message.id\"\r\n >{{message.message}}\r\n </spx-alert>\r\n }\r\n </div>\r\n}","import { SpxSeverityEnum } from \"@softpak/components/spx-helpers\";\r\nimport { SpxToasterAutoCloseSpeedEnum, toasterAutocloseSpeed } from \"./spx-toaster-autoclose-speed\";\r\n\r\nexport class SpxToasterMessageI {\r\n private _autoClose?: number;\r\n title?: string;\r\n closeable?: boolean;\r\n id!: number;\r\n message!: string;\r\n severity!: SpxSeverityEnum;\r\n uniqueIdentifier?: string;\r\n\r\n constructor(message: string, id: number, severity: SpxSeverityEnum, autoClose?: SpxToasterAutoCloseSpeedEnum, closeable?: boolean) {\r\n this.autoClose = autoClose;\r\n this.message = message || '';\r\n this.id = id;\r\n this.severity = severity;\r\n this.closeable = closeable;\r\n }\r\n\r\n get autoClose(): number | undefined {\r\n return this._autoClose;\r\n }\r\n\r\n set autoClose(value: number | undefined) {\r\n if (value && value !== this._autoClose) {\r\n this._autoClose = toasterAutocloseSpeed(value, this.message);\r\n }\r\n }\r\n\r\n}\r\n","import { createAction, props, union } from '@ngrx/store';\r\nimport { SpxToasterAutoCloseSpeedEnum } from '../../src/spx-toaster-autoclose-speed';\r\n\r\nexport const clearAll = createAction('[SPX / Toaster] Clear all', props<Record<string, unknown>>());\r\nexport const clearAllErrors = createAction('[SPX / Toaster] Clear all errors', props<Record<string, unknown>>());\r\nexport const clearAllErrorsAndWarnings = createAction('[SPX / Toaster] Clear all errors and warnings', props<Record<string, unknown>>());\r\nexport const clearMessage = createAction('[SPX / Toaster] Clear message', props<{ id: number }>());\r\nexport const createError = createAction('[SPX / Toaster] Create error', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\nexport const createInfo = createAction('[SPX / Toaster] Create info', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\nexport const createSuccess = createAction('[SPX / Toaster] Create success', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\nexport const createWarning = createAction('[SPX / Toaster] Create warning', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\n\r\nconst all = union({\r\n clearAll,\r\n clearAllErrors,\r\n clearAllErrorsAndWarnings,\r\n clearMessage,\r\n createError,\r\n createInfo,\r\n createSuccess,\r\n createWarning,\r\n});\r\n\r\nexport type Actions = typeof all;\r\n","import { StateI } from \"./spx-toaster.state\";\r\n\r\nexport const initialState: StateI = {\r\n messages: [],\r\n nextId: 1,\r\n};\r\n","\r\nimport * as actions from './spx-toaster.actions';\r\nimport { createFeature, createReducer, on } from '@ngrx/store';\r\nimport { StateI } from './spx-toaster.state';\r\nimport { initialState } from './spx-toaster.initial';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\nimport { toasterAutocloseSpeed } from '../../src/spx-toaster-autoclose-speed';\r\nimport { SpxToasterMessageI } from '../../src/spx-toaster-message.interface';\r\n \r\nexport function addMessage(\r\n currentMessages: SpxToasterMessageI[], newMessage: SpxToasterMessageI): SpxToasterMessageI[] {\r\n const messages = [new SpxToasterMessageI(\r\n newMessage.message,\r\n newMessage.id,\r\n newMessage.severity,\r\n newMessage.autoClose ? newMessage.autoClose : undefined,\r\n newMessage.closeable ? newMessage.closeable : true,\r\n ), ...currentMessages];\r\n if (messages.length > 5) {\r\n messages.length = 5;\r\n }\r\n return messages;\r\n}\r\n\r\nexport default createFeature({\r\n name: 'spxToaster',\r\n reducer: createReducer(\r\n initialState,\r\n on(actions.clearAll, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n messages: []\r\n };\r\n }),\r\n on(actions.clearAllErrors, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error)]\r\n };\r\n }),\r\n on(actions.clearAllErrorsAndWarnings, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error &&\r\n msg.severity !== SpxSeverityEnum.warning)]\r\n };\r\n }),\r\n on(actions.clearMessage, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: [...state.messages.filter(msg => msg.id !== action.id)]\r\n };\r\n }),\r\n on(actions.createError, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.error,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n on(actions.createInfo, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.info,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n on(actions.createSuccess, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.success,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n on(actions.createWarning, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.warning,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n ),\r\n});\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["actions.clearAll","actions.clearAllErrors","actions.clearAllErrorsAndWarnings","actions.clearMessage","actions.createError","actions.createInfo","actions.createSuccess","actions.createWarning"],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-toaster.mjs","sources":["../../../../projects/softpak/components/spx-toaster/src/spx-toaster-autoclose-speed.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster-message.interface.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.actions.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.initial.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.reducer.ts","../../../../projects/softpak/components/spx-toaster/softpak-components-spx-toaster.ts"],"sourcesContent":["export enum SpxToasterSeverityEnum {\r\n ERROR = 'error',\r\n INFO = 'info',\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n}\r\n\r\nexport enum SpxToasterAutoCloseSpeedEnum {\r\n DEFAULT = -1,\r\n SLOW = -2,\r\n}\r\n\r\nexport function toasterAutocloseSpeed(autoCloseSpeed: SpxToasterAutoCloseSpeedEnum, messageText: string) {\r\n switch (autoCloseSpeed) {\r\n case SpxToasterAutoCloseSpeedEnum.DEFAULT:\r\n return Math.min(Math.max(messageText.length * 50, 2000), 7000);\r\n case SpxToasterAutoCloseSpeedEnum.SLOW:\r\n return Math.min(Math.max(messageText.length * 60, 3000), 10000);\r\n default:\r\n return autoCloseSpeed;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { SpxToasterMessageI } from './spx-toaster-message.interface';\r\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\r\n\r\nimport { SpxToasterAutoCloseSpeedEnum } from './spx-toaster-autoclose-speed';\r\n\r\n@Component({\r\n selector: 'spx-toaster',\r\n template: `\r\n @if (messages && messages.length > 0) {\r\n <div\r\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\r\n <style>\r\n .progress-bar-container {\r\n width: 100%;\r\n height: 5px;\r\n background-color: #ccc;\r\n margin-top: 8px;\r\n border-radius: 2px;\r\n overflow: hidden;\r\n }\r\n .progress-bar {\r\n height: 100%;\r\n background-color: #76c7c0;\r\n animation-name: progress;\r\n animation-timing-function: ease-in-out;\r\n animation-fill-mode: forwards;\r\n animation-duration: 5000;\r\n }\r\n @keyframes progress {\r\n from {\r\n width: 0%;\r\n }\r\n to {\r\n width: 100%;\r\n }\r\n }\r\n </style>\r\n @for (message of messages; track message) {\r\n <spx-alert\r\n [spxAutoclose]=\"message.autoClose\"\r\n [spxCloseable]=\"message.closeable\"\r\n [spxSeverity]=\"message.severity\"\r\n [spxTitle]=\"message.title\"\r\n (spxClose)=\"handleClose(message.id)\"\r\n (click)=\"handleClose(message.id)\"\r\n [id]=\"message.id\"\r\n >{{message.message}}\r\n <!-- <div *ngIf=\"message.autoClose\" class=\"progress-bar-container\">\r\n <div class=\"progress-bar\"></div>\r\n </div> -->\r\n </spx-alert>\r\n }\r\n </div>\r\n }`,\r\n imports: [\r\n SpxAlertComponent\r\n ]\r\n})\r\nexport class SpxToasterComponent implements OnChanges {\r\n @HostBinding('class.spx-toasts-displayer') hostClass = true;\r\n @Input() messages!: SpxToasterMessageI[];\r\n @Output() spxClose: EventEmitter<number> = new EventEmitter<number>();\r\n @Input() spxAutoclose: number | undefined;\r\n count: number = 0;\r\n constructor(private renderer: Renderer2, private el: ElementRef) { \r\n\r\n }\r\n\r\n\r\n ngOnChanges() {\r\n this.messages = this.messages.map(m => ({ ...m, autoClose: this.calcToasterAutocloseSpeed(m.autoClose, m.message) }));\r\n if (this.messages.length > 0) {\r\n setTimeout(() => {\r\n this.messages = this.messages.map(message => {\r\n if (message.autoClose) {\r\n // console.log(message.autoClose);\r\n // this.showProgressBar(message.autoClose, message.id)\r\n // this.showProgressBar(600000, message.id)\r\n setTimeout(() => {\r\n this.handleClose(message.id)\r\n }, message.autoClose);\r\n }\r\n return message;\r\n });\r\n }, 0);\r\n }\r\n }\r\n \r\n\r\n showProgressBar(autoclose: number, id: number) {\r\n const alertElement = this.el.nativeElement.querySelector(`spx-alert[id=\"${id}\"]`);\r\n console.log(alertElement);\r\n if (alertElement) {\r\n \r\n } else {\r\n console.error(`spx-alert element with ID ${id} not found.`);\r\n }\r\n }\r\n \r\n\r\n public handleClose(id: number) {\r\n this.spxClose.emit(id);\r\n }\r\n\r\n private calcToasterAutocloseSpeed(autoCloseSpeed: SpxToasterAutoCloseSpeedEnum, messageText: string): number {\r\n switch (autoCloseSpeed) {\r\n case SpxToasterAutoCloseSpeedEnum.DEFAULT:\r\n return Math.min(Math.max(messageText.length * 50, 2000), 7000);\r\n case SpxToasterAutoCloseSpeedEnum.SLOW:\r\n return Math.min(Math.max(messageText.length * 60, 3000), 10000);\r\n default:\r\n return autoCloseSpeed;\r\n }\r\n }\r\n}\r\n","import { SpxSeverityEnum } from \"@softpak/components/spx-helpers\";\r\n\r\nexport class SpxToasterMessageI {\r\n autoClose?: any;\r\n title?: string;\r\n closeable?: boolean;\r\n id!: number;\r\n message!: string;\r\n severity!: SpxSeverityEnum;\r\n uniqueIdentifier?: string;\r\n}\r\n","import { createAction, props, union } from '@ngrx/store';\r\nimport { SpxToasterAutoCloseSpeedEnum } from '../../src/spx-toaster-autoclose-speed';\r\n\r\nexport const clearAll = createAction('[SPX / Toaster] Clear all', props<Record<string, unknown>>());\r\nexport const clearAllErrors = createAction('[SPX / Toaster] Clear all errors', props<Record<string, unknown>>());\r\nexport const clearAllErrorsAndWarnings = createAction('[SPX / Toaster] Clear all errors and warnings', props<Record<string, unknown>>());\r\nexport const clearMessage = createAction('[SPX / Toaster] Clear message', props<{ id: number }>());\r\nexport const createError = createAction('[SPX / Toaster] Create error', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\nexport const createInfo = createAction('[SPX / Toaster] Create info', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\nexport const createSuccess = createAction('[SPX / Toaster] Create success', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\nexport const createWarning = createAction('[SPX / Toaster] Create warning', props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum, closeable?: boolean, messageText: string, title?: string }>());\r\n\r\nconst all = union({\r\n clearAll,\r\n clearAllErrors,\r\n clearAllErrorsAndWarnings,\r\n clearMessage,\r\n createError,\r\n createInfo,\r\n createSuccess,\r\n createWarning,\r\n});\r\n\r\nexport type Actions = typeof all;\r\n","import { StateI } from \"./spx-toaster.state\";\r\n\r\nexport const initialState: StateI = {\r\n messages: [],\r\n nextId: 1,\r\n};\r\n","\r\nimport * as actions from './spx-toaster.actions';\r\nimport { createFeature, createReducer, on } from '@ngrx/store';\r\nimport { StateI } from './spx-toaster.state';\r\nimport { initialState } from './spx-toaster.initial';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\nimport { toasterAutocloseSpeed } from '../../src/spx-toaster-autoclose-speed';\r\nimport { SpxToasterMessageI } from '../../src/spx-toaster-message.interface';\r\n \r\nexport function addMessage(\r\n currentMessages: SpxToasterMessageI[], newMessage: SpxToasterMessageI): SpxToasterMessageI[] {\r\n const messages = [{\r\n autoClose: newMessage.autoClose ? newMessage.autoClose : undefined,\r\n closeable: newMessage.closeable ? newMessage.closeable : true,\r\n id: newMessage.id,\r\n message: newMessage.message,\r\n title: newMessage.title,\r\n severity: newMessage.severity,\r\n }, ...currentMessages];\r\n if (messages.length > 5) {\r\n messages.length = 5;\r\n }\r\n return messages;\r\n}\r\n\r\nexport default createFeature({\r\n name: 'spxToaster',\r\n reducer: createReducer(\r\n initialState,\r\n on(actions.clearAll, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n messages: []\r\n };\r\n }),\r\n on(actions.clearAllErrors, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error)]\r\n };\r\n }),\r\n on(actions.clearAllErrorsAndWarnings, (state: StateI): StateI => {\r\n return {\r\n ...state,\r\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error &&\r\n msg.severity !== SpxSeverityEnum.warning)]\r\n };\r\n }),\r\n on(actions.clearMessage, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: [...state.messages.filter(msg => msg.id !== action.id)]\r\n };\r\n }),\r\n on(actions.createError, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.error,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n on(actions.createInfo, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.info,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n on(actions.createSuccess, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.success,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n on(actions.createWarning, (state: StateI, action): StateI => {\r\n return {\r\n ...state,\r\n messages: addMessage(state.messages, {\r\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\r\n closeable: action.closeable ? action.closeable : true,\r\n id: state.nextId,\r\n message: action.messageText,\r\n severity: SpxSeverityEnum.warning,\r\n title: action.title,\r\n }),\r\n nextId: state.nextId + 1\r\n };\r\n }),\r\n ),\r\n});\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["actions.clearAll","actions.clearAllErrors","actions.clearAllErrorsAndWarnings","actions.clearMessage","actions.createError","actions.createInfo","actions.createSuccess","actions.createWarning"],"mappings":"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"}
@@ -10,6 +10,10 @@ const spxTextCompany = 'spxTextCompany';
10
10
  const spxTextSelect = 'spxTextSelect';
11
11
  const spxTextSelectYourCompany = 'spxSelectYourCompany';
12
12
  const spxTextChange = 'spxTextChange';
13
+ const spxText404PageNotFound = "spxText404PageNotFound";
14
+ const spxTextPageNotFound = "spxTextPageNotFound";
15
+ const spxTextPageNotFoundDescription = "spxTextPageNotFoundDescription";
16
+ const spxTextGoHome = "spxTextGoHome";
13
17
 
14
18
  const SpxTranslateEn = {
15
19
  [spxTextCheckingForUpdates]: 'checking for updates',
@@ -24,6 +28,10 @@ const SpxTranslateEn = {
24
28
  [spxTextSelect]: 'select',
25
29
  [spxTextSelectYourCompany]: 'select your company',
26
30
  [spxTextChange]: 'change',
31
+ [spxText404PageNotFound]: "404 page not found",
32
+ [spxTextPageNotFound]: "Page not found",
33
+ [spxTextPageNotFoundDescription]: "Sorry, the page you’re looking for doesn’t exist or has been moved.",
34
+ [spxTextGoHome]: "Go home"
27
35
  };
28
36
 
29
37
  const SpxTranslateNl = {
@@ -39,11 +47,15 @@ const SpxTranslateNl = {
39
47
  [spxTextSelect]: 'selecteer',
40
48
  [spxTextSelectYourCompany]: 'selecteer uw bedrijf',
41
49
  [spxTextChange]: 'wissel',
50
+ [spxText404PageNotFound]: "404 pagina niet gevonden",
51
+ [spxTextPageNotFound]: "Pagina niet gevonden",
52
+ [spxTextPageNotFoundDescription]: "Sorry, de pagina die u zoekt bestaat niet of is verplaatst.",
53
+ [spxTextGoHome]: "Ga naar het hoofdscherm"
42
54
  };
43
55
 
44
56
  /**
45
57
  * Generated bundle index. Do not edit.
46
58
  */
47
59
 
48
- export { SpxTranslateEn, SpxTranslateNl, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextSelect, spxTextSelectYourCompany, spxTextUpdate, spxTextUpdateAvailable };
60
+ export { SpxTranslateEn, SpxTranslateNl, spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextGoHome, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextSelect, spxTextSelectYourCompany, spxTextUpdate, spxTextUpdateAvailable };
49
61
  //# sourceMappingURL=softpak-components-spx-translate.mjs.map
@@ -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\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}\r\n","import { spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextOneMomentPlease, spxTextOpenAppStore, 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}\r\n","import { spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextCompany, spxTextOneMomentPlease, spxTextOpenAppStore, 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}\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;;ACThB,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;;;ACZd,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;;;ACd3B;;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';\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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, signal, ChangeDetectionStrategy, Injectable } from '@angular/core';
2
+ import { Component, signal, Injectable } from '@angular/core';
3
3
  import { TranslatePipe } from '@ngx-translate/core';
4
4
  import * as i3 from '@ionic/angular/standalone';
5
5
  import { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
@@ -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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
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" }] }); }
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
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, 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()) {\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}" }]
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 { ChangeDetectionStrategy, Component, 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 standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\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';\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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"}