@softpak/components 19.25.3 → 19.26.0-beta.1
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.
- package/README.md +24 -24
- package/fesm2022/softpak-components-spx-404-page.mjs +2 -2
- package/fesm2022/softpak-components-spx-404-page.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-alert.mjs +2 -2
- package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-expiry.mjs +2 -2
- package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-button.mjs +2 -2
- package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-card.mjs +8 -8
- package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +2 -2
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-channel-selection.mjs +52 -52
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-check-digit.mjs +2 -2
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-confirm.mjs +4 -4
- package/fesm2022/softpak-components-spx-confirm.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-section.mjs +2 -2
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-view.mjs +4 -4
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +20 -22
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-navigation.mjs +6 -6
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-number-check.mjs +2 -2
- package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-pagination.mjs +2 -2
- package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-patch.mjs +2 -2
- package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-pipes.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-progress-bar.mjs +2 -2
- package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-spinner.mjs +2 -2
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-stock-info.mjs +2 -2
- package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-suggestion.mjs +2 -2
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-tabs.mjs +3 -3
- package/fesm2022/softpak-components-spx-tabs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-toaster.mjs +2 -2
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-toggle.mjs +2 -2
- package/fesm2022/softpak-components-spx-toggle.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-translate.mjs +39 -3
- package/fesm2022/softpak-components-spx-translate.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +196 -50
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-validation-messages.mjs +42 -3
- package/fesm2022/softpak-components-spx-validation-messages.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-validation.mjs +2 -2
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
- package/package.json +9 -6
- package/spx-translate/spx-translate._const.d.ts +25 -0
- package/spx-update/public-api.d.ts +6 -1
- package/spx-update/store/spx-update-check-v2/spx-update-check.actions.d.ts +28 -0
- package/spx-update/store/spx-update-check-v2/spx-update-check.effects.d.ts +14 -0
- package/spx-update/store/spx-update-check-v2/spx-update-check.initial.d.ts +2 -0
- package/spx-update/store/spx-update-check-v2/spx-update-check.reducer.d.ts +10 -0
- package/spx-update/store/spx-update-check-v2/spx-update-check.state.d.ts +5 -0
- package/spx-validation-messages/spx-validation-messages.component.d.ts +14 -0
|
@@ -21,78 +21,79 @@ import { captureMessage } from '@sentry/angular';
|
|
|
21
21
|
import { Capacitor } from '@capacitor/core';
|
|
22
22
|
import { App } from '@capacitor/app';
|
|
23
23
|
import { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';
|
|
24
|
+
import { LiveUpdate } from '@capawesome/capacitor-live-update';
|
|
24
25
|
|
|
25
|
-
const anUpdateIsReady = createAction('[SPX / Update Check] An update is ready', props());
|
|
26
|
-
const clearError = createAction('[SPX / Update Check] Clear error', props());
|
|
27
|
-
const checkFailed = createAction('[SPX / Update Check] Error happened', props());
|
|
28
|
-
const initialize = createAction('[SPX / Update Check] Initialize', props());
|
|
29
|
-
const noUpdateWasFound = createAction('[SPX / Update Check] No update was found', props());
|
|
30
|
-
const notAvailableOnWeb = createAction('[SPX / Update Check] Not available on web', props());
|
|
31
|
-
const runCheck = createAction('[SPX / Update Check] Run', props());
|
|
32
|
-
const all$
|
|
33
|
-
anUpdateIsReady,
|
|
34
|
-
clearError,
|
|
35
|
-
checkFailed,
|
|
36
|
-
initialize,
|
|
37
|
-
noUpdateWasFound,
|
|
38
|
-
notAvailableOnWeb,
|
|
39
|
-
runCheck,
|
|
26
|
+
const anUpdateIsReady$1 = createAction('[SPX / Update Check] An update is ready', props());
|
|
27
|
+
const clearError$1 = createAction('[SPX / Update Check] Clear error', props());
|
|
28
|
+
const checkFailed$1 = createAction('[SPX / Update Check] Error happened', props());
|
|
29
|
+
const initialize$1 = createAction('[SPX / Update Check] Initialize', props());
|
|
30
|
+
const noUpdateWasFound$1 = createAction('[SPX / Update Check] No update was found', props());
|
|
31
|
+
const notAvailableOnWeb$1 = createAction('[SPX / Update Check] Not available on web', props());
|
|
32
|
+
const runCheck$1 = createAction('[SPX / Update Check] Run', props());
|
|
33
|
+
const all$2 = union({
|
|
34
|
+
anUpdateIsReady: anUpdateIsReady$1,
|
|
35
|
+
clearError: clearError$1,
|
|
36
|
+
checkFailed: checkFailed$1,
|
|
37
|
+
initialize: initialize$1,
|
|
38
|
+
noUpdateWasFound: noUpdateWasFound$1,
|
|
39
|
+
notAvailableOnWeb: notAvailableOnWeb$1,
|
|
40
|
+
runCheck: runCheck$1,
|
|
40
41
|
});
|
|
41
42
|
|
|
42
|
-
var spxUpdateCheck_actions = /*#__PURE__*/Object.freeze({
|
|
43
|
+
var spxUpdateCheck_actions$1 = /*#__PURE__*/Object.freeze({
|
|
43
44
|
__proto__: null,
|
|
44
|
-
anUpdateIsReady: anUpdateIsReady,
|
|
45
|
-
checkFailed: checkFailed,
|
|
46
|
-
clearError: clearError,
|
|
47
|
-
initialize: initialize,
|
|
48
|
-
noUpdateWasFound: noUpdateWasFound,
|
|
49
|
-
notAvailableOnWeb: notAvailableOnWeb,
|
|
50
|
-
runCheck: runCheck
|
|
45
|
+
anUpdateIsReady: anUpdateIsReady$1,
|
|
46
|
+
checkFailed: checkFailed$1,
|
|
47
|
+
clearError: clearError$1,
|
|
48
|
+
initialize: initialize$1,
|
|
49
|
+
noUpdateWasFound: noUpdateWasFound$1,
|
|
50
|
+
notAvailableOnWeb: notAvailableOnWeb$1,
|
|
51
|
+
runCheck: runCheck$1
|
|
51
52
|
});
|
|
52
53
|
|
|
53
|
-
const initialState$
|
|
54
|
+
const initialState$2 = {
|
|
54
55
|
forceWaitForUpdate: false,
|
|
55
56
|
lastCheck: null,
|
|
56
57
|
showError: false,
|
|
57
58
|
};
|
|
58
59
|
|
|
59
|
-
var spxUpdateCheck_initial = /*#__PURE__*/Object.freeze({
|
|
60
|
+
var spxUpdateCheck_initial$1 = /*#__PURE__*/Object.freeze({
|
|
60
61
|
__proto__: null,
|
|
61
|
-
initialState: initialState$
|
|
62
|
+
initialState: initialState$2
|
|
62
63
|
});
|
|
63
64
|
|
|
64
65
|
var updCheck = createFeature({
|
|
65
66
|
name: 'spxUpdateCheck',
|
|
66
|
-
reducer: createReducer(initialState$
|
|
67
|
+
reducer: createReducer(initialState$2, on(anUpdateIsReady$1, (state) => {
|
|
67
68
|
return {
|
|
68
69
|
...state,
|
|
69
70
|
lastCheck: DateTime.now().toISO(),
|
|
70
71
|
showError: false,
|
|
71
72
|
};
|
|
72
|
-
}), on(clearError, (state) => {
|
|
73
|
+
}), on(clearError$1, (state) => {
|
|
73
74
|
return {
|
|
74
75
|
...state,
|
|
75
76
|
showError: false,
|
|
76
77
|
};
|
|
77
|
-
}), on(checkFailed, (state) => {
|
|
78
|
+
}), on(checkFailed$1, (state) => {
|
|
78
79
|
return {
|
|
79
80
|
...state,
|
|
80
81
|
forceWaitForUpdate: false,
|
|
81
82
|
showError: true,
|
|
82
83
|
};
|
|
83
|
-
}), on(noUpdateWasFound, (state) => {
|
|
84
|
+
}), on(noUpdateWasFound$1, (state) => {
|
|
84
85
|
return {
|
|
85
86
|
...state,
|
|
86
87
|
forceWaitForUpdate: false,
|
|
87
88
|
lastCheck: DateTime.now().toISO(),
|
|
88
89
|
showError: false,
|
|
89
90
|
};
|
|
90
|
-
}), on(runCheck, (state, { forceWaitForUpdate }) => {
|
|
91
|
+
}), on(runCheck$1, (state, { forceWaitForUpdate }) => {
|
|
91
92
|
return {
|
|
92
93
|
...state,
|
|
93
94
|
forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate
|
|
94
95
|
};
|
|
95
|
-
}), on(notAvailableOnWeb, (state) => {
|
|
96
|
+
}), on(notAvailableOnWeb$1, (state) => {
|
|
96
97
|
return {
|
|
97
98
|
...state,
|
|
98
99
|
forceWaitForUpdate: false
|
|
@@ -100,14 +101,14 @@ var updCheck = createFeature({
|
|
|
100
101
|
})),
|
|
101
102
|
});
|
|
102
103
|
|
|
103
|
-
var spxUpdateCheck_reducer = /*#__PURE__*/Object.freeze({
|
|
104
|
+
var spxUpdateCheck_reducer$2 = /*#__PURE__*/Object.freeze({
|
|
104
105
|
__proto__: null,
|
|
105
106
|
default: updCheck
|
|
106
107
|
});
|
|
107
108
|
|
|
108
109
|
class SpxUpdatePageComponent {
|
|
109
110
|
ngOnInit() {
|
|
110
|
-
this.appStore.dispatch(runCheck({ forceWaitForUpdate: true }));
|
|
111
|
+
this.appStore.dispatch(runCheck$1({ forceWaitForUpdate: true }));
|
|
111
112
|
this.subscriptions.updCheck = this.appStore.select(updCheck.selectForceWaitForUpdate).subscribe(forceWaitForUpdate => {
|
|
112
113
|
if (forceWaitForUpdate === false) {
|
|
113
114
|
if (this.activatedRoute.snapshot.data['url'] === undefined) {
|
|
@@ -129,7 +130,7 @@ class SpxUpdatePageComponent {
|
|
|
129
130
|
this.subscriptions = {};
|
|
130
131
|
}
|
|
131
132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: SpxUpdatePageComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n {{ spxTextOneMomentPlease | translate | capitalize }}...\n</ion-content>\n", dependencies: [{ kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
133
134
|
}
|
|
134
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
|
|
135
136
|
type: Component,
|
|
@@ -140,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
140
141
|
IonTitle,
|
|
141
142
|
SpxCapitalizePipe,
|
|
142
143
|
TranslatePipe,
|
|
143
|
-
], standalone: true, template: "<ion-header>\
|
|
144
|
+
], standalone: true, 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" }]
|
|
144
145
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }, { type: i3.NavController }] });
|
|
145
146
|
|
|
146
147
|
const acceptUpdate = createAction('[SPX / Update Pending] Accept update', props());
|
|
@@ -148,7 +149,7 @@ const hasBeenDownloaded = createAction('[SPX / Update Pending] Has been download
|
|
|
148
149
|
const hasBeenInstalled = createAction('[SPX / Update Pending] Has been installed', props());
|
|
149
150
|
const postpone = createAction('[SPX / Update Pending] Postpone', props());
|
|
150
151
|
const postponeExpired = createAction('[SPX / Update Pending] Postpone expired', props());
|
|
151
|
-
const all = union({
|
|
152
|
+
const all$1 = union({
|
|
152
153
|
acceptUpdate,
|
|
153
154
|
hasBeenDownloaded,
|
|
154
155
|
hasBeenInstalled,
|
|
@@ -165,19 +166,19 @@ var spxUpdatePending_actions = /*#__PURE__*/Object.freeze({
|
|
|
165
166
|
postponeExpired: postponeExpired
|
|
166
167
|
});
|
|
167
168
|
|
|
168
|
-
const initialState = {
|
|
169
|
+
const initialState$1 = {
|
|
169
170
|
showLiveUpdateReady: false,
|
|
170
171
|
updateIsDownloadedAndPending: false,
|
|
171
172
|
};
|
|
172
173
|
|
|
173
174
|
var spxUpdatePending_initial = /*#__PURE__*/Object.freeze({
|
|
174
175
|
__proto__: null,
|
|
175
|
-
initialState: initialState
|
|
176
|
+
initialState: initialState$1
|
|
176
177
|
});
|
|
177
178
|
|
|
178
179
|
var updPending = createFeature({
|
|
179
180
|
name: 'spxUpdatePending',
|
|
180
|
-
reducer: createReducer(initialState, on(hasBeenDownloaded, (state) => {
|
|
181
|
+
reducer: createReducer(initialState$1, on(hasBeenDownloaded, (state) => {
|
|
181
182
|
return {
|
|
182
183
|
...state,
|
|
183
184
|
showLiveUpdateReady: true,
|
|
@@ -240,7 +241,7 @@ class SpxUpdatePendingComponent {
|
|
|
240
241
|
this.appStore.dispatch(acceptUpdate({}));
|
|
241
242
|
}
|
|
242
243
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: SpxUpdatePendingComponent, deps: [{ token: i1.Store }, { token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
243
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: SpxUpdatePendingComponent, isStandalone: true, selector: "spx-update-pending", host: { properties: { "style": "this.baseStyle" } }, ngImport: i0, template: "@if (showLiveUpdateReady()) {\
|
|
244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: SpxUpdatePendingComponent, isStandalone: true, selector: "spx-update-pending", host: { properties: { "style": "this.baseStyle" } }, ngImport: i0, template: "@if (showLiveUpdateReady()) {\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\n <div class=\"grow\">\n <p\n class=\"text-xl font-extrabold bg-clip-text text-transparent bg-[linear-gradient(to_right,theme(colors.green.300),theme(colors.green.100),theme(colors.sky.400),theme(colors.yellow.200),theme(colors.sky.400),theme(colors.green.100),theme(colors.green.300))] bg-[length:200%_auto] animate-gradient\">\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\n </div>\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\n }}</spx-button>\n</div>\n}", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
244
245
|
}
|
|
245
246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: SpxUpdatePendingComponent, decorators: [{
|
|
246
247
|
type: Component,
|
|
@@ -248,7 +249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
248
249
|
SpxButtonComponent,
|
|
249
250
|
SpxCapitalizePipe,
|
|
250
251
|
TranslatePipe,
|
|
251
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (showLiveUpdateReady()) {\
|
|
252
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, 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}" }]
|
|
252
253
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.DomSanitizer }], propDecorators: { baseStyle: [{
|
|
253
254
|
type: HostBinding,
|
|
254
255
|
args: ['style']
|
|
@@ -256,13 +257,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
256
257
|
|
|
257
258
|
const spxUpdateUrl = '';
|
|
258
259
|
|
|
259
|
-
let Effects$
|
|
260
|
+
let Effects$2 = class Effects {
|
|
260
261
|
constructor(actions$) {
|
|
261
262
|
this.actions$ = actions$;
|
|
262
|
-
this.afterInitialize$ = createEffect(() => this.actions$.pipe(ofType(initialize), delay(120000), mergeMap(() => [
|
|
263
|
-
runCheck({}),
|
|
263
|
+
this.afterInitialize$ = createEffect(() => this.actions$.pipe(ofType(initialize$1), delay(120000), mergeMap(() => [
|
|
264
|
+
runCheck$1({}),
|
|
264
265
|
])));
|
|
265
|
-
this.onRun$ = createEffect(() => this.actions$.pipe(ofType(runCheck), tap(async () => {
|
|
266
|
+
this.onRun$ = createEffect(() => this.actions$.pipe(ofType(runCheck$1), tap(async () => {
|
|
266
267
|
if (Capacitor.getPlatform() !== 'web') {
|
|
267
268
|
// Migrate from e.g. 1.2.x to 1.3.x
|
|
268
269
|
const binaryInfo = await App.getInfo();
|
|
@@ -287,16 +288,106 @@ let Effects$1 = class Effects {
|
|
|
287
288
|
if (action.forceWaitForUpdate) {
|
|
288
289
|
reload();
|
|
289
290
|
}
|
|
290
|
-
return anUpdateIsReady({});
|
|
291
|
+
return anUpdateIsReady$1({});
|
|
291
292
|
}
|
|
292
293
|
else {
|
|
293
|
-
return noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });
|
|
294
|
+
return noUpdateWasFound$1({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });
|
|
294
295
|
}
|
|
295
296
|
}), catchError((err) => {
|
|
296
297
|
if (err.message !== 'Not implemented for web only') {
|
|
297
298
|
captureMessage("[UPD] Handled: " + err.message);
|
|
298
299
|
}
|
|
299
|
-
return err.message === 'Not implemented for web only' ? of(notAvailableOnWeb({})) : of(checkFailed({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }));
|
|
300
|
+
return err.message === 'Not implemented for web only' ? of(notAvailableOnWeb$1({})) : of(checkFailed$1({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }));
|
|
301
|
+
})))));
|
|
302
|
+
this.whenAndUpdateIsReady$ = createEffect(() => this.actions$.pipe(ofType(anUpdateIsReady$1), mergeMap(() => [
|
|
303
|
+
hasBeenDownloaded({}),
|
|
304
|
+
])));
|
|
305
|
+
this.whenCheckHasFailed$ = createEffect(() => this.actions$.pipe(ofType(checkFailed$1), delay(30000), mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [
|
|
306
|
+
runCheck$1({}),
|
|
307
|
+
])));
|
|
308
|
+
this.whenNoUpdateWasFound$ = createEffect(() => this.actions$.pipe(ofType(noUpdateWasFound$1), delay(120000), mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [
|
|
309
|
+
runCheck$1({}),
|
|
310
|
+
])));
|
|
311
|
+
}
|
|
312
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: Effects, deps: [{ token: i1$1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
313
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: Effects }); }
|
|
314
|
+
};
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: Effects$2, decorators: [{
|
|
316
|
+
type: Injectable
|
|
317
|
+
}], ctorParameters: () => [{ type: i1$1.Actions }] });
|
|
318
|
+
|
|
319
|
+
var spxUpdateCheck_effects$1 = /*#__PURE__*/Object.freeze({
|
|
320
|
+
__proto__: null,
|
|
321
|
+
Effects: Effects$2
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
var spxUpdateCheck_state$1 = /*#__PURE__*/Object.freeze({
|
|
325
|
+
__proto__: null
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
const anUpdateIsReady = createAction('[SPX / Update Check V2] An update is ready', props());
|
|
329
|
+
const clearError = createAction('[SPX / Update Check V2] Clear error', props());
|
|
330
|
+
const checkFailed = createAction('[SPX / Update Check V2] Error happened', props());
|
|
331
|
+
const initialize = createAction('[SPX / Update Check V2] Initialize', props());
|
|
332
|
+
const noUpdateWasFound = createAction('[SPX / Update Check V2] No update was found', props());
|
|
333
|
+
const notAvailableOnWeb = createAction('[SPX / Update Check V2] Not available on web', props());
|
|
334
|
+
const runCheck = createAction('[SPX / Update Check V2] Run', props());
|
|
335
|
+
const all = union({
|
|
336
|
+
anUpdateIsReady,
|
|
337
|
+
clearError,
|
|
338
|
+
checkFailed,
|
|
339
|
+
initialize,
|
|
340
|
+
noUpdateWasFound,
|
|
341
|
+
notAvailableOnWeb,
|
|
342
|
+
runCheck,
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
var spxUpdateCheck_actions = /*#__PURE__*/Object.freeze({
|
|
346
|
+
__proto__: null,
|
|
347
|
+
anUpdateIsReady: anUpdateIsReady,
|
|
348
|
+
checkFailed: checkFailed,
|
|
349
|
+
clearError: clearError,
|
|
350
|
+
initialize: initialize,
|
|
351
|
+
noUpdateWasFound: noUpdateWasFound,
|
|
352
|
+
notAvailableOnWeb: notAvailableOnWeb,
|
|
353
|
+
runCheck: runCheck
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
let Effects$1 = class Effects {
|
|
357
|
+
constructor(actions$) {
|
|
358
|
+
this.actions$ = actions$;
|
|
359
|
+
this.afterInitialize$ = createEffect(() => this.actions$.pipe(ofType(initialize), delay(120000), mergeMap(() => [
|
|
360
|
+
runCheck({}),
|
|
361
|
+
])));
|
|
362
|
+
this.onRun$ = createEffect(() => this.actions$.pipe(ofType(runCheck), tap(async () => {
|
|
363
|
+
if (Capacitor.getPlatform() !== 'web') {
|
|
364
|
+
// Migrate from e.g. 1.2.x to 1.3.x
|
|
365
|
+
const binaryVersionGroup = (await App.getInfo()).version.split('.').slice(0, 1).join('.'); // version without last digit, e.g. "1.4",
|
|
366
|
+
const channel = await LiveUpdate.getChannel();
|
|
367
|
+
const channelVersionGroup = channel.channel.split('-')[1].split('.').slice(0, 1).join('.'); // version without last digit, e.g. "1.4",
|
|
368
|
+
let channelType = channel.channel.split('-')[0];
|
|
369
|
+
if (channelType === null || binaryVersionGroup != channelVersionGroup) {
|
|
370
|
+
await LiveUpdate.setChannel({
|
|
371
|
+
channel: `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
// End migrate from e.g. 1.2.x to 1.3.x
|
|
375
|
+
}
|
|
376
|
+
}), exhaustMap((action) => from(LiveUpdate.sync()).pipe(map((syncResult) => {
|
|
377
|
+
if (syncResult.nextBundleId) {
|
|
378
|
+
if (action.forceWaitForUpdate) {
|
|
379
|
+
LiveUpdate.reload();
|
|
380
|
+
}
|
|
381
|
+
return anUpdateIsReady({});
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
return noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });
|
|
385
|
+
}
|
|
386
|
+
}), catchError((err) => {
|
|
387
|
+
if (err.message !== `Not implemented for web only`) {
|
|
388
|
+
captureMessage(`[UPD] Handled: ${err.message}`);
|
|
389
|
+
}
|
|
390
|
+
return err.message === `Not implemented for web only` ? of(notAvailableOnWeb({})) : of(checkFailed({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }));
|
|
300
391
|
})))));
|
|
301
392
|
this.whenAndUpdateIsReady$ = createEffect(() => this.actions$.pipe(ofType(anUpdateIsReady), mergeMap(() => [
|
|
302
393
|
hasBeenDownloaded({}),
|
|
@@ -320,6 +411,61 @@ var spxUpdateCheck_effects = /*#__PURE__*/Object.freeze({
|
|
|
320
411
|
Effects: Effects$1
|
|
321
412
|
});
|
|
322
413
|
|
|
414
|
+
const initialState = {
|
|
415
|
+
forceWaitForUpdate: false,
|
|
416
|
+
lastCheck: null,
|
|
417
|
+
showError: false,
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
var spxUpdateCheck_initial = /*#__PURE__*/Object.freeze({
|
|
421
|
+
__proto__: null,
|
|
422
|
+
initialState: initialState
|
|
423
|
+
});
|
|
424
|
+
|
|
425
|
+
var spxUpdateCheck_reducer = createFeature({
|
|
426
|
+
name: 'spxUpdateCheck',
|
|
427
|
+
reducer: createReducer(initialState, on(anUpdateIsReady, (state) => {
|
|
428
|
+
return {
|
|
429
|
+
...state,
|
|
430
|
+
lastCheck: DateTime.now().toISO(),
|
|
431
|
+
showError: false,
|
|
432
|
+
};
|
|
433
|
+
}), on(clearError, (state) => {
|
|
434
|
+
return {
|
|
435
|
+
...state,
|
|
436
|
+
showError: false,
|
|
437
|
+
};
|
|
438
|
+
}), on(checkFailed, (state) => {
|
|
439
|
+
return {
|
|
440
|
+
...state,
|
|
441
|
+
forceWaitForUpdate: false,
|
|
442
|
+
showError: true,
|
|
443
|
+
};
|
|
444
|
+
}), on(noUpdateWasFound, (state) => {
|
|
445
|
+
return {
|
|
446
|
+
...state,
|
|
447
|
+
forceWaitForUpdate: false,
|
|
448
|
+
lastCheck: DateTime.now().toISO(),
|
|
449
|
+
showError: false,
|
|
450
|
+
};
|
|
451
|
+
}), on(runCheck, (state, { forceWaitForUpdate }) => {
|
|
452
|
+
return {
|
|
453
|
+
...state,
|
|
454
|
+
forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate
|
|
455
|
+
};
|
|
456
|
+
}), on(notAvailableOnWeb, (state) => {
|
|
457
|
+
return {
|
|
458
|
+
...state,
|
|
459
|
+
forceWaitForUpdate: false
|
|
460
|
+
};
|
|
461
|
+
})),
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
var spxUpdateCheck_reducer$1 = /*#__PURE__*/Object.freeze({
|
|
465
|
+
__proto__: null,
|
|
466
|
+
default: spxUpdateCheck_reducer
|
|
467
|
+
});
|
|
468
|
+
|
|
323
469
|
var spxUpdateCheck_state = /*#__PURE__*/Object.freeze({
|
|
324
470
|
__proto__: null
|
|
325
471
|
});
|
|
@@ -352,5 +498,5 @@ var spxUpdatePending_state = /*#__PURE__*/Object.freeze({
|
|
|
352
498
|
* Generated bundle index. Do not edit.
|
|
353
499
|
*/
|
|
354
500
|
|
|
355
|
-
export { SpxUpdatePageComponent, SpxUpdatePendingComponent, spxUpdateCheck_actions as spxUpdateCheckActions, spxUpdateCheck_effects as spxUpdateCheckEffects, spxUpdateCheck_initial as spxUpdateCheckInitial, spxUpdateCheck_reducer as spxUpdateCheckReducer, spxUpdateCheck_state as spxUpdateCheckState, spxUpdatePending_actions as spxUpdatePendingActions, spxUpdatePending_effects as spxUpdatePendingEffects, spxUpdatePending_initial as spxUpdatePendingInitial, spxUpdatePending_reducer as spxUpdatePendingReducer, spxUpdatePending_state as spxUpdatePendingState, spxUpdateUrl };
|
|
501
|
+
export { SpxUpdatePageComponent, SpxUpdatePendingComponent, spxUpdateCheck_actions$1 as spxUpdateCheckActions, spxUpdateCheck_effects$1 as spxUpdateCheckEffects, spxUpdateCheck_initial$1 as spxUpdateCheckInitial, spxUpdateCheck_reducer$2 as spxUpdateCheckReducer, spxUpdateCheck_state$1 as spxUpdateCheckState, spxUpdateCheck_actions as spxUpdateCheckV2Actions, spxUpdateCheck_effects as spxUpdateCheckV2Effects, spxUpdateCheck_initial as spxUpdateCheckV2Initial, spxUpdateCheck_reducer$1 as spxUpdateCheckV2Reducer, spxUpdateCheck_state as spxUpdateCheckV2State, spxUpdatePending_actions as spxUpdatePendingActions, spxUpdatePending_effects as spxUpdatePendingEffects, spxUpdatePending_initial as spxUpdatePendingInitial, spxUpdatePending_reducer as spxUpdatePendingReducer, spxUpdatePending_state as spxUpdatePendingState, spxUpdateUrl };
|
|
356
502
|
//# sourceMappingURL=softpak-components-spx-update.mjs.map
|
|
@@ -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 standalone: true,\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 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 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 }\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, HostBinding, 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\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\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 @HostBinding('style') baseStyle?: SafeStyle;\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 if (showLiveUpdateReady) {\r\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: block;');\r\n } else {\r\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: none;');\r\n }\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 private sanitizer: DomSanitizer,\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","i2","actions.initialize","i1","Effects","actions.acceptUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-update.mjs","sources":["../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.html","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.html","../../../../projects/softpak/components/spx-update/spx-update-url.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.effects.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check-v2/spx-update-check.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check-v2/spx-update-check.effects.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check-v2/spx-update-check.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check-v2/spx-update-check.reducer.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.effects.ts","../../../../projects/softpak/components/spx-update/softpak-components-spx-update.ts"],"sourcesContent":["import { createAction, props, union } from '@ngrx/store';\n\nexport const anUpdateIsReady = createAction('[SPX / Update Check] An update is ready', props<Record<string, unknown>>());\nexport const clearError = createAction('[SPX / Update Check] Clear error', props<Record<string, unknown>>());\nexport const checkFailed = createAction('[SPX / Update Check] Error happened', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const initialize = createAction('[SPX / Update Check] Initialize', props<Record<string, unknown>>());\nexport const noUpdateWasFound = createAction('[SPX / Update Check] No update was found', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const notAvailableOnWeb = createAction('[SPX / Update Check] Not available on web', props<Record<string, unknown>>());\nexport const runCheck = createAction('[SPX / Update Check] Run', props<{ forceWaitForUpdate?: boolean; }>());\n\nconst all = union({\n anUpdateIsReady,\n clearError,\n checkFailed,\n initialize,\n noUpdateWasFound,\n notAvailableOnWeb,\n runCheck,\n});\n\nexport type Actions = typeof all;\n","import { StateI } from \"./spx-update-check.state\";\n\nexport const initialState: StateI = {\n forceWaitForUpdate: false,\n lastCheck: null,\n showError: false,\n};\n","\nimport * as actions from './spx-update-check.actions';\nimport { createFeature, createReducer, on } from '@ngrx/store';\nimport { StateI } from './spx-update-check.state';\nimport { initialState } from './spx-update-check.initial';\nimport { DateTime } from 'luxon';\n \nexport default createFeature({\n name: 'spxUpdateCheck',\n reducer: createReducer(\n initialState,\n on(actions.anUpdateIsReady, (state: StateI): StateI => {\n return {\n ...state,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(actions.clearError, (state: StateI): StateI => {\n return {\n ...state,\n showError: false,\n };\n }),\n on(actions.checkFailed, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n showError: true,\n };\n }),\n on(actions.noUpdateWasFound, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(actions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate\n };\n }),\n on(actions.notAvailableOnWeb, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false\n };\n }),\n ),\n});\n","import { Component } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { runCheck } from './store/spx-update-check/spx-update-check.actions';\nimport { default as updCheck } from './store/spx-update-check/spx-update-check.reducer';\nimport { unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { spxTextCheckingForUpdates, spxTextOneMomentPlease } from '@softpak/components/spx-translate';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'spx-update-page',\n imports: [\n IonContent,\n IonHeader,\n IonToolbar,\n IonTitle,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextOneMomentPlease = spxTextOneMomentPlease;\n\n private subscriptions: {\n updCheck?: Subscription;\n } = {};\n\n ngOnInit() {\n this.appStore.dispatch(runCheck({ forceWaitForUpdate: true }));\n this.subscriptions.updCheck = this.appStore.select(updCheck.selectForceWaitForUpdate).subscribe(forceWaitForUpdate => {\n if (forceWaitForUpdate === false) {\n if (this.activatedRoute.snapshot.data['url'] === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n }\n this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);\n }\n });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navController: NavController,\n ) {\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n {{ spxTextOneMomentPlease | translate | capitalize }}...\n</ion-content>\n","import { createAction, props, union } from '@ngrx/store';\n\nexport const acceptUpdate = createAction('[SPX / Update Pending] Accept update', props<Record<string, unknown>>());\nexport const hasBeenDownloaded = createAction('[SPX / Update Pending] Has been downloaded', props<Record<string, unknown>>());\nexport const hasBeenInstalled = createAction('[SPX / Update Pending] Has been installed', props<Record<string, unknown>>());\nexport const postpone = createAction('[SPX / Update Pending] Postpone', props<Record<string, unknown>>());\nexport const postponeExpired = createAction('[SPX / Update Pending] Postpone expired', props<Record<string, unknown>>());\n\nconst all = union({\n acceptUpdate,\n hasBeenDownloaded,\n hasBeenInstalled,\n postpone,\n postponeExpired,\n});\n\nexport type Actions = typeof all;\n","import { StateI } from \"./spx-update-pending.state\";\n\nexport const initialState: StateI = {\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n};\n","\nimport * as actions from './spx-update-pending.actions';\nimport { createReducer, on, createFeature } from '@ngrx/store';\nimport { StateI } from './spx-update-pending.state';\nimport { initialState } from './spx-update-pending.initial';\n\nexport default createFeature({\n name: 'spxUpdatePending',\n reducer: createReducer(\n initialState,\n on(actions.hasBeenDownloaded, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n updateIsDownloadedAndPending: true,\n };\n }),\n on(actions.hasBeenInstalled, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n };\n }),\n on(actions.postpone, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n };\n }),\n on(actions.postponeExpired, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n };\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, HostBinding, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { acceptUpdate } from './store/spx-update-pending/spx-update-pending.actions';\nimport { default as updPending } from './store/spx-update-pending/spx-update-pending.reducer';\nimport { SpxSeverityEnum, unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextUpdate, spxTextUpdateAvailable } from '@softpak/components/spx-translate';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'spx-update-pending',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-pending.component.html`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxUpdatePendingComponent {\n @HostBinding('style') baseStyle?: SafeStyle;\n availableStoreVersion = signal<undefined | string>(undefined);\n currentStoreVersion = signal<undefined | string>(undefined);\n severitySuccess = SpxSeverityEnum.success;\n showLiveUpdateReady = signal<boolean>(false);\n spxTextUpdate = spxTextUpdate;\n spxTextReadyToBeInstalled = spxTextReadyToBeInstalled;\n spxTextPatchAvailable = spxTextPatchAvailable;\n spxTextUpdateAvailable = spxTextUpdateAvailable;\n spxTextOpenAppStore = spxTextOpenAppStore;\n\n private subscriptions: {\n updPending?: Subscription;\n } = {};\n\n ngOnInit() {\n this.subscriptions.updPending = this.appStore.select(updPending.selectShowLiveUpdateReady).subscribe(showLiveUpdateReady => {\n this.showLiveUpdateReady.set(showLiveUpdateReady);\n if (showLiveUpdateReady) {\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: block;');\n } else {\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle('display: none;');\n }\n });\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscriptions);\n }\n\n constructor(\n private readonly appStore: Store,\n private sanitizer: DomSanitizer,\n ) {}\n\n onUpdate(): void {\n this.appStore.dispatch(acceptUpdate({}));\n }\n}\n","@if (showLiveUpdateReady()) {\n<div class=\"bg-zinc-700 text-black p-3 rounded flex gap-3 mx-auto max-w-lg items-center\">\n <div class=\"grow\">\n <p\n class=\"text-xl font-extrabold bg-clip-text text-transparent bg-[linear-gradient(to_right,theme(colors.green.300),theme(colors.green.100),theme(colors.sky.400),theme(colors.yellow.200),theme(colors.sky.400),theme(colors.green.100),theme(colors.green.300))] bg-[length:200%_auto] animate-gradient\">\n {{ spxTextPatchAvailable | translate | capitalize }}</p>\n <div class=\"text-sm text-zinc-300\">{{ spxTextReadyToBeInstalled | translate | capitalize }}</div>\n </div>\n <spx-button [spxSeverity]=\"severitySuccess\" (spxClick)=\"onUpdate()\">{{ spxTextUpdate | translate | capitalize\n }}</spx-button>\n</div>\n}","export const spxUpdateUrl = '';","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError, delay, exhaustMap, map, mergeMap, tap } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport * as actions from './spx-update-check.actions';\nimport { getConfig, reload, setConfig, sync, SyncResult } from '@capacitor/live-updates';\nimport { captureMessage } from '@sentry/angular';\nimport { Capacitor } from '@capacitor/core';\nimport { App } from '@capacitor/app';\nimport { hasBeenDownloaded } from '../spx-update-pending/spx-update-pending.actions';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\n\n@Injectable()\nexport class Effects {\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.initialize),\n delay(120000),\n mergeMap(() => [\n actions.runCheck({}),\n ]))\n );\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.runCheck),\n tap(async () => {\n if (Capacitor.getPlatform() !== 'web') {\n // Migrate from e.g. 1.2.x to 1.3.x\n const binaryInfo = await App.getInfo()\n const binaryVersionGroup = binaryInfo.version.substring(0, 3);\n const config = await getConfig();\n const channelVersionGroup = config.channel!.split('-')[1].substring(0, 3); // e.g. \"1.4\"\n let channelType = config.channel!.split('-')[0];\n // Temp fix\n if (channelType === 'null') {\n channelType = 'Production';\n }\n // End temp fix\n if (channelType === null || binaryVersionGroup != channelVersionGroup) {\n await setConfig({\n channel: `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`\n });\n }\n // End migrate from e.g. 1.2.x to 1.3.x\n }\n }),\n exhaustMap((action) => from(sync()).pipe(\n map((syncResult: SyncResult) => {\n if (syncResult.activeApplicationPathChanged) {\n if (action.forceWaitForUpdate) {\n reload();\n }\n return actions.anUpdateIsReady({});\n } else {\n return actions.noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate });\n }\n }),\n catchError((err) => {\n if (err.message !== 'Not implemented for web only') {\n captureMessage(\"[UPD] Handled: \" + err.message);\n }\n return err.message === 'Not implemented for web only' ? of(actions.notAvailableOnWeb({})) : of(actions.checkFailed({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }))\n })\n )),\n ));\n\n constructor(\n private readonly actions$: Actions,\n ) { }\n\n whenAndUpdateIsReady$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.anUpdateIsReady),\n mergeMap(() => [\n hasBeenDownloaded({}),\n ]))\n );\n\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.checkFailed),\n delay(30000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n actions.runCheck({}),\n ]))\n );\n\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(actions.noUpdateWasFound),\n delay(120000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n actions.runCheck({}),\n ]))\n );\n}\n\n","import { createAction, props, union } from '@ngrx/store';\n\nexport const anUpdateIsReady = createAction('[SPX / Update Check V2] An update is ready', props<Record<string, unknown>>());\nexport const clearError = createAction('[SPX / Update Check V2] Clear error', props<Record<string, unknown>>());\nexport const checkFailed = createAction('[SPX / Update Check V2] Error happened', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const initialize = createAction('[SPX / Update Check V2] Initialize', props<Record<string, unknown>>());\nexport const noUpdateWasFound = createAction('[SPX / Update Check V2] No update was found', props<{ startUpdateAgainAfterTimeout?: boolean }>());\nexport const notAvailableOnWeb = createAction('[SPX / Update Check V2] Not available on web', props<Record<string, unknown>>());\nexport const runCheck = createAction('[SPX / Update Check V2] 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 { 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 { 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';\nimport { LiveUpdate } from '@capawesome/capacitor-live-update';\nimport { anUpdateIsReady, checkFailed, initialize, notAvailableOnWeb, noUpdateWasFound, runCheck } from './spx-update-check.actions';\n\n@Injectable()\nexport class Effects {\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(initialize),\n delay(120000),\n mergeMap(() => [\n runCheck({}),\n ]))\n );\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(runCheck),\n tap(async () => {\n if (Capacitor.getPlatform() !== 'web') {\n // Migrate from e.g. 1.2.x to 1.3.x\n const binaryVersionGroup = (await App.getInfo()).version.split('.').slice(0, 1).join('.'); // version without last digit, e.g. \"1.4\",\n const channel = await LiveUpdate.getChannel();\n const channelVersionGroup = channel.channel!.split('-')[1].split('.').slice(0, 1).join('.'); // version without last digit, e.g. \"1.4\",\n let channelType = channel.channel!.split('-')[0];\n\n if (channelType === null || binaryVersionGroup != channelVersionGroup) {\n await LiveUpdate.setChannel({\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(LiveUpdate.sync()).pipe(\n map((syncResult) => {\n if (syncResult.nextBundleId) {\n if (action.forceWaitForUpdate) {\n LiveUpdate.reload();\n }\n return anUpdateIsReady({});\n } else {\n return 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(notAvailableOnWeb({})) : of(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(anUpdateIsReady),\n mergeMap(() => [\n hasBeenDownloaded({}),\n ]))\n );\n\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(checkFailed),\n delay(30000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n runCheck({}),\n ]))\n );\n\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(noUpdateWasFound),\n delay(120000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n runCheck({}),\n ]))\n );\n}\n\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 { 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":["anUpdateIsReady","clearError","checkFailed","initialize","noUpdateWasFound","notAvailableOnWeb","runCheck","all","initialState","actions.anUpdateIsReady","actions.clearError","actions.checkFailed","actions.noUpdateWasFound","actions.runCheck","actions.notAvailableOnWeb","actions.hasBeenDownloaded","actions.hasBeenInstalled","actions.postpone","actions.postponeExpired","i2","actions.initialize","i1","Effects","actions.acceptUpdate"],"mappings":"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"}
|