@softpak/components 21.2.5 → 21.2.7

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.
@@ -172,6 +172,18 @@ class Effects {
172
172
  }
173
173
  return from(App.getInfo()).pipe(switchMap((binaryInfo) => {
174
174
  const liveUpdateChannel = `${action.channelType}-${getBinaryVersionGroup(binaryInfo.version)}.x`;
175
+ const currentLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);
176
+ // Channel blijft hetzelfde, dus nogmaals een update-check is niet nodig
177
+ if (currentLiveUpdateChannel === liveUpdateChannel) {
178
+ return of(spxChannelActions.chooseSucceeded({
179
+ channel: action.channel,
180
+ channelType: action.channelType,
181
+ shouldRunUpdateCheck: false,
182
+ }), spxToasterActions.createSuccess({
183
+ autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,
184
+ messageText: action.channel?.brand,
185
+ }));
186
+ }
175
187
  return from(LiveUpdate.setChannel({
176
188
  channel: liveUpdateChannel
177
189
  })).pipe(mergeMap(() => {
@@ -179,6 +191,7 @@ class Effects {
179
191
  return of(spxChannelActions.chooseSucceeded({
180
192
  channel: action.channel,
181
193
  channelType: action.channelType,
194
+ shouldRunUpdateCheck: true,
182
195
  }), spxToasterActions.createSuccess({
183
196
  autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,
184
197
  messageText: action.channel?.brand,
@@ -210,9 +223,9 @@ class Effects {
210
223
  }));
211
224
  }));
212
225
  })), { dispatch: true });
213
- this.onChooseSucceededNavigate$ = createEffect(() => this.actions$.pipe(ofType(spxChannelActions.chooseSucceeded), tap(() => {
226
+ this.onChooseSucceededNavigate$ = createEffect(() => this.actions$.pipe(ofType(spxChannelActions.chooseSucceeded), tap((action) => {
214
227
  if (Capacitor.getPlatform() !== 'web') {
215
- this.router.navigate([spxUpdateUrl]);
228
+ this.router.navigate([action.shouldRunUpdateCheck ? spxUpdateUrl : 'tabs/hme']);
216
229
  }
217
230
  })), { dispatch: false });
218
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-channel-selection.mjs","sources":["../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.actions.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.reducer.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.html","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-guard.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.effects.ts","../../../../projects/softpak/components/spx-channel-selection/softpak-components-spx-channel-selection.ts"],"sourcesContent":["import { SpxAppChannelI, SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { createActionGroup, props } from '@ngrx/store';\n\nexport const spxChannelActions = createActionGroup({\n source: 'SpxChannel',\n events: {\n Choose: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseFailed: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseSucceeded: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n Initialize: props<{ channels: SpxAppChannelI[]; }>(),\n },\n});\n","import { SpxAppChannelI, SpxAppChannelTypeEnum, SpxChannelTypeI } from '@softpak/components/spx-app-configuration';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { createFeature, createReducer, createSelector, on } from '@ngrx/store';\n\nimport { Capacitor } from '@capacitor/core';\nimport { spxChannelActions } from './spx-channel.actions';\n\nexport const initialState: StateI = {\n previousChannel: null,\n channel: null,\n channelType: null,\n channels: [],\n};\n\nexport interface StateI {\n previousChannel: SpxAppChannelI | null;\n channel: SpxAppChannelI | null;\n channels: SpxAppChannelI[];\n channelType: SpxChannelTypeI | null;\n}\n\nconst determineActiveChannel = (channels: SpxAppChannelI[]): SpxAppChannelI | null => {\n if (SpxStorage.getSetting(SpxStorageKeyEnum.brand) && SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n const channelResult = channels.find(channel => channel.brand === SpxStorage.getSetting(SpxStorageKeyEnum.brand) && channel.channelTypes.some((e: SpxChannelTypeI) => e.name === SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum));\n if (channelResult) {\n return channelResult;\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.brand);\n return null;\n }\n }\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n }\n return null;\n }\n}\n\nexport default createFeature({\n name: 'spxChannel',\n extraSelectors: ({ selectChannel }) => ({\n selectCompanyName: createSelector(selectChannel, (channel) => channel?.brand),\n }),\n reducer: createReducer(\n initialState,\n on(spxChannelActions.chooseSucceeded, (state, { channel, channelType }): StateI => {\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand, channel?.brand);\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType, channelType);\n return {\n ...state,\n previousChannel: state.channel,\n channel,\n channelType: { name: channelType },\n };\n }),\n on(spxChannelActions.initialize, (state, { channels }): StateI => {\n\n let channelType: SpxChannelTypeI | null = null;\n\n if (SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n channelType = { name: SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum };\n }\n else {\n channelType = { name: Capacitor.getPlatform() === 'web' ? SpxAppChannelTypeEnum.webLive : SpxAppChannelTypeEnum.production }; // Default to production if no type is set\n }\n\n return {\n ...state,\n channel: determineActiveChannel(channels),\n channels: channels.slice().sort((a, b) => a.brand.localeCompare(b.brand)),\n channelType: channelType,\n }\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { Capacitor } from '@capacitor/core';\nimport { NavController } from '@ionic/angular/standalone';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { Store } from '@ngrx/store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { map } from 'rxjs';\nimport spxChannelReducer from '../../store/spx-channel.reducer';\nimport { spxTextChange } from '@softpak/components/spx-translate';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport const spxChannelSelectionUrl = 'wlc';\n\n@Component({\n selector: 'spx-channel-indicator',\n templateUrl: './spx-channel-indicator.component.html',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxChannelIndicatorComponent {\n private readonly navController = inject(NavController);\n private readonly store = inject(Store);\n protected readonly channel = this.store.selectSignal(spxChannelReducer.selectChannel);\n protected readonly channelType = toSignal(this.store.select(spxChannelReducer.selectChannelType).pipe(\n map(channelType => channelType?.name)\n ));\n protected readonly spxTextChange = spxTextChange;\n\n protected onChange() {\n this.navController.navigateRoot([spxChannelSelectionUrl]);\n }\n\n protected canShowChannelType() {\n return Capacitor.getPlatform() !== 'web';\n }\n}\n","<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType() && channelType() !== 'Production') {\n <div class=\"text-base text-gray-600\">{{ channelType() }}</div>\n }\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ spxTextChange | translate | capitalize }}</spx-button>\n</div>","import { Router } from '@angular/router';\nimport { inject, Injectable } from '@angular/core';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelSelectionUrl } from './spx-channel-indicator/spx-channel-indicator.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpxChannelGuard {\n\n private readonly router = inject(Router);\n\n canActivate(): boolean {\n if (\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand) ||\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType)\n ) {\n this.router.navigate([spxChannelSelectionUrl]);\n return false;\n }\n return true;\n }\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Injectable, inject } from '@angular/core';\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { LiveUpdate } from \"@capawesome/capacitor-live-update\";\nimport { Router } from '@angular/router';\nimport { captureMessage } from '@sentry/angular';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelActions } from './spx-channel.actions';\nimport { spxUpdateUrl } from '@softpak/components/spx-update';\nimport { TranslateService } from '@ngx-translate/core';\nimport { spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason } from '@softpak/components/spx-translate';\nimport { from, of } from 'rxjs';\nimport { catchError, mergeMap, switchMap, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly router = inject(Router);\n private readonly translateService = inject(TranslateService);\n\n onChoose$ =\n createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.choose),\n switchMap((action) => {\n if (Capacitor.getPlatform() === 'web') {\n const channelType = action.channel.channelTypes.find(channelType => channelType.name === action.channelType)!;\n if (channelType.webUrl && !window.location.href.includes('http://localhost') && window.location.href.replace(channelType.webUrl!, '').replace(channelType.oldWebUrl!, '').split('/').at(0) !== '') {\n window.location.href = channelType.webUrl!;\n } else {\n this.router.navigate(['tabs/hme']);\n }\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n return from(App.getInfo()).pipe(\n switchMap((binaryInfo) => {\n const liveUpdateChannel = `${action.channelType}-${getBinaryVersionGroup(binaryInfo.version)}.x`;\n return from(LiveUpdate.setChannel({\n channel: liveUpdateChannel\n })).pipe(\n mergeMap(() => {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdateChannel, liveUpdateChannel);\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel setChannel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n ), { dispatch: true });\n\n onChooseSucceededNavigate$ = createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.chooseSucceeded),\n tap(() => {\n if (Capacitor.getPlatform() !== 'web') {\n this.router.navigate([spxUpdateUrl]);\n }\n }),\n ), { dispatch: false });\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["spxChannelReducer"],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-channel-selection.mjs","sources":["../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.actions.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.reducer.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.html","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-guard.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.effects.ts","../../../../projects/softpak/components/spx-channel-selection/softpak-components-spx-channel-selection.ts"],"sourcesContent":["import { SpxAppChannelI, SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { createActionGroup, props } from '@ngrx/store';\n\nexport const spxChannelActions = createActionGroup({\n source: 'SpxChannel',\n events: {\n Choose: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseFailed: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseSucceeded: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; shouldRunUpdateCheck?: boolean; }>(),\n Initialize: props<{ channels: SpxAppChannelI[]; }>(),\n },\n});\n","import { SpxAppChannelI, SpxAppChannelTypeEnum, SpxChannelTypeI } from '@softpak/components/spx-app-configuration';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { createFeature, createReducer, createSelector, on } from '@ngrx/store';\n\nimport { Capacitor } from '@capacitor/core';\nimport { spxChannelActions } from './spx-channel.actions';\n\nexport const initialState: StateI = {\n previousChannel: null,\n channel: null,\n channelType: null,\n channels: [],\n};\n\nexport interface StateI {\n previousChannel: SpxAppChannelI | null;\n channel: SpxAppChannelI | null;\n channels: SpxAppChannelI[];\n channelType: SpxChannelTypeI | null;\n}\n\nconst determineActiveChannel = (channels: SpxAppChannelI[]): SpxAppChannelI | null => {\n if (SpxStorage.getSetting(SpxStorageKeyEnum.brand) && SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n const channelResult = channels.find(channel => channel.brand === SpxStorage.getSetting(SpxStorageKeyEnum.brand) && channel.channelTypes.some((e: SpxChannelTypeI) => e.name === SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum));\n if (channelResult) {\n return channelResult;\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.brand);\n return null;\n }\n }\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n }\n return null;\n }\n}\n\nexport default createFeature({\n name: 'spxChannel',\n extraSelectors: ({ selectChannel }) => ({\n selectCompanyName: createSelector(selectChannel, (channel) => channel?.brand),\n }),\n reducer: createReducer(\n initialState,\n on(spxChannelActions.chooseSucceeded, (state, { channel, channelType }): StateI => {\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand, channel?.brand);\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType, channelType);\n return {\n ...state,\n previousChannel: state.channel,\n channel,\n channelType: { name: channelType },\n };\n }),\n on(spxChannelActions.initialize, (state, { channels }): StateI => {\n\n let channelType: SpxChannelTypeI | null = null;\n\n if (SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n channelType = { name: SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum };\n }\n else {\n channelType = { name: Capacitor.getPlatform() === 'web' ? SpxAppChannelTypeEnum.webLive : SpxAppChannelTypeEnum.production }; // Default to production if no type is set\n }\n\n return {\n ...state,\n channel: determineActiveChannel(channels),\n channels: channels.slice().sort((a, b) => a.brand.localeCompare(b.brand)),\n channelType: channelType,\n }\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { Capacitor } from '@capacitor/core';\nimport { NavController } from '@ionic/angular/standalone';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { Store } from '@ngrx/store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { map } from 'rxjs';\nimport spxChannelReducer from '../../store/spx-channel.reducer';\nimport { spxTextChange } from '@softpak/components/spx-translate';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport const spxChannelSelectionUrl = 'wlc';\n\n@Component({\n selector: 'spx-channel-indicator',\n templateUrl: './spx-channel-indicator.component.html',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxChannelIndicatorComponent {\n private readonly navController = inject(NavController);\n private readonly store = inject(Store);\n protected readonly channel = this.store.selectSignal(spxChannelReducer.selectChannel);\n protected readonly channelType = toSignal(this.store.select(spxChannelReducer.selectChannelType).pipe(\n map(channelType => channelType?.name)\n ));\n protected readonly spxTextChange = spxTextChange;\n\n protected onChange() {\n this.navController.navigateRoot([spxChannelSelectionUrl]);\n }\n\n protected canShowChannelType() {\n return Capacitor.getPlatform() !== 'web';\n }\n}\n","<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType() && channelType() !== 'Production') {\n <div class=\"text-base text-gray-600\">{{ channelType() }}</div>\n }\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ spxTextChange | translate | capitalize }}</spx-button>\n</div>","import { Router } from '@angular/router';\nimport { inject, Injectable } from '@angular/core';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelSelectionUrl } from './spx-channel-indicator/spx-channel-indicator.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpxChannelGuard {\n\n private readonly router = inject(Router);\n\n canActivate(): boolean {\n if (\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand) ||\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType)\n ) {\n this.router.navigate([spxChannelSelectionUrl]);\n return false;\n }\n return true;\n }\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Injectable, inject } from '@angular/core';\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { LiveUpdate } from \"@capawesome/capacitor-live-update\";\nimport { Router } from '@angular/router';\nimport { captureMessage } from '@sentry/angular';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelActions } from './spx-channel.actions';\nimport { spxUpdateUrl } from '@softpak/components/spx-update';\nimport { TranslateService } from '@ngx-translate/core';\nimport { spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason } from '@softpak/components/spx-translate';\nimport { from, of } from 'rxjs';\nimport { catchError, mergeMap, switchMap, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly router = inject(Router);\n private readonly translateService = inject(TranslateService);\n\n onChoose$ =\n createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.choose),\n switchMap((action) => {\n if (Capacitor.getPlatform() === 'web') {\n const channelType = action.channel.channelTypes.find(channelType => channelType.name === action.channelType)!;\n if (channelType.webUrl && !window.location.href.includes('http://localhost') && window.location.href.replace(channelType.webUrl!, '').replace(channelType.oldWebUrl!, '').split('/').at(0) !== '') {\n window.location.href = channelType.webUrl!;\n } else {\n this.router.navigate(['tabs/hme']);\n }\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n return from(App.getInfo()).pipe(\n switchMap((binaryInfo) => {\n const liveUpdateChannel = `${action.channelType}-${getBinaryVersionGroup(binaryInfo.version)}.x`;\n const currentLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n\n // Channel blijft hetzelfde, dus nogmaals een update-check is niet nodig\n if (currentLiveUpdateChannel === liveUpdateChannel) {\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n shouldRunUpdateCheck: false,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n\n return from(LiveUpdate.setChannel({\n channel: liveUpdateChannel\n })).pipe(\n mergeMap(() => {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdateChannel, liveUpdateChannel);\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n shouldRunUpdateCheck: true,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel setChannel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n ), { dispatch: true });\n\n onChooseSucceededNavigate$ = createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.chooseSucceeded),\n tap((action) => {\n if (Capacitor.getPlatform() !== 'web') {\n this.router.navigate([action.shouldRunUpdateCheck ? spxUpdateUrl : 'tabs/hme']);\n }\n }),\n ), { dispatch: false });\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["spxChannelReducer"],"mappings":"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"}
@@ -34,9 +34,11 @@ const spxTextUpdateErrorReason = "spxTextUpdateErrorReason";
34
34
  const spxTextUpdateAppVersion = "spxTextUpdateAppVersion";
35
35
  const spxTextUpdateBinaryVersionGroup = "spxTextUpdateBinaryVersionGroup";
36
36
  const spxTextUpdateBuildVersion = "spxTextUpdateBuildVersion";
37
+ const spxTextUpdateCurrentVersionNumber = "spxTextUpdateCurrentVersionNumber";
37
38
  const spxTextUpdateLastCheck = "spxTextUpdateLastCheck";
38
39
  const spxTextUpdateLiveBundle = "spxTextUpdateLiveBundle";
39
40
  const spxTextUpdateLiveChannel = "spxTextUpdateLiveChannel";
41
+ const spxTextUpdateNextVersionNumber = "spxTextUpdateNextVersionNumber";
40
42
  const spxTextUpdateStatus = "spxTextUpdateStatus";
41
43
  const spxTextUpdateStatusCompleted = "spxTextUpdateStatusCompleted";
42
44
  const spxTextUpdateStatusFailed = "spxTextUpdateStatusFailed";
@@ -96,8 +98,10 @@ const SpxTranslateEn = {
96
98
  [spxTextUpdateAppVersion]: "app version",
97
99
  [spxTextUpdateBuildVersion]: "build version",
98
100
  [spxTextUpdateBinaryVersionGroup]: "binary version group",
101
+ [spxTextUpdateCurrentVersionNumber]: "current live version number",
99
102
  [spxTextUpdateLiveChannel]: "live update channel",
100
103
  [spxTextUpdateLiveBundle]: "downloaded live bundle",
104
+ [spxTextUpdateNextVersionNumber]: "next live version number",
101
105
  };
102
106
 
103
107
  const SpxTranslateNl = {
@@ -148,13 +152,15 @@ const SpxTranslateNl = {
148
152
  [spxTextUpdateAppVersion]: "app-versie",
149
153
  [spxTextUpdateBuildVersion]: "build-versie",
150
154
  [spxTextUpdateBinaryVersionGroup]: "binaire versiegroep",
155
+ [spxTextUpdateCurrentVersionNumber]: "huidige live versionnumber",
151
156
  [spxTextUpdateLiveChannel]: "live update kanaal",
152
157
  [spxTextUpdateLiveBundle]: "gedownloade live bundle",
158
+ [spxTextUpdateNextVersionNumber]: "volgende live versionnumber",
153
159
  };
154
160
 
155
161
  /**
156
162
  * Generated bundle index. Do not edit.
157
163
  */
158
164
 
159
- export { SpxTranslateEn, SpxTranslateNl, spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextCompany, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextGoHome, spxTextInvalidCode, spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason, spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextPatternNotValid, spxTextReadyToBeInstalled, spxTextRequired, spxTextSelect, spxTextSelectYourCompany, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort, spxTextUpdate, spxTextUpdateAppVersion, spxTextUpdateAvailable, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateErrorReason, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateStatusCompleted, spxTextUpdateStatusFailed, spxTextUpdateStatusPreparing, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusUpToDate, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusWebNotAvailable, spxTextUpdateVersionInfo };
165
+ export { SpxTranslateEn, SpxTranslateNl, spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextCompany, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextGoHome, spxTextInvalidCode, spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason, spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextPatternNotValid, spxTextReadyToBeInstalled, spxTextRequired, spxTextSelect, spxTextSelectYourCompany, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort, spxTextUpdate, spxTextUpdateAppVersion, spxTextUpdateAvailable, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateCurrentVersionNumber, spxTextUpdateErrorReason, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateNextVersionNumber, spxTextUpdateStatus, spxTextUpdateStatusCompleted, spxTextUpdateStatusFailed, spxTextUpdateStatusPreparing, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusUpToDate, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusWebNotAvailable, spxTextUpdateVersionInfo };
160
166
  //# 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';\nexport const spxTextOneMomentPlease = 'spxTextOneMomentPlease';\nexport const spxTextPatchAvailable = 'spxTextPatchAvailable';\nexport const spxTextUpdateAvailable = 'spxTextUpdateAvailable';\nexport const spxTextReadyToBeInstalled = 'spxTextReadyToBeInstalled';\nexport const spxTextUpdate = 'spxTextUpdate';\nexport const spxTextOpenAppStore = 'spxTextOpenAppStore';\nexport const spxTextChannel = 'spxTextChannel';\nexport const spxTextCompany = 'spxTextCompany';\nexport const spxTextSelect = 'spxTextSelect';\nexport const spxTextSelectYourCompany = 'spxSelectYourCompany';\nexport const spxTextChange = 'spxTextChange';\nexport const spxText404PageNotFound = \"spxText404PageNotFound\";\nexport const spxTextPageNotFound = \"spxTextPageNotFound\";\nexport const spxTextPageNotFoundDescription = \"spxTextPageNotFoundDescription\";\nexport const spxTextGoHome = \"spxTextGoHome\";\nexport const spxTextTooLong = \"spxTextTooLong\";\nexport const spxTextTooShort = \"spxTextTooShort\";\nexport const spxTextTooHigh = \"spxTextTooHigh\";\nexport const spxTextTooLow = \"spxTextTooLow\";\nexport const spxTextPatternNotValid = \"spxTextPatternNotValid\";\nexport const spxTextRequired = \"spxTextRequired\";\nexport const spxTextChoosePast = \"spxTextChoosePast\";\nexport const spxTextChooseFuture = \"spxTextChooseFuture\";\nexport const spxTextChooseValidMonth = \"spxTextChooseValidMonth\";\nexport const spxTextDateMayNotBeFuture = \"spxTextDateMayNotBeFuture\";\nexport const spxTextDateMayNotBePast = \"spxTextDateMayNotBePast\";\nexport const spxTextInvalidCode = \"spxTextInvalidCode\";\nexport const spxTextLiveUpdateChannelSetFailed = \"spxTextLiveUpdateChannelSetFailed\";\nexport const spxTextLiveUpdateChannelSetFailedWithReason = \"spxTextLiveUpdateChannelSetFailedWithReason\";\nexport const spxTextLiveUpdateCheckFailed = \"spxTextLiveUpdateCheckFailed\";\nexport const spxTextLiveUpdateCheckFailedWithReason = \"spxTextLiveUpdateCheckFailedWithReason\";\nexport const spxTextUpdateErrorReason = \"spxTextUpdateErrorReason\";\nexport const spxTextUpdateAppVersion = \"spxTextUpdateAppVersion\";\nexport const spxTextUpdateBinaryVersionGroup = \"spxTextUpdateBinaryVersionGroup\";\nexport const spxTextUpdateBuildVersion = \"spxTextUpdateBuildVersion\";\nexport const spxTextUpdateLastCheck = \"spxTextUpdateLastCheck\";\nexport const spxTextUpdateLiveBundle = \"spxTextUpdateLiveBundle\";\nexport const spxTextUpdateLiveChannel = \"spxTextUpdateLiveChannel\";\nexport const spxTextUpdateStatus = \"spxTextUpdateStatus\";\nexport const spxTextUpdateStatusCompleted = \"spxTextUpdateStatusCompleted\";\nexport const spxTextUpdateStatusFailed = \"spxTextUpdateStatusFailed\";\nexport const spxTextUpdateStatusPreparing = \"spxTextUpdateStatusPreparing\";\nexport const spxTextUpdateStatusReloading = \"spxTextUpdateStatusReloading\";\nexport const spxTextUpdateStatusSyncing = \"spxTextUpdateStatusSyncing\";\nexport const spxTextUpdateStatusUpdateReady = \"spxTextUpdateStatusUpdateReady\";\nexport const spxTextUpdateStatusUpToDate = \"spxTextUpdateStatusUpToDate\";\nexport const spxTextUpdateStatusWebNotAvailable = \"spxTextUpdateStatusWebNotAvailable\";\nexport const spxTextUpdateVersionInfo = \"spxTextUpdateVersionInfo\";\n\nexport interface SpxTranslateI {\n [spxTextChange]: string;\n [spxTextCheckingForUpdates]: string;\n [spxTextOneMomentPlease]: string;\n [spxTextPatchAvailable]: string;\n [spxTextUpdateAvailable]: string;\n [spxTextReadyToBeInstalled]: string;\n [spxTextUpdate]: string;\n [spxTextOpenAppStore]: string;\n [spxTextChannel]: string;\n [spxTextCompany]: string;\n [spxTextSelect]: string;\n [spxTextSelectYourCompany]: string;\n [spxText404PageNotFound]: string;\n [spxTextPageNotFound]: string;\n [spxTextPageNotFoundDescription]: string;\n [spxTextGoHome]: string;\n [spxTextInvalidCode]: string;\n [spxTextTooLong]: string;\n [spxTextTooShort]: string;\n [spxTextTooHigh]: string;\n [spxTextTooLow]: string;\n [spxTextPatternNotValid]: string;\n [spxTextRequired]: string;\n [spxTextChoosePast]: string;\n [spxTextChooseFuture]: string;\n [spxTextChooseValidMonth]: string;\n [spxTextDateMayNotBeFuture]: string;\n [spxTextDateMayNotBePast]: string;\n [spxTextInvalidCode]: string;\n [spxTextLiveUpdateChannelSetFailed]: string;\n [spxTextLiveUpdateChannelSetFailedWithReason]: string;\n [spxTextLiveUpdateCheckFailed]: string;\n [spxTextLiveUpdateCheckFailedWithReason]: string;\n [spxTextUpdateErrorReason]: string;\n [spxTextUpdateAppVersion]: string;\n [spxTextUpdateBinaryVersionGroup]: string;\n [spxTextUpdateBuildVersion]: string;\n [spxTextUpdateLastCheck]: string;\n [spxTextUpdateLiveBundle]: string;\n [spxTextUpdateLiveChannel]: string;\n [spxTextUpdateStatus]: string;\n [spxTextUpdateStatusCompleted]: string;\n [spxTextUpdateStatusFailed]: string;\n [spxTextUpdateStatusPreparing]: string;\n [spxTextUpdateStatusReloading]: string;\n [spxTextUpdateStatusSyncing]: string;\n [spxTextUpdateStatusUpdateReady]: string;\n [spxTextUpdateStatusUpToDate]: string;\n [spxTextUpdateStatusWebNotAvailable]: string;\n [spxTextUpdateVersionInfo]: string;\n}\n","import {\n spxText404PageNotFound,\n spxTextChange,\n spxTextChannel,\n spxTextCheckingForUpdates,\n spxTextChooseFuture,\n spxTextChoosePast,\n spxTextChooseValidMonth,\n spxTextCompany,\n spxTextDateMayNotBeFuture,\n spxTextDateMayNotBePast,\n spxTextGoHome,\n spxTextInvalidCode,\n spxTextLiveUpdateCheckFailed,\n spxTextLiveUpdateCheckFailedWithReason,\n spxTextLiveUpdateChannelSetFailed,\n spxTextLiveUpdateChannelSetFailedWithReason,\n spxTextOneMomentPlease,\n spxTextOpenAppStore,\n spxTextPageNotFound,\n spxTextPageNotFoundDescription,\n spxTextPatchAvailable,\n spxTextPatternNotValid,\n spxTextReadyToBeInstalled,\n spxTextRequired,\n spxTextSelect,\n spxTextSelectYourCompany,\n spxTextTooHigh,\n spxTextTooLong,\n spxTextTooLow,\n spxTextTooShort,\n spxTextUpdate,\n spxTextUpdateAppVersion,\n spxTextUpdateAvailable,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateErrorReason,\n spxTextUpdateLastCheck,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusReloading,\n spxTextUpdateStatusSyncing,\n spxTextUpdateStatusUpdateReady,\n spxTextUpdateStatusUpToDate,\n spxTextUpdateStatusWebNotAvailable,\n spxTextUpdateVersionInfo,\n SpxTranslateI\n} from \"./spx-translate._const\";\n\nexport const SpxTranslateEn: SpxTranslateI = {\n [spxTextCheckingForUpdates]: 'checking for updates',\n [spxTextOneMomentPlease]: 'one moment please',\n [spxTextReadyToBeInstalled]: 'ready to be installed',\n [spxTextPatchAvailable]: 'patch available',\n [spxTextUpdateAvailable]: 'update available',\n [spxTextUpdate]: 'update',\n [spxTextOpenAppStore]: 'open app store',\n [spxTextChannel]: 'channel',\n [spxTextCompany]: 'company',\n [spxTextSelect]: 'select',\n [spxTextSelectYourCompany]: 'select your company',\n [spxTextChange]: 'change',\n [spxText404PageNotFound]: \"404 page not found\",\n [spxTextPageNotFound]: \"Page not found\",\n [spxTextPageNotFoundDescription]: \"Sorry, the page you’re looking for doesn’t exist or has been moved.\",\n [spxTextGoHome]: \"Go home\",\n [spxTextTooLong]: \"'{{fieldLabel}}' is too long (the maximum length is {{error}})\",\n [spxTextTooShort]: \"'{{fieldLabel}}' is too short (the minimum length is {{error}})\",\n [spxTextTooHigh]: \"The value of '{{fieldLabel}}' is too high, the maximum is {{error}}.\",\n [spxTextTooLow]: \"The value of '{{fieldLabel}}' is too low, the minimum is {{error}}.\",\n [spxTextPatternNotValid]: \"The pattern of '{{fieldLabel}}' is not valid.\",\n [spxTextRequired]: \"The field '{{fieldLabel}}' is required.\",\n [spxTextChoosePast]: \"Please choose a year between 1991 and the current year.\",\n [spxTextChooseFuture]: \"Please choose a year between the current year and 2050.\",\n [spxTextChooseValidMonth]: \"Please choose a valid month (a value between 01 and 12).\",\n [spxTextDateMayNotBeFuture]: \"The selected date may not be in the future.\",\n [spxTextDateMayNotBePast]: \"The selected date may not be in the past.\",\n [spxTextInvalidCode]: \"The {{codeName}} code {{codeCode}} does not exist.\",\n [spxTextLiveUpdateChannelSetFailed]: \"Channel selected, but live update channel could not be set.\",\n [spxTextLiveUpdateChannelSetFailedWithReason]: \"Channel selected, but live update channel could not be set: {{reason}}.\",\n [spxTextLiveUpdateCheckFailed]: \"Unable to check for updates right now. Please try again later.\",\n [spxTextLiveUpdateCheckFailedWithReason]: \"Unable to check for updates: {{reason}}.\",\n [spxTextUpdateErrorReason]: \"error details\",\n [spxTextUpdateLastCheck]: \"last successful check\",\n [spxTextUpdateStatus]: \"status\",\n [spxTextUpdateStatusPreparing]: \"preparing update check\",\n [spxTextUpdateStatusSyncing]: \"synchronizing update information\",\n [spxTextUpdateStatusReloading]: \"reloading app with downloaded update\",\n [spxTextUpdateStatusCompleted]: \"update check completed\",\n [spxTextUpdateStatusUpToDate]: \"app is up to date\",\n [spxTextUpdateStatusUpdateReady]: \"update downloaded\",\n [spxTextUpdateStatusFailed]: \"update check failed\",\n [spxTextUpdateStatusWebNotAvailable]: \"live update is not available on web\",\n [spxTextUpdateVersionInfo]: \"version information\",\n [spxTextUpdateAppVersion]: \"app version\",\n [spxTextUpdateBuildVersion]: \"build version\",\n [spxTextUpdateBinaryVersionGroup]: \"binary version group\",\n [spxTextUpdateLiveChannel]: \"live update channel\",\n [spxTextUpdateLiveBundle]: \"downloaded live bundle\",\n}\n","import {\n spxText404PageNotFound,\n spxTextChange,\n spxTextChannel,\n spxTextCheckingForUpdates,\n spxTextChooseFuture,\n spxTextChoosePast,\n spxTextChooseValidMonth,\n spxTextCompany,\n spxTextDateMayNotBeFuture,\n spxTextDateMayNotBePast,\n spxTextGoHome,\n spxTextInvalidCode,\n spxTextLiveUpdateCheckFailed,\n spxTextLiveUpdateCheckFailedWithReason,\n spxTextLiveUpdateChannelSetFailed,\n spxTextLiveUpdateChannelSetFailedWithReason,\n spxTextOneMomentPlease,\n spxTextOpenAppStore,\n spxTextPageNotFound,\n spxTextPageNotFoundDescription,\n spxTextPatchAvailable,\n spxTextPatternNotValid,\n spxTextReadyToBeInstalled,\n spxTextRequired,\n spxTextSelect,\n spxTextSelectYourCompany,\n spxTextTooHigh,\n spxTextTooLong,\n spxTextTooLow,\n spxTextTooShort,\n spxTextUpdate,\n spxTextUpdateAppVersion,\n spxTextUpdateAvailable,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateErrorReason,\n spxTextUpdateLastCheck,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusReloading,\n spxTextUpdateStatusSyncing,\n spxTextUpdateStatusUpdateReady,\n spxTextUpdateStatusUpToDate,\n spxTextUpdateStatusWebNotAvailable,\n spxTextUpdateVersionInfo,\n SpxTranslateI\n} from \"./spx-translate._const\";\n\nexport const SpxTranslateNl: SpxTranslateI = {\n [spxTextCheckingForUpdates]: 'controleren op updates',\n [spxTextOneMomentPlease]: 'een moment geduld alstublieft',\n [spxTextReadyToBeInstalled]: 'ready to be installed',\n [spxTextPatchAvailable]: 'patch available',\n [spxTextUpdateAvailable]: 'update available',\n [spxTextUpdate]: 'updaten',\n [spxTextOpenAppStore]: 'open app store',\n [spxTextChannel]: 'kanaal',\n [spxTextCompany]: 'bedrijf',\n [spxTextSelect]: 'selecteer',\n [spxTextSelectYourCompany]: 'selecteer uw bedrijf',\n [spxTextChange]: 'wissel',\n [spxText404PageNotFound]: \"404 pagina niet gevonden\",\n [spxTextPageNotFound]: \"Pagina niet gevonden\",\n [spxTextPageNotFoundDescription]: \"Sorry, de pagina die u zoekt bestaat niet of is verplaatst.\",\n [spxTextGoHome]: \"Ga naar het hoofdscherm\",\n [spxTextInvalidCode]: \"De {{codeName}} code {{codeCode}} is ongeldig.\",\n [spxTextTooLong]: \"De waarde van '{{fieldLabel}}' is te lang (de maximale lengte is {{error}}).\",\n [spxTextTooShort]: \"De waarde van '{{fieldLabel}}' is te kort (de minimale lengte is {{error}}).\",\n [spxTextTooHigh]: \"De waarde van '{{fieldLabel}}' is te hoog (de maximale waarde is {{error}}).\",\n [spxTextTooLow]: \"De waarde van '{{fieldLabel}}' is te laag (de minimale waarde is {{error}}).\",\n [spxTextPatternNotValid]: \"Het patroon van '{{fieldLabel}}' is ongeldig.\",\n [spxTextRequired]: \"Het veld '{{fieldLabel}}' is verplicht.\",\n [spxTextChoosePast]: \"Kies een jaar tussen 1991 en het huidige jaar.\",\n [spxTextChooseFuture]: \"Kies een jaar tussen het huidige jaar en 2050.\",\n [spxTextChooseValidMonth]: \"Kies een geldige maand (een waarde tussen 01 en 12).\",\n [spxTextDateMayNotBeFuture]: \"De geselecteerde datum mag niet in de toekomst liggen.\",\n [spxTextDateMayNotBePast]: \"De geselecteerde datum mag niet in het verleden liggen.\",\n [spxTextLiveUpdateChannelSetFailed]: \"Kanaal geselecteerd, maar het live update kanaal kon niet worden ingesteld.\",\n [spxTextLiveUpdateChannelSetFailedWithReason]: \"Kanaal geselecteerd, maar het live update kanaal kon niet worden ingesteld: {{reason}}.\",\n [spxTextLiveUpdateCheckFailed]: \"Kan nu niet op updates controleren. Probeer het later opnieuw.\",\n [spxTextLiveUpdateCheckFailedWithReason]: \"Kan nu niet op updates controleren: {{reason}}.\",\n [spxTextUpdateErrorReason]: \"foutdetails\",\n [spxTextUpdateLastCheck]: \"laatste succesvolle controle\",\n [spxTextUpdateStatus]: \"status\",\n [spxTextUpdateStatusPreparing]: \"updatecontrole voorbereiden\",\n [spxTextUpdateStatusSyncing]: \"update-informatie synchroniseren\",\n [spxTextUpdateStatusReloading]: \"app herladen met gedownloade update\",\n [spxTextUpdateStatusCompleted]: \"updatecontrole voltooid\",\n [spxTextUpdateStatusUpToDate]: \"app is up-to-date\",\n [spxTextUpdateStatusUpdateReady]: \"update gedownload\",\n [spxTextUpdateStatusFailed]: \"updatecontrole mislukt\",\n [spxTextUpdateStatusWebNotAvailable]: \"live update is niet beschikbaar op web\",\n [spxTextUpdateVersionInfo]: \"versie-informatie\",\n [spxTextUpdateAppVersion]: \"app-versie\",\n [spxTextUpdateBuildVersion]: \"build-versie\",\n [spxTextUpdateBinaryVersionGroup]: \"binaire versiegroep\",\n [spxTextUpdateLiveChannel]: \"live update kanaal\",\n [spxTextUpdateLiveBundle]: \"gedownloade live bundle\",\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-translate.mjs","sources":["../../../../projects/softpak/components/spx-translate/spx-translate._const.ts","../../../../projects/softpak/components/spx-translate/spx-translate.en.ts","../../../../projects/softpak/components/spx-translate/spx-translate.nl.ts","../../../../projects/softpak/components/spx-translate/softpak-components-spx-translate.ts"],"sourcesContent":["export const spxTextCheckingForUpdates = 'spxTextCheckingForUpdates';\nexport const spxTextOneMomentPlease = 'spxTextOneMomentPlease';\nexport const spxTextPatchAvailable = 'spxTextPatchAvailable';\nexport const spxTextUpdateAvailable = 'spxTextUpdateAvailable';\nexport const spxTextReadyToBeInstalled = 'spxTextReadyToBeInstalled';\nexport const spxTextUpdate = 'spxTextUpdate';\nexport const spxTextOpenAppStore = 'spxTextOpenAppStore';\nexport const spxTextChannel = 'spxTextChannel';\nexport const spxTextCompany = 'spxTextCompany';\nexport const spxTextSelect = 'spxTextSelect';\nexport const spxTextSelectYourCompany = 'spxSelectYourCompany';\nexport const spxTextChange = 'spxTextChange';\nexport const spxText404PageNotFound = \"spxText404PageNotFound\";\nexport const spxTextPageNotFound = \"spxTextPageNotFound\";\nexport const spxTextPageNotFoundDescription = \"spxTextPageNotFoundDescription\";\nexport const spxTextGoHome = \"spxTextGoHome\";\nexport const spxTextTooLong = \"spxTextTooLong\";\nexport const spxTextTooShort = \"spxTextTooShort\";\nexport const spxTextTooHigh = \"spxTextTooHigh\";\nexport const spxTextTooLow = \"spxTextTooLow\";\nexport const spxTextPatternNotValid = \"spxTextPatternNotValid\";\nexport const spxTextRequired = \"spxTextRequired\";\nexport const spxTextChoosePast = \"spxTextChoosePast\";\nexport const spxTextChooseFuture = \"spxTextChooseFuture\";\nexport const spxTextChooseValidMonth = \"spxTextChooseValidMonth\";\nexport const spxTextDateMayNotBeFuture = \"spxTextDateMayNotBeFuture\";\nexport const spxTextDateMayNotBePast = \"spxTextDateMayNotBePast\";\nexport const spxTextInvalidCode = \"spxTextInvalidCode\";\nexport const spxTextLiveUpdateChannelSetFailed = \"spxTextLiveUpdateChannelSetFailed\";\nexport const spxTextLiveUpdateChannelSetFailedWithReason = \"spxTextLiveUpdateChannelSetFailedWithReason\";\nexport const spxTextLiveUpdateCheckFailed = \"spxTextLiveUpdateCheckFailed\";\nexport const spxTextLiveUpdateCheckFailedWithReason = \"spxTextLiveUpdateCheckFailedWithReason\";\nexport const spxTextUpdateErrorReason = \"spxTextUpdateErrorReason\";\nexport const spxTextUpdateAppVersion = \"spxTextUpdateAppVersion\";\nexport const spxTextUpdateBinaryVersionGroup = \"spxTextUpdateBinaryVersionGroup\";\nexport const spxTextUpdateBuildVersion = \"spxTextUpdateBuildVersion\";\nexport const spxTextUpdateCurrentVersionNumber = \"spxTextUpdateCurrentVersionNumber\";\nexport const spxTextUpdateLastCheck = \"spxTextUpdateLastCheck\";\nexport const spxTextUpdateLiveBundle = \"spxTextUpdateLiveBundle\";\nexport const spxTextUpdateLiveChannel = \"spxTextUpdateLiveChannel\";\nexport const spxTextUpdateNextVersionNumber = \"spxTextUpdateNextVersionNumber\";\nexport const spxTextUpdateStatus = \"spxTextUpdateStatus\";\nexport const spxTextUpdateStatusCompleted = \"spxTextUpdateStatusCompleted\";\nexport const spxTextUpdateStatusFailed = \"spxTextUpdateStatusFailed\";\nexport const spxTextUpdateStatusPreparing = \"spxTextUpdateStatusPreparing\";\nexport const spxTextUpdateStatusReloading = \"spxTextUpdateStatusReloading\";\nexport const spxTextUpdateStatusSyncing = \"spxTextUpdateStatusSyncing\";\nexport const spxTextUpdateStatusUpdateReady = \"spxTextUpdateStatusUpdateReady\";\nexport const spxTextUpdateStatusUpToDate = \"spxTextUpdateStatusUpToDate\";\nexport const spxTextUpdateStatusWebNotAvailable = \"spxTextUpdateStatusWebNotAvailable\";\nexport const spxTextUpdateVersionInfo = \"spxTextUpdateVersionInfo\";\n\nexport interface SpxTranslateI {\n [spxTextChange]: string;\n [spxTextCheckingForUpdates]: string;\n [spxTextOneMomentPlease]: string;\n [spxTextPatchAvailable]: string;\n [spxTextUpdateAvailable]: string;\n [spxTextReadyToBeInstalled]: string;\n [spxTextUpdate]: string;\n [spxTextOpenAppStore]: string;\n [spxTextChannel]: string;\n [spxTextCompany]: string;\n [spxTextSelect]: string;\n [spxTextSelectYourCompany]: string;\n [spxText404PageNotFound]: string;\n [spxTextPageNotFound]: string;\n [spxTextPageNotFoundDescription]: string;\n [spxTextGoHome]: string;\n [spxTextInvalidCode]: string;\n [spxTextTooLong]: string;\n [spxTextTooShort]: string;\n [spxTextTooHigh]: string;\n [spxTextTooLow]: string;\n [spxTextPatternNotValid]: string;\n [spxTextRequired]: string;\n [spxTextChoosePast]: string;\n [spxTextChooseFuture]: string;\n [spxTextChooseValidMonth]: string;\n [spxTextDateMayNotBeFuture]: string;\n [spxTextDateMayNotBePast]: string;\n [spxTextInvalidCode]: string;\n [spxTextLiveUpdateChannelSetFailed]: string;\n [spxTextLiveUpdateChannelSetFailedWithReason]: string;\n [spxTextLiveUpdateCheckFailed]: string;\n [spxTextLiveUpdateCheckFailedWithReason]: string;\n [spxTextUpdateErrorReason]: string;\n [spxTextUpdateAppVersion]: string;\n [spxTextUpdateBinaryVersionGroup]: string;\n [spxTextUpdateBuildVersion]: string;\n [spxTextUpdateCurrentVersionNumber]: string;\n [spxTextUpdateLastCheck]: string;\n [spxTextUpdateLiveBundle]: string;\n [spxTextUpdateLiveChannel]: string;\n [spxTextUpdateNextVersionNumber]: string;\n [spxTextUpdateStatus]: string;\n [spxTextUpdateStatusCompleted]: string;\n [spxTextUpdateStatusFailed]: string;\n [spxTextUpdateStatusPreparing]: string;\n [spxTextUpdateStatusReloading]: string;\n [spxTextUpdateStatusSyncing]: string;\n [spxTextUpdateStatusUpdateReady]: string;\n [spxTextUpdateStatusUpToDate]: string;\n [spxTextUpdateStatusWebNotAvailable]: string;\n [spxTextUpdateVersionInfo]: string;\n}\n","import {\n spxText404PageNotFound,\n spxTextChange,\n spxTextChannel,\n spxTextCheckingForUpdates,\n spxTextChooseFuture,\n spxTextChoosePast,\n spxTextChooseValidMonth,\n spxTextCompany,\n spxTextDateMayNotBeFuture,\n spxTextDateMayNotBePast,\n spxTextGoHome,\n spxTextInvalidCode,\n spxTextLiveUpdateCheckFailed,\n spxTextLiveUpdateCheckFailedWithReason,\n spxTextLiveUpdateChannelSetFailed,\n spxTextLiveUpdateChannelSetFailedWithReason,\n spxTextOneMomentPlease,\n spxTextOpenAppStore,\n spxTextPageNotFound,\n spxTextPageNotFoundDescription,\n spxTextPatchAvailable,\n spxTextPatternNotValid,\n spxTextReadyToBeInstalled,\n spxTextRequired,\n spxTextSelect,\n spxTextSelectYourCompany,\n spxTextTooHigh,\n spxTextTooLong,\n spxTextTooLow,\n spxTextTooShort,\n spxTextUpdate,\n spxTextUpdateAppVersion,\n spxTextUpdateAvailable,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateCurrentVersionNumber,\n spxTextUpdateErrorReason,\n spxTextUpdateLastCheck,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateNextVersionNumber,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusReloading,\n spxTextUpdateStatusSyncing,\n spxTextUpdateStatusUpdateReady,\n spxTextUpdateStatusUpToDate,\n spxTextUpdateStatusWebNotAvailable,\n spxTextUpdateVersionInfo,\n SpxTranslateI\n} from \"./spx-translate._const\";\n\nexport const SpxTranslateEn: SpxTranslateI = {\n [spxTextCheckingForUpdates]: 'checking for updates',\n [spxTextOneMomentPlease]: 'one moment please',\n [spxTextReadyToBeInstalled]: 'ready to be installed',\n [spxTextPatchAvailable]: 'patch available',\n [spxTextUpdateAvailable]: 'update available',\n [spxTextUpdate]: 'update',\n [spxTextOpenAppStore]: 'open app store',\n [spxTextChannel]: 'channel',\n [spxTextCompany]: 'company',\n [spxTextSelect]: 'select',\n [spxTextSelectYourCompany]: 'select your company',\n [spxTextChange]: 'change',\n [spxText404PageNotFound]: \"404 page not found\",\n [spxTextPageNotFound]: \"Page not found\",\n [spxTextPageNotFoundDescription]: \"Sorry, the page you’re looking for doesn’t exist or has been moved.\",\n [spxTextGoHome]: \"Go home\",\n [spxTextTooLong]: \"'{{fieldLabel}}' is too long (the maximum length is {{error}})\",\n [spxTextTooShort]: \"'{{fieldLabel}}' is too short (the minimum length is {{error}})\",\n [spxTextTooHigh]: \"The value of '{{fieldLabel}}' is too high, the maximum is {{error}}.\",\n [spxTextTooLow]: \"The value of '{{fieldLabel}}' is too low, the minimum is {{error}}.\",\n [spxTextPatternNotValid]: \"The pattern of '{{fieldLabel}}' is not valid.\",\n [spxTextRequired]: \"The field '{{fieldLabel}}' is required.\",\n [spxTextChoosePast]: \"Please choose a year between 1991 and the current year.\",\n [spxTextChooseFuture]: \"Please choose a year between the current year and 2050.\",\n [spxTextChooseValidMonth]: \"Please choose a valid month (a value between 01 and 12).\",\n [spxTextDateMayNotBeFuture]: \"The selected date may not be in the future.\",\n [spxTextDateMayNotBePast]: \"The selected date may not be in the past.\",\n [spxTextInvalidCode]: \"The {{codeName}} code {{codeCode}} does not exist.\",\n [spxTextLiveUpdateChannelSetFailed]: \"Channel selected, but live update channel could not be set.\",\n [spxTextLiveUpdateChannelSetFailedWithReason]: \"Channel selected, but live update channel could not be set: {{reason}}.\",\n [spxTextLiveUpdateCheckFailed]: \"Unable to check for updates right now. Please try again later.\",\n [spxTextLiveUpdateCheckFailedWithReason]: \"Unable to check for updates: {{reason}}.\",\n [spxTextUpdateErrorReason]: \"error details\",\n [spxTextUpdateLastCheck]: \"last successful check\",\n [spxTextUpdateStatus]: \"status\",\n [spxTextUpdateStatusPreparing]: \"preparing update check\",\n [spxTextUpdateStatusSyncing]: \"synchronizing update information\",\n [spxTextUpdateStatusReloading]: \"reloading app with downloaded update\",\n [spxTextUpdateStatusCompleted]: \"update check completed\",\n [spxTextUpdateStatusUpToDate]: \"app is up to date\",\n [spxTextUpdateStatusUpdateReady]: \"update downloaded\",\n [spxTextUpdateStatusFailed]: \"update check failed\",\n [spxTextUpdateStatusWebNotAvailable]: \"live update is not available on web\",\n [spxTextUpdateVersionInfo]: \"version information\",\n [spxTextUpdateAppVersion]: \"app version\",\n [spxTextUpdateBuildVersion]: \"build version\",\n [spxTextUpdateBinaryVersionGroup]: \"binary version group\",\n [spxTextUpdateCurrentVersionNumber]: \"current live version number\",\n [spxTextUpdateLiveChannel]: \"live update channel\",\n [spxTextUpdateLiveBundle]: \"downloaded live bundle\",\n [spxTextUpdateNextVersionNumber]: \"next live version number\",\n}\n","import {\n spxText404PageNotFound,\n spxTextChange,\n spxTextChannel,\n spxTextCheckingForUpdates,\n spxTextChooseFuture,\n spxTextChoosePast,\n spxTextChooseValidMonth,\n spxTextCompany,\n spxTextDateMayNotBeFuture,\n spxTextDateMayNotBePast,\n spxTextGoHome,\n spxTextInvalidCode,\n spxTextLiveUpdateCheckFailed,\n spxTextLiveUpdateCheckFailedWithReason,\n spxTextLiveUpdateChannelSetFailed,\n spxTextLiveUpdateChannelSetFailedWithReason,\n spxTextOneMomentPlease,\n spxTextOpenAppStore,\n spxTextPageNotFound,\n spxTextPageNotFoundDescription,\n spxTextPatchAvailable,\n spxTextPatternNotValid,\n spxTextReadyToBeInstalled,\n spxTextRequired,\n spxTextSelect,\n spxTextSelectYourCompany,\n spxTextTooHigh,\n spxTextTooLong,\n spxTextTooLow,\n spxTextTooShort,\n spxTextUpdate,\n spxTextUpdateAppVersion,\n spxTextUpdateAvailable,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateCurrentVersionNumber,\n spxTextUpdateErrorReason,\n spxTextUpdateLastCheck,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateNextVersionNumber,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusReloading,\n spxTextUpdateStatusSyncing,\n spxTextUpdateStatusUpdateReady,\n spxTextUpdateStatusUpToDate,\n spxTextUpdateStatusWebNotAvailable,\n spxTextUpdateVersionInfo,\n SpxTranslateI\n} from \"./spx-translate._const\";\n\nexport const SpxTranslateNl: SpxTranslateI = {\n [spxTextCheckingForUpdates]: 'controleren op updates',\n [spxTextOneMomentPlease]: 'een moment geduld alstublieft',\n [spxTextReadyToBeInstalled]: 'ready to be installed',\n [spxTextPatchAvailable]: 'patch available',\n [spxTextUpdateAvailable]: 'update available',\n [spxTextUpdate]: 'updaten',\n [spxTextOpenAppStore]: 'open app store',\n [spxTextChannel]: 'kanaal',\n [spxTextCompany]: 'bedrijf',\n [spxTextSelect]: 'selecteer',\n [spxTextSelectYourCompany]: 'selecteer uw bedrijf',\n [spxTextChange]: 'wissel',\n [spxText404PageNotFound]: \"404 pagina niet gevonden\",\n [spxTextPageNotFound]: \"Pagina niet gevonden\",\n [spxTextPageNotFoundDescription]: \"Sorry, de pagina die u zoekt bestaat niet of is verplaatst.\",\n [spxTextGoHome]: \"Ga naar het hoofdscherm\",\n [spxTextInvalidCode]: \"De {{codeName}} code {{codeCode}} is ongeldig.\",\n [spxTextTooLong]: \"De waarde van '{{fieldLabel}}' is te lang (de maximale lengte is {{error}}).\",\n [spxTextTooShort]: \"De waarde van '{{fieldLabel}}' is te kort (de minimale lengte is {{error}}).\",\n [spxTextTooHigh]: \"De waarde van '{{fieldLabel}}' is te hoog (de maximale waarde is {{error}}).\",\n [spxTextTooLow]: \"De waarde van '{{fieldLabel}}' is te laag (de minimale waarde is {{error}}).\",\n [spxTextPatternNotValid]: \"Het patroon van '{{fieldLabel}}' is ongeldig.\",\n [spxTextRequired]: \"Het veld '{{fieldLabel}}' is verplicht.\",\n [spxTextChoosePast]: \"Kies een jaar tussen 1991 en het huidige jaar.\",\n [spxTextChooseFuture]: \"Kies een jaar tussen het huidige jaar en 2050.\",\n [spxTextChooseValidMonth]: \"Kies een geldige maand (een waarde tussen 01 en 12).\",\n [spxTextDateMayNotBeFuture]: \"De geselecteerde datum mag niet in de toekomst liggen.\",\n [spxTextDateMayNotBePast]: \"De geselecteerde datum mag niet in het verleden liggen.\",\n [spxTextLiveUpdateChannelSetFailed]: \"Kanaal geselecteerd, maar het live update kanaal kon niet worden ingesteld.\",\n [spxTextLiveUpdateChannelSetFailedWithReason]: \"Kanaal geselecteerd, maar het live update kanaal kon niet worden ingesteld: {{reason}}.\",\n [spxTextLiveUpdateCheckFailed]: \"Kan nu niet op updates controleren. Probeer het later opnieuw.\",\n [spxTextLiveUpdateCheckFailedWithReason]: \"Kan nu niet op updates controleren: {{reason}}.\",\n [spxTextUpdateErrorReason]: \"foutdetails\",\n [spxTextUpdateLastCheck]: \"laatste succesvolle controle\",\n [spxTextUpdateStatus]: \"status\",\n [spxTextUpdateStatusPreparing]: \"updatecontrole voorbereiden\",\n [spxTextUpdateStatusSyncing]: \"update-informatie synchroniseren\",\n [spxTextUpdateStatusReloading]: \"app herladen met gedownloade update\",\n [spxTextUpdateStatusCompleted]: \"updatecontrole voltooid\",\n [spxTextUpdateStatusUpToDate]: \"app is up-to-date\",\n [spxTextUpdateStatusUpdateReady]: \"update gedownload\",\n [spxTextUpdateStatusFailed]: \"updatecontrole mislukt\",\n [spxTextUpdateStatusWebNotAvailable]: \"live update is niet beschikbaar op web\",\n [spxTextUpdateVersionInfo]: \"versie-informatie\",\n [spxTextUpdateAppVersion]: \"app-versie\",\n [spxTextUpdateBuildVersion]: \"build-versie\",\n [spxTextUpdateBinaryVersionGroup]: \"binaire versiegroep\",\n [spxTextUpdateCurrentVersionNumber]: \"huidige live versionnumber\",\n [spxTextUpdateLiveChannel]: \"live update kanaal\",\n [spxTextUpdateLiveBundle]: \"gedownloade live bundle\",\n [spxTextUpdateNextVersionNumber]: \"volgende live versionnumber\",\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,yBAAyB,GAAG;AAClC,MAAM,sBAAsB,GAAG;AAC/B,MAAM,qBAAqB,GAAG;AAC9B,MAAM,sBAAsB,GAAG;AAC/B,MAAM,yBAAyB,GAAG;AAClC,MAAM,aAAa,GAAG;AACtB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,cAAc,GAAG;AACvB,MAAM,cAAc,GAAG;AACvB,MAAM,aAAa,GAAG;AACtB,MAAM,wBAAwB,GAAG;AACjC,MAAM,aAAa,GAAG;AACtB,MAAM,sBAAsB,GAAG;AAC/B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,8BAA8B,GAAG;AACvC,MAAM,aAAa,GAAG;AACtB,MAAM,cAAc,GAAG;AACvB,MAAM,eAAe,GAAG;AACxB,MAAM,cAAc,GAAG;AACvB,MAAM,aAAa,GAAG;AACtB,MAAM,sBAAsB,GAAG;AAC/B,MAAM,eAAe,GAAG;AACxB,MAAM,iBAAiB,GAAG;AAC1B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,uBAAuB,GAAG;AAChC,MAAM,yBAAyB,GAAG;AAClC,MAAM,uBAAuB,GAAG;AAChC,MAAM,kBAAkB,GAAG;AAC3B,MAAM,iCAAiC,GAAG;AAC1C,MAAM,2CAA2C,GAAG;AACpD,MAAM,4BAA4B,GAAG;AACrC,MAAM,sCAAsC,GAAG;AAC/C,MAAM,wBAAwB,GAAG;AACjC,MAAM,uBAAuB,GAAG;AAChC,MAAM,+BAA+B,GAAG;AACxC,MAAM,yBAAyB,GAAG;AAClC,MAAM,iCAAiC,GAAG;AAC1C,MAAM,sBAAsB,GAAG;AAC/B,MAAM,uBAAuB,GAAG;AAChC,MAAM,wBAAwB,GAAG;AACjC,MAAM,8BAA8B,GAAG;AACvC,MAAM,mBAAmB,GAAG;AAC5B,MAAM,4BAA4B,GAAG;AACrC,MAAM,yBAAyB,GAAG;AAClC,MAAM,4BAA4B,GAAG;AACrC,MAAM,4BAA4B,GAAG;AACrC,MAAM,0BAA0B,GAAG;AACnC,MAAM,8BAA8B,GAAG;AACvC,MAAM,2BAA2B,GAAG;AACpC,MAAM,kCAAkC,GAAG;AAC3C,MAAM,wBAAwB,GAAG;;ACKjC,MAAM,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,SAAS;IAC1B,CAAC,cAAc,GAAG,gEAAgE;IAClF,CAAC,eAAe,GAAG,iEAAiE;IACpF,CAAC,cAAc,GAAG,sEAAsE;IACxF,CAAC,aAAa,GAAG,qEAAqE;IACtF,CAAC,sBAAsB,GAAG,+CAA+C;IACzE,CAAC,eAAe,GAAG,yCAAyC;IAC5D,CAAC,iBAAiB,GAAG,yDAAyD;IAC9E,CAAC,mBAAmB,GAAG,yDAAyD;IAChF,CAAC,uBAAuB,GAAG,0DAA0D;IACrF,CAAC,yBAAyB,GAAG,6CAA6C;IAC1E,CAAC,uBAAuB,GAAG,2CAA2C;IACtE,CAAC,kBAAkB,GAAG,oDAAoD;IAC1E,CAAC,iCAAiC,GAAG,6DAA6D;IAClG,CAAC,2CAA2C,GAAG,yEAAyE;IACxH,CAAC,4BAA4B,GAAG,gEAAgE;IAChG,CAAC,sCAAsC,GAAG,0CAA0C;IACpF,CAAC,wBAAwB,GAAG,eAAe;IAC3C,CAAC,sBAAsB,GAAG,uBAAuB;IACjD,CAAC,mBAAmB,GAAG,QAAQ;IAC/B,CAAC,4BAA4B,GAAG,wBAAwB;IACxD,CAAC,0BAA0B,GAAG,kCAAkC;IAChE,CAAC,4BAA4B,GAAG,sCAAsC;IACtE,CAAC,4BAA4B,GAAG,wBAAwB;IACxD,CAAC,2BAA2B,GAAG,mBAAmB;IAClD,CAAC,8BAA8B,GAAG,mBAAmB;IACrD,CAAC,yBAAyB,GAAG,qBAAqB;IAClD,CAAC,kCAAkC,GAAG,qCAAqC;IAC3E,CAAC,wBAAwB,GAAG,qBAAqB;IACjD,CAAC,uBAAuB,GAAG,aAAa;IACxC,CAAC,yBAAyB,GAAG,eAAe;IAC5C,CAAC,+BAA+B,GAAG,sBAAsB;IACzD,CAAC,iCAAiC,GAAG,6BAA6B;IAClE,CAAC,wBAAwB,GAAG,qBAAqB;IACjD,CAAC,uBAAuB,GAAG,wBAAwB;IACnD,CAAC,8BAA8B,GAAG,0BAA0B;;;ACnDvD,MAAM,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,yBAAyB;IAC1C,CAAC,kBAAkB,GAAG,gDAAgD;IACtE,CAAC,cAAc,GAAG,8EAA8E;IAChG,CAAC,eAAe,GAAG,8EAA8E;IACjG,CAAC,cAAc,GAAG,8EAA8E;IAChG,CAAC,aAAa,GAAG,8EAA8E;IAC/F,CAAC,sBAAsB,GAAG,+CAA+C;IACzE,CAAC,eAAe,GAAG,yCAAyC;IAC5D,CAAC,iBAAiB,GAAG,gDAAgD;IACrE,CAAC,mBAAmB,GAAG,gDAAgD;IACvE,CAAC,uBAAuB,GAAG,sDAAsD;IACjF,CAAC,yBAAyB,GAAG,wDAAwD;IACrF,CAAC,uBAAuB,GAAG,yDAAyD;IACpF,CAAC,iCAAiC,GAAG,6EAA6E;IAClH,CAAC,2CAA2C,GAAG,yFAAyF;IACxI,CAAC,4BAA4B,GAAG,gEAAgE;IAChG,CAAC,sCAAsC,GAAG,iDAAiD;IAC3F,CAAC,wBAAwB,GAAG,aAAa;IACzC,CAAC,sBAAsB,GAAG,8BAA8B;IACxD,CAAC,mBAAmB,GAAG,QAAQ;IAC/B,CAAC,4BAA4B,GAAG,6BAA6B;IAC7D,CAAC,0BAA0B,GAAG,kCAAkC;IAChE,CAAC,4BAA4B,GAAG,qCAAqC;IACrE,CAAC,4BAA4B,GAAG,yBAAyB;IACzD,CAAC,2BAA2B,GAAG,mBAAmB;IAClD,CAAC,8BAA8B,GAAG,mBAAmB;IACrD,CAAC,yBAAyB,GAAG,wBAAwB;IACrD,CAAC,kCAAkC,GAAG,wCAAwC;IAC9E,CAAC,wBAAwB,GAAG,mBAAmB;IAC/C,CAAC,uBAAuB,GAAG,YAAY;IACvC,CAAC,yBAAyB,GAAG,cAAc;IAC3C,CAAC,+BAA+B,GAAG,qBAAqB;IACxD,CAAC,iCAAiC,GAAG,4BAA4B;IACjE,CAAC,wBAAwB,GAAG,oBAAoB;IAChD,CAAC,uBAAuB,GAAG,yBAAyB;IACpD,CAAC,8BAA8B,GAAG,6BAA6B;;;AC1GjE;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
1
  import * as i3 from '@ionic/angular/standalone';
2
2
  import { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
3
- import { spxTextCheckingForUpdates, spxTextUpdateErrorReason, spxTextUpdateAppVersion, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateVersionInfo, spxTextUpdateStatusCompleted, spxTextUpdateStatusWebNotAvailable, spxTextUpdateStatusFailed, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusUpToDate, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusPreparing, spxTextUpdate, spxTextReadyToBeInstalled, spxTextPatchAvailable, spxTextUpdateAvailable, spxTextOpenAppStore, spxTextLiveUpdateCheckFailedWithReason, spxTextLiveUpdateCheckFailed } from '@softpak/components/spx-translate';
3
+ import { spxTextCheckingForUpdates, spxTextUpdateErrorReason, spxTextUpdateAppVersion, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateCurrentVersionNumber, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateNextVersionNumber, spxTextUpdateStatus, spxTextUpdateVersionInfo, spxTextUpdateStatusCompleted, spxTextUpdateStatusWebNotAvailable, spxTextUpdateStatusFailed, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusUpToDate, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusPreparing, spxTextUpdate, spxTextReadyToBeInstalled, spxTextPatchAvailable, spxTextUpdateAvailable, spxTextOpenAppStore, spxTextLiveUpdateCheckFailedWithReason, spxTextLiveUpdateCheckFailed } from '@softpak/components/spx-translate';
4
4
  import { App } from '@capacitor/app';
5
5
  import * as i0 from '@angular/core';
6
6
  import { signal, computed, effect, Component, HostBinding, ChangeDetectionStrategy, inject, Injectable } from '@angular/core';
@@ -152,11 +152,13 @@ class SpxUpdatePageComponent {
152
152
  this.appVersion = signal('-', ...(ngDevMode ? [{ debugName: "appVersion" }] : []));
153
153
  this.binaryVersionGroup = signal('-', ...(ngDevMode ? [{ debugName: "binaryVersionGroup" }] : []));
154
154
  this.buildVersion = signal('-', ...(ngDevMode ? [{ debugName: "buildVersion" }] : []));
155
+ this.currentVersionNumber = signal('-', ...(ngDevMode ? [{ debugName: "currentVersionNumber" }] : []));
155
156
  this.lastErrorReason = this.appStore.selectSignal(updCheck.selectLastErrorReason);
156
157
  this.hasStarted = signal(false, ...(ngDevMode ? [{ debugName: "hasStarted" }] : []));
157
158
  this.hasNavigatedAway = signal(false, ...(ngDevMode ? [{ debugName: "hasNavigatedAway" }] : []));
158
159
  this.liveBundle = signal('-', ...(ngDevMode ? [{ debugName: "liveBundle" }] : []));
159
160
  this.liveUpdateChannel = signal('-', ...(ngDevMode ? [{ debugName: "liveUpdateChannel" }] : []));
161
+ this.nextVersionNumber = signal('-', ...(ngDevMode ? [{ debugName: "nextVersionNumber" }] : []));
160
162
  this.status = this.appStore.selectSignal(updCheck.selectStatus);
161
163
  this.closeTimerId = null;
162
164
  this.faCircleCheck = faCircleCheck;
@@ -166,8 +168,10 @@ class SpxUpdatePageComponent {
166
168
  this.spxTextUpdateAppVersion = spxTextUpdateAppVersion;
167
169
  this.spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;
168
170
  this.spxTextUpdateBuildVersion = spxTextUpdateBuildVersion;
171
+ this.spxTextUpdateCurrentVersionNumber = spxTextUpdateCurrentVersionNumber;
169
172
  this.spxTextUpdateLiveBundle = spxTextUpdateLiveBundle;
170
173
  this.spxTextUpdateLiveChannel = spxTextUpdateLiveChannel;
174
+ this.spxTextUpdateNextVersionNumber = spxTextUpdateNextVersionNumber;
171
175
  this.spxTextUpdateStatus = spxTextUpdateStatus;
172
176
  this.spxTextUpdateVersionInfo = spxTextUpdateVersionInfo;
173
177
  this.isRunningStatus = computed(() => {
@@ -289,18 +293,22 @@ class SpxUpdatePageComponent {
289
293
  }
290
294
  refreshStorageVersionInfo() {
291
295
  const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);
296
+ const storedCurrentVersionNumber = SpxStorage.getSetting(SpxStorageKeyEnum.capAwesomeVersionNumber);
292
297
  const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);
293
298
  const storedLiveBundle = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdate);
299
+ const storedNextVersionNumber = SpxStorage.getSetting(SpxStorageKeyEnum.capAwesomeNextVersionNumber);
294
300
  if (storedBinaryVersionGroup) {
295
301
  this.binaryVersionGroup.set(storedBinaryVersionGroup);
296
302
  }
303
+ this.currentVersionNumber.set(storedCurrentVersionNumber || '-');
297
304
  if (storedLiveUpdateChannel) {
298
305
  this.liveUpdateChannel.set(storedLiveUpdateChannel);
299
306
  }
300
307
  this.liveBundle.set(storedLiveBundle || '-');
308
+ this.nextVersionNumber.set(storedNextVersionNumber || '-');
301
309
  }
302
310
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxUpdatePageComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", 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 update-page\">\n <div class=\"update-shell mx-auto grid max-w-[40rem] gap-4 py-2 pb-4\">\n <section\n class=\"status-card grid gap-2 rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\"\n [attr.data-status]=\"status()\">\n <div\n class=\"status-visual\"\n [class.is-running]=\"isRunningStatus()\"\n [class.is-success]=\"isSuccessStatus()\"\n [class.is-error]=\"isErrorStatus()\"\n aria-hidden=\"true\">\n <span class=\"status-orbit status-orbit--outer\"></span>\n <span class=\"status-orbit status-orbit--inner\"></span>\n <span class=\"status-core\"></span>\n\n @if (isSuccessStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleCheck\"></fa-icon>\n }\n @if (isErrorStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleExclamation\"></fa-icon>\n }\n </div>\n\n <p class=\"status-label m-0 text-[0.76rem] font-bold uppercase tracking-[0.08em] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value m-[0.35rem_0_0] text-[1.15rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error mt-[0.85rem] leading-[1.35] text-[color:var(--ion-color-danger,#eb445a)]\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n </section>\n\n <section class=\"details-card rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\">\n <h2 class=\"m-0 text-[0.95rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid mt-[0.9rem] grid gap-[0.65rem]\">\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row last:border-b-0 last:pb-0 flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n", styles: [":host{--spx-update-surface-color: var(--ion-card-background, var(--ion-background-color, #fff));--spx-update-text-color: var(--ion-text-color, #000);--spx-update-border-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .14);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .72);--spx-update-running-color: var(--ion-color-primary, #3880ff);--spx-update-success-color: var(--ion-color-success, #2dd36f);--spx-update-error-color: var(--ion-color-danger, #eb445a);display:block}@media(prefers-color-scheme:dark){:host{--spx-update-border-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .18);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .78)}}ion-title{color:var(--spx-update-text-color)}.update-page{--background: var(--ion-background-color, #fff);color:var(--spx-update-text-color)}.status-card[data-status=upToDate],.status-card[data-status=updateReady]{border-inline-start:.3rem solid var(--ion-color-success, #2dd36f)}.status-card[data-status=failed],.status-card[data-status=notAvailableOnWeb]{border-inline-start:.3rem solid var(--ion-color-danger, #eb445a)}.status-card{display:grid;gap:.4rem}.status-visual{--status-accent: var(--spx-update-running-color);position:relative;width:4.15rem;height:4.15rem;margin:0 auto .15rem}.status-visual.is-success{--status-accent: var(--spx-update-success-color)}.status-visual.is-error{--status-accent: var(--spx-update-error-color)}.status-orbit{position:absolute;inset:0;border-radius:999px;border:3px solid transparent;border-top-color:var(--status-accent);border-right-color:var(--status-accent);animation:spx-update-spin 1.4s linear infinite}.status-orbit--inner{inset:.5rem;border-width:2px;animation-duration:1s;animation-direction:reverse;opacity:.8}.status-core{position:absolute;inset:1.15rem;border-radius:999px;border:2px solid var(--status-accent);background:var(--spx-update-surface-color);animation:spx-update-pulse 1.2s ease-in-out infinite}.status-icon{position:absolute;inset:0;display:grid;place-items:center;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--status-accent)}.status-visual:not(.is-running) .status-orbit,.status-visual:not(.is-running) .status-core{animation:none}.status-visual:not(.is-running) .status-orbit{opacity:.55}.status-meta{margin:.75rem 0 0;font-size:.86rem;color:var(--spx-update-muted-color);line-height:1.35}@media(prefers-reduced-motion:reduce){.status-orbit,.status-core{animation:none!important}}@keyframes spx-update-spin{to{transform:rotate(360deg)}}@keyframes spx-update-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.86);opacity:.8}}\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: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
311
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", 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 update-page\">\n <div class=\"update-shell mx-auto grid max-w-[40rem] gap-4 py-2 pb-4\">\n <section\n class=\"status-card grid gap-2 rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\"\n [attr.data-status]=\"status()\">\n <div\n class=\"status-visual\"\n [class.is-running]=\"isRunningStatus()\"\n [class.is-success]=\"isSuccessStatus()\"\n [class.is-error]=\"isErrorStatus()\"\n aria-hidden=\"true\">\n <span class=\"status-orbit status-orbit--outer\"></span>\n <span class=\"status-orbit status-orbit--inner\"></span>\n <span class=\"status-core\"></span>\n\n @if (isSuccessStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleCheck\"></fa-icon>\n }\n @if (isErrorStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleExclamation\"></fa-icon>\n }\n </div>\n\n <p class=\"status-label m-0 text-[0.76rem] font-bold uppercase tracking-[0.08em] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value m-[0.35rem_0_0] text-[1.15rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error mt-[0.85rem] leading-[1.35] text-[color:var(--ion-color-danger,#eb445a)]\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n </section>\n\n <section class=\"details-card rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\">\n <h2 class=\"m-0 text-[0.95rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid mt-[0.9rem] grid gap-[0.65rem]\">\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateCurrentVersionNumber | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ currentVersionNumber() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateNextVersionNumber | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ nextVersionNumber() }}</dd>\n </div>\n <div class=\"detail-row last:border-b-0 last:pb-0 flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n", styles: [":host{--spx-update-surface-color: var(--ion-card-background, var(--ion-background-color, #fff));--spx-update-text-color: var(--ion-text-color, #000);--spx-update-border-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .14);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .72);--spx-update-running-color: var(--ion-color-primary, #3880ff);--spx-update-success-color: var(--ion-color-success, #2dd36f);--spx-update-error-color: var(--ion-color-danger, #eb445a);display:block}@media(prefers-color-scheme:dark){:host{--spx-update-border-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .18);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .78)}}ion-title{color:var(--spx-update-text-color)}.update-page{--background: var(--ion-background-color, #fff);color:var(--spx-update-text-color)}.status-card[data-status=upToDate],.status-card[data-status=updateReady]{border-inline-start:.3rem solid var(--ion-color-success, #2dd36f)}.status-card[data-status=failed],.status-card[data-status=notAvailableOnWeb]{border-inline-start:.3rem solid var(--ion-color-danger, #eb445a)}.status-card{display:grid;gap:.4rem}.status-visual{--status-accent: var(--spx-update-running-color);position:relative;width:4.15rem;height:4.15rem;margin:0 auto .15rem}.status-visual.is-success{--status-accent: var(--spx-update-success-color)}.status-visual.is-error{--status-accent: var(--spx-update-error-color)}.status-orbit{position:absolute;inset:0;border-radius:999px;border:3px solid transparent;border-top-color:var(--status-accent);border-right-color:var(--status-accent);animation:spx-update-spin 1.4s linear infinite}.status-orbit--inner{inset:.5rem;border-width:2px;animation-duration:1s;animation-direction:reverse;opacity:.8}.status-core{position:absolute;inset:1.15rem;border-radius:999px;border:2px solid var(--status-accent);background:var(--spx-update-surface-color);animation:spx-update-pulse 1.2s ease-in-out infinite}.status-icon{position:absolute;inset:0;display:grid;place-items:center;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--status-accent)}.status-visual:not(.is-running) .status-orbit,.status-visual:not(.is-running) .status-core{animation:none}.status-visual:not(.is-running) .status-orbit{opacity:.55}.status-meta{margin:.75rem 0 0;font-size:.86rem;color:var(--spx-update-muted-color);line-height:1.35}@media(prefers-reduced-motion:reduce){.status-orbit,.status-core{animation:none!important}}@keyframes spx-update-spin{to{transform:rotate(360deg)}}@keyframes spx-update-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.86);opacity:.8}}\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: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
304
312
  }
305
313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
306
314
  type: Component,
@@ -312,7 +320,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
312
320
  FaIconComponent,
313
321
  SpxCapitalizePipe,
314
322
  TranslatePipe,
315
- ], 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 update-page\">\n <div class=\"update-shell mx-auto grid max-w-[40rem] gap-4 py-2 pb-4\">\n <section\n class=\"status-card grid gap-2 rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\"\n [attr.data-status]=\"status()\">\n <div\n class=\"status-visual\"\n [class.is-running]=\"isRunningStatus()\"\n [class.is-success]=\"isSuccessStatus()\"\n [class.is-error]=\"isErrorStatus()\"\n aria-hidden=\"true\">\n <span class=\"status-orbit status-orbit--outer\"></span>\n <span class=\"status-orbit status-orbit--inner\"></span>\n <span class=\"status-core\"></span>\n\n @if (isSuccessStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleCheck\"></fa-icon>\n }\n @if (isErrorStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleExclamation\"></fa-icon>\n }\n </div>\n\n <p class=\"status-label m-0 text-[0.76rem] font-bold uppercase tracking-[0.08em] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value m-[0.35rem_0_0] text-[1.15rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error mt-[0.85rem] leading-[1.35] text-[color:var(--ion-color-danger,#eb445a)]\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n </section>\n\n <section class=\"details-card rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\">\n <h2 class=\"m-0 text-[0.95rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid mt-[0.9rem] grid gap-[0.65rem]\">\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row last:border-b-0 last:pb-0 flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n", styles: [":host{--spx-update-surface-color: var(--ion-card-background, var(--ion-background-color, #fff));--spx-update-text-color: var(--ion-text-color, #000);--spx-update-border-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .14);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .72);--spx-update-running-color: var(--ion-color-primary, #3880ff);--spx-update-success-color: var(--ion-color-success, #2dd36f);--spx-update-error-color: var(--ion-color-danger, #eb445a);display:block}@media(prefers-color-scheme:dark){:host{--spx-update-border-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .18);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .78)}}ion-title{color:var(--spx-update-text-color)}.update-page{--background: var(--ion-background-color, #fff);color:var(--spx-update-text-color)}.status-card[data-status=upToDate],.status-card[data-status=updateReady]{border-inline-start:.3rem solid var(--ion-color-success, #2dd36f)}.status-card[data-status=failed],.status-card[data-status=notAvailableOnWeb]{border-inline-start:.3rem solid var(--ion-color-danger, #eb445a)}.status-card{display:grid;gap:.4rem}.status-visual{--status-accent: var(--spx-update-running-color);position:relative;width:4.15rem;height:4.15rem;margin:0 auto .15rem}.status-visual.is-success{--status-accent: var(--spx-update-success-color)}.status-visual.is-error{--status-accent: var(--spx-update-error-color)}.status-orbit{position:absolute;inset:0;border-radius:999px;border:3px solid transparent;border-top-color:var(--status-accent);border-right-color:var(--status-accent);animation:spx-update-spin 1.4s linear infinite}.status-orbit--inner{inset:.5rem;border-width:2px;animation-duration:1s;animation-direction:reverse;opacity:.8}.status-core{position:absolute;inset:1.15rem;border-radius:999px;border:2px solid var(--status-accent);background:var(--spx-update-surface-color);animation:spx-update-pulse 1.2s ease-in-out infinite}.status-icon{position:absolute;inset:0;display:grid;place-items:center;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--status-accent)}.status-visual:not(.is-running) .status-orbit,.status-visual:not(.is-running) .status-core{animation:none}.status-visual:not(.is-running) .status-orbit{opacity:.55}.status-meta{margin:.75rem 0 0;font-size:.86rem;color:var(--spx-update-muted-color);line-height:1.35}@media(prefers-reduced-motion:reduce){.status-orbit,.status-core{animation:none!important}}@keyframes spx-update-spin{to{transform:rotate(360deg)}}@keyframes spx-update-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.86);opacity:.8}}\n"] }]
323
+ ], 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 update-page\">\n <div class=\"update-shell mx-auto grid max-w-[40rem] gap-4 py-2 pb-4\">\n <section\n class=\"status-card grid gap-2 rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\"\n [attr.data-status]=\"status()\">\n <div\n class=\"status-visual\"\n [class.is-running]=\"isRunningStatus()\"\n [class.is-success]=\"isSuccessStatus()\"\n [class.is-error]=\"isErrorStatus()\"\n aria-hidden=\"true\">\n <span class=\"status-orbit status-orbit--outer\"></span>\n <span class=\"status-orbit status-orbit--inner\"></span>\n <span class=\"status-core\"></span>\n\n @if (isSuccessStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleCheck\"></fa-icon>\n }\n @if (isErrorStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleExclamation\"></fa-icon>\n }\n </div>\n\n <p class=\"status-label m-0 text-[0.76rem] font-bold uppercase tracking-[0.08em] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value m-[0.35rem_0_0] text-[1.15rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error mt-[0.85rem] leading-[1.35] text-[color:var(--ion-color-danger,#eb445a)]\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n </section>\n\n <section class=\"details-card rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\">\n <h2 class=\"m-0 text-[0.95rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid mt-[0.9rem] grid gap-[0.65rem]\">\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateCurrentVersionNumber | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ currentVersionNumber() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateNextVersionNumber | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ nextVersionNumber() }}</dd>\n </div>\n <div class=\"detail-row last:border-b-0 last:pb-0 flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n", styles: [":host{--spx-update-surface-color: var(--ion-card-background, var(--ion-background-color, #fff));--spx-update-text-color: var(--ion-text-color, #000);--spx-update-border-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .14);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), .72);--spx-update-running-color: var(--ion-color-primary, #3880ff);--spx-update-success-color: var(--ion-color-success, #2dd36f);--spx-update-error-color: var(--ion-color-danger, #eb445a);display:block}@media(prefers-color-scheme:dark){:host{--spx-update-border-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .18);--spx-update-muted-color: rgba(var(--ion-text-color-rgb, 255, 255, 255), .78)}}ion-title{color:var(--spx-update-text-color)}.update-page{--background: var(--ion-background-color, #fff);color:var(--spx-update-text-color)}.status-card[data-status=upToDate],.status-card[data-status=updateReady]{border-inline-start:.3rem solid var(--ion-color-success, #2dd36f)}.status-card[data-status=failed],.status-card[data-status=notAvailableOnWeb]{border-inline-start:.3rem solid var(--ion-color-danger, #eb445a)}.status-card{display:grid;gap:.4rem}.status-visual{--status-accent: var(--spx-update-running-color);position:relative;width:4.15rem;height:4.15rem;margin:0 auto .15rem}.status-visual.is-success{--status-accent: var(--spx-update-success-color)}.status-visual.is-error{--status-accent: var(--spx-update-error-color)}.status-orbit{position:absolute;inset:0;border-radius:999px;border:3px solid transparent;border-top-color:var(--status-accent);border-right-color:var(--status-accent);animation:spx-update-spin 1.4s linear infinite}.status-orbit--inner{inset:.5rem;border-width:2px;animation-duration:1s;animation-direction:reverse;opacity:.8}.status-core{position:absolute;inset:1.15rem;border-radius:999px;border:2px solid var(--status-accent);background:var(--spx-update-surface-color);animation:spx-update-pulse 1.2s ease-in-out infinite}.status-icon{position:absolute;inset:0;display:grid;place-items:center;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--status-accent)}.status-visual:not(.is-running) .status-orbit,.status-visual:not(.is-running) .status-core{animation:none}.status-visual:not(.is-running) .status-orbit{opacity:.55}.status-meta{margin:.75rem 0 0;font-size:.86rem;color:var(--spx-update-muted-color);line-height:1.35}@media(prefers-reduced-motion:reduce){.status-orbit,.status-core{animation:none!important}}@keyframes spx-update-spin{to{transform:rotate(360deg)}}@keyframes spx-update-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.86);opacity:.8}}\n"] }]
316
324
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }, { type: i3.NavController }] });
317
325
 
318
326
  const SpxUpdatePendingActions = createActionGroup({
@@ -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.state.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 { createActionGroup, emptyProps, props } from '@ngrx/store';\n\nexport const spxUpdateCheckActions = createActionGroup({\n source: 'SpxUpdateCheck',\n events: {\n anUpdateIsReady: emptyProps(),\n checkFailed: props<{ errorReason?: string; startUpdateAgainAfterTimeout?: boolean; }>(),\n clearError: emptyProps(),\n initialize: emptyProps(),\n noUpdateWasFound: props<{ startUpdateAgainAfterTimeout?: boolean; }>(),\n notAvailableOnWeb: emptyProps(),\n reloadStarted: emptyProps(),\n runCheck: props<{ forceWaitForUpdate?: boolean }>(),\n syncStarted: emptyProps(),\n },\n});\n","export enum SpxUpdateCheckStatusEnum {\n failed = 'failed',\n idle = 'idle',\n notAvailableOnWeb = 'notAvailableOnWeb',\n preparing = 'preparing',\n reloading = 'reloading',\n syncing = 'syncing',\n upToDate = 'upToDate',\n updateReady = 'updateReady',\n}\n\nexport interface StateI {\n forceWaitForUpdate: boolean;\n lastErrorReason: string | null;\n lastCheck: string | null;\n showError: boolean;\n status: SpxUpdateCheckStatusEnum;\n}\n","import { SpxUpdateCheckStatusEnum, StateI } from \"./spx-update-check.state\";\n\nexport const initialState: StateI = {\n forceWaitForUpdate: false,\n lastErrorReason: null,\n lastCheck: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.idle,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { DateTime } from 'luxon';\nimport { SpxUpdateCheckStatusEnum, StateI } from './spx-update-check.state';\nimport { initialState } from './spx-update-check.initial';\nimport { spxUpdateCheckActions } from './spx-update-check.actions';\n\nexport default createFeature({\n name: 'spxUpdateCheck',\n reducer: createReducer(\n initialState,\n on(spxUpdateCheckActions.anUpdateIsReady, (state: StateI): StateI => {\n return {\n ...state,\n lastCheck: DateTime.now().toISO(),\n lastErrorReason: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.updateReady,\n };\n }),\n on(spxUpdateCheckActions.clearError, (state: StateI): StateI => {\n return {\n ...state,\n lastErrorReason: null,\n showError: false,\n };\n }),\n on(spxUpdateCheckActions.checkFailed, (state: StateI, { errorReason }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastErrorReason: errorReason || null,\n showError: true,\n status: SpxUpdateCheckStatusEnum.failed,\n };\n }),\n on(spxUpdateCheckActions.noUpdateWasFound, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastCheck: DateTime.now().toISO(),\n lastErrorReason: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.upToDate,\n };\n }),\n on(spxUpdateCheckActions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: typeof forceWaitForUpdate === 'boolean' ? forceWaitForUpdate : state.forceWaitForUpdate,\n lastErrorReason: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.preparing,\n };\n }),\n on(spxUpdateCheckActions.syncStarted, (state: StateI): StateI => {\n return {\n ...state,\n status: SpxUpdateCheckStatusEnum.syncing,\n };\n }),\n on(spxUpdateCheckActions.reloadStarted, (state: StateI): StateI => {\n return {\n ...state,\n status: SpxUpdateCheckStatusEnum.reloading,\n };\n }),\n on(spxUpdateCheckActions.notAvailableOnWeb, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n status: SpxUpdateCheckStatusEnum.notAvailableOnWeb,\n };\n }),\n ),\n});\n","import { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\nimport {\n spxTextCheckingForUpdates,\n spxTextUpdateErrorReason,\n spxTextUpdateAppVersion,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusReloading,\n spxTextUpdateStatusSyncing,\n spxTextUpdateStatusUpdateReady,\n spxTextUpdateStatusUpToDate,\n spxTextUpdateStatusWebNotAvailable,\n spxTextUpdateVersionInfo\n} from '@softpak/components/spx-translate';\n\nimport { ActivatedRoute } from '@angular/router';\nimport { App } from '@capacitor/app';\nimport { Component, computed, effect, signal } from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faCircleCheck, faCircleExclamation } from '@fortawesome/free-solid-svg-icons';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { Store } from '@ngrx/store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { spxUpdateCheckActions } from './store/spx-update-check/spx-update-check.actions';\nimport { SpxUpdateCheckStatusEnum } from './store/spx-update-check/spx-update-check.state';\nimport { default as updCheck } from './store/spx-update-check/spx-update-check.reducer';\n\n@Component({\n selector: 'spx-update-page',\n imports: [\n IonContent,\n IonHeader,\n IonToolbar,\n IonTitle,\n FaIconComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n styleUrls: [`./spx-update-page.component.scss`],\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n private static readonly SUCCESS_CLOSE_DELAY_MS = 1000;\n\n appVersion = signal<string>('-');\n binaryVersionGroup = signal<string>('-');\n buildVersion = signal<string>('-');\n lastErrorReason = this.appStore.selectSignal(updCheck.selectLastErrorReason);\n hasStarted = signal<boolean>(false);\n hasNavigatedAway = signal<boolean>(false);\n liveBundle = signal<string>('-');\n liveUpdateChannel = signal<string>('-');\n status = this.appStore.selectSignal(updCheck.selectStatus);\n private closeTimerId: ReturnType<typeof setTimeout> | null = null;\n faCircleCheck = faCircleCheck;\n faCircleExclamation = faCircleExclamation;\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextUpdateErrorReason = spxTextUpdateErrorReason;\n spxTextUpdateAppVersion = spxTextUpdateAppVersion;\n spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;\n spxTextUpdateBuildVersion = spxTextUpdateBuildVersion;\n spxTextUpdateLiveBundle = spxTextUpdateLiveBundle;\n spxTextUpdateLiveChannel = spxTextUpdateLiveChannel;\n spxTextUpdateStatus = spxTextUpdateStatus;\n spxTextUpdateVersionInfo = spxTextUpdateVersionInfo;\n isRunningStatus = computed(() => {\n const status = this.status();\n return status === SpxUpdateCheckStatusEnum.idle ||\n status === SpxUpdateCheckStatusEnum.preparing ||\n status === SpxUpdateCheckStatusEnum.syncing ||\n status === SpxUpdateCheckStatusEnum.reloading;\n });\n isSuccessStatus = computed(() => {\n const status = this.status();\n return status === SpxUpdateCheckStatusEnum.upToDate ||\n status === SpxUpdateCheckStatusEnum.updateReady;\n });\n isErrorStatus = computed(() => {\n const status = this.status();\n return status === SpxUpdateCheckStatusEnum.failed ||\n status === SpxUpdateCheckStatusEnum.notAvailableOnWeb;\n });\n statusText = computed(() => {\n switch (this.status()) {\n case SpxUpdateCheckStatusEnum.idle:\n return spxTextUpdateStatusPreparing;\n case SpxUpdateCheckStatusEnum.preparing:\n return spxTextUpdateStatusPreparing;\n case SpxUpdateCheckStatusEnum.syncing:\n return spxTextUpdateStatusSyncing;\n case SpxUpdateCheckStatusEnum.reloading:\n return spxTextUpdateStatusReloading;\n case SpxUpdateCheckStatusEnum.upToDate:\n return spxTextUpdateStatusUpToDate;\n case SpxUpdateCheckStatusEnum.updateReady:\n return spxTextUpdateStatusUpdateReady;\n case SpxUpdateCheckStatusEnum.failed:\n return spxTextUpdateStatusFailed;\n case SpxUpdateCheckStatusEnum.notAvailableOnWeb:\n return spxTextUpdateStatusWebNotAvailable;\n default:\n return spxTextUpdateStatusCompleted;\n }\n });\n\n ngOnInit() {\n this.hasStarted.set(true);\n void this.loadVersionInfo();\n this.appStore.dispatch(spxUpdateCheckActions.runCheck({ forceWaitForUpdate: true }));\n }\n\n ngOnDestroy() {\n this.clearScheduledClose();\n }\n\n constructor(\n private readonly appStore: Store,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navController: NavController,\n ) {\n effect(() => {\n this.status();\n this.refreshStorageVersionInfo();\n });\n\n effect(() => {\n const status = this.status();\n if (!this.hasStarted() || this.hasNavigatedAway()) {\n return;\n }\n if (!this.shouldCloseUpdatePage(status)) {\n this.clearScheduledClose();\n return;\n }\n const targetUrl = this.activatedRoute.snapshot.data['url'];\n if (targetUrl === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n return;\n }\n\n const closeDelayMs = this.getCloseDelayMs(status);\n if (closeDelayMs === 0) {\n this.clearScheduledClose();\n this.navigateAway(targetUrl);\n return;\n }\n\n if (this.closeTimerId !== null) {\n return;\n }\n\n this.closeTimerId = setTimeout(() => {\n this.closeTimerId = null;\n this.navigateAway(targetUrl);\n }, closeDelayMs);\n });\n }\n\n private shouldCloseUpdatePage(status: SpxUpdateCheckStatusEnum): boolean {\n return status === SpxUpdateCheckStatusEnum.upToDate ||\n status === SpxUpdateCheckStatusEnum.failed ||\n status === SpxUpdateCheckStatusEnum.notAvailableOnWeb ||\n status === SpxUpdateCheckStatusEnum.updateReady;\n }\n\n private getCloseDelayMs(status: SpxUpdateCheckStatusEnum): number {\n if (status === SpxUpdateCheckStatusEnum.upToDate || status === SpxUpdateCheckStatusEnum.updateReady) {\n return SpxUpdatePageComponent.SUCCESS_CLOSE_DELAY_MS;\n }\n return 0;\n }\n\n private clearScheduledClose(): void {\n if (this.closeTimerId === null) {\n return;\n }\n clearTimeout(this.closeTimerId);\n this.closeTimerId = null;\n }\n\n private navigateAway(targetUrl: string): void {\n if (this.hasNavigatedAway()) {\n return;\n }\n this.hasNavigatedAway.set(true);\n this.navController.navigateRoot(targetUrl);\n }\n\n private async loadVersionInfo(): Promise<void> {\n const appInfo = await App.getInfo();\n const appVersion = appInfo.version || '-';\n this.appVersion.set(appVersion);\n this.buildVersion.set(appInfo.build || '-');\n\n try {\n const computedBinaryVersionGroup = `${getBinaryVersionGroup(appVersion)}.x`;\n const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);\n this.binaryVersionGroup.set(storedBinaryVersionGroup || computedBinaryVersionGroup);\n\n const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n const channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType) || SpxAppChannelTypeEnum.production;\n this.liveUpdateChannel.set(storedLiveUpdateChannel || `${channelType}-${computedBinaryVersionGroup}`);\n } catch {\n this.binaryVersionGroup.set(SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup) || '-');\n this.liveUpdateChannel.set(SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel) || '-');\n }\n\n this.refreshStorageVersionInfo();\n }\n\n private refreshStorageVersionInfo(): void {\n const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);\n const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n const storedLiveBundle = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdate);\n\n if (storedBinaryVersionGroup) {\n this.binaryVersionGroup.set(storedBinaryVersionGroup);\n }\n if (storedLiveUpdateChannel) {\n this.liveUpdateChannel.set(storedLiveUpdateChannel);\n }\n this.liveBundle.set(storedLiveBundle || '-');\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 update-page\">\n <div class=\"update-shell mx-auto grid max-w-[40rem] gap-4 py-2 pb-4\">\n <section\n class=\"status-card grid gap-2 rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\"\n [attr.data-status]=\"status()\">\n <div\n class=\"status-visual\"\n [class.is-running]=\"isRunningStatus()\"\n [class.is-success]=\"isSuccessStatus()\"\n [class.is-error]=\"isErrorStatus()\"\n aria-hidden=\"true\">\n <span class=\"status-orbit status-orbit--outer\"></span>\n <span class=\"status-orbit status-orbit--inner\"></span>\n <span class=\"status-core\"></span>\n\n @if (isSuccessStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleCheck\"></fa-icon>\n }\n @if (isErrorStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleExclamation\"></fa-icon>\n }\n </div>\n\n <p class=\"status-label m-0 text-[0.76rem] font-bold uppercase tracking-[0.08em] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value m-[0.35rem_0_0] text-[1.15rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error mt-[0.85rem] leading-[1.35] text-[color:var(--ion-color-danger,#eb445a)]\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n </section>\n\n <section class=\"details-card rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\">\n <h2 class=\"m-0 text-[0.95rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid mt-[0.9rem] grid gap-[0.65rem]\">\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row last:border-b-0 last:pb-0 flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n","import { createActionGroup, emptyProps } from '@ngrx/store';\n\nexport const SpxUpdatePendingActions = createActionGroup({\n source: 'SpxUpdatePending',\n events: {\n AcceptUpdate: emptyProps(),\n HasBeenDownloaded: emptyProps(),\n HasBeenInstalled: emptyProps(),\n Postpone: emptyProps(),\n PostponeExpired: emptyProps(),\n },\n});\n","import { StateI } from \"./spx-update-pending.state\";\n\nexport const initialState: StateI = {\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { SpxUpdatePendingActions } from './spx-update-pending.actions';\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(SpxUpdatePendingActions.hasBeenDownloaded, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n updateIsDownloadedAndPending: true,\n };\n }),\n on(SpxUpdatePendingActions.hasBeenInstalled, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n };\n }),\n on(SpxUpdatePendingActions.postpone, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n };\n }),\n on(SpxUpdatePendingActions.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 { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { SpxSeverityEnum, unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextUpdate, spxTextUpdateAvailable } from '@softpak/components/spx-translate';\n\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { SpxUpdatePendingActions } from './public-api';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { default as updPending } from './store/spx-update-pending/spx-update-pending.reducer';\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(SpxUpdatePendingActions.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 { Injectable, inject } from '@angular/core';\nimport { LiveUpdate, SyncResult } from '@capawesome/capacitor-live-update';\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\nimport { Observable, concat, from, of, timer } from 'rxjs';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { catchError, delay, exhaustMap, map, mergeMap } from 'rxjs/operators';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxUpdatePendingActions } from '../spx-update-pending/spx-update-pending.actions';\nimport { TranslateService } from '@ngx-translate/core';\nimport { captureMessage } from '@sentry/angular';\nimport { spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason } from '@softpak/components/spx-translate';\nimport { spxUpdateCheckActions } from './spx-update-check.actions';\n\nconst capAwesomeVersionNumberPropertyKey = 'versionnumber';\ntype BundleVersionNumberMap = Record<string, string>;\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly translateService = inject(TranslateService);\n\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.initialize),\n delay(120000),\n mergeMap(() => [\n spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),\n ]))\n );\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.runCheck),\n exhaustMap((action) => {\n if (Capacitor.getPlatform() === 'web') {\n return of(spxUpdateCheckActions.notAvailableOnWeb());\n }\n return concat(\n of(spxUpdateCheckActions.syncStarted()),\n from(App.getInfo()).pipe(\n mergeMap((binaryInfo) => {\n // Migrate from e.g. 1.2.x to 1.3.x\n const binaryVersionGroup = getBinaryVersionGroup(binaryInfo.version);\n const channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType);\n\n if (SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup)) {\n SpxStorage.setSetting(SpxStorageKeyEnum.lastBinaryVersionGroup, SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup)!);\n }\n\n SpxStorage.setSetting(SpxStorageKeyEnum.binaryVersionGroup, `${binaryVersionGroup}.x`);\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdateChannel, `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`);\n // End migrate from e.g. 1.2.x to 1.3.x\n\n const channel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel)!;\n return from(Promise.all([\n LiveUpdate.getCurrentBundle(),\n LiveUpdate.fetchLatestBundle({ channel }),\n LiveUpdate.sync({ channel }),\n ]));\n }),\n mergeMap(([currentBundleResult, latestBundleResult, syncResult]: [\n Awaited<ReturnType<typeof LiveUpdate.getCurrentBundle>>,\n Awaited<ReturnType<typeof LiveUpdate.fetchLatestBundle>>,\n SyncResult,\n ]) => {\n const capAwesomeVersionNumber = latestBundleResult.customProperties?.[capAwesomeVersionNumberPropertyKey];\n const bundleVersionNumbers = this.getBundleVersionNumbers();\n\n if (latestBundleResult.bundleId && capAwesomeVersionNumber) {\n bundleVersionNumbers[latestBundleResult.bundleId] = capAwesomeVersionNumber;\n this.setBundleVersionNumbers(bundleVersionNumbers);\n }\n\n const previousBundleVersionNumber = this.getBundleVersionNumber(\n bundleVersionNumbers,\n currentBundleResult.bundleId,\n currentBundleResult.bundleId === latestBundleResult.bundleId ? capAwesomeVersionNumber : undefined,\n );\n const nextBundleVersionNumber = this.getBundleVersionNumber(\n bundleVersionNumbers,\n syncResult.nextBundleId,\n syncResult.nextBundleId === latestBundleResult.bundleId ? capAwesomeVersionNumber : undefined,\n );\n\n if (previousBundleVersionNumber) {\n SpxStorage.setSetting(SpxStorageKeyEnum.capAwesomeVersionNumber, previousBundleVersionNumber);\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.capAwesomeVersionNumber);\n }\n\n if (nextBundleVersionNumber) {\n SpxStorage.setSetting(SpxStorageKeyEnum.capAwesomeNextVersionNumber, nextBundleVersionNumber);\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.capAwesomeNextVersionNumber);\n }\n\n if (syncResult.nextBundleId) {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdate, syncResult.nextBundleId as string);\n if (action.forceWaitForUpdate) {\n return concat(\n of(spxUpdateCheckActions.reloadStarted()),\n from(LiveUpdate.reload()).pipe(\n map(() => spxUpdateCheckActions.anUpdateIsReady()),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`[UPD] Reload failed: ${errorReason}`);\n return of(spxUpdateCheckActions.checkFailed({\n errorReason,\n startUpdateAgainAfterTimeout: false,\n }));\n }),\n ),\n );\n }\n return of(spxUpdateCheckActions.anUpdateIsReady());\n } else {\n return of(spxUpdateCheckActions.noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }));\n }\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n if (this.isSyncAlreadyInProgress(errorReason)) {\n return timer(1500).pipe(\n map(() => spxUpdateCheckActions.runCheck({ forceWaitForUpdate: !!action.forceWaitForUpdate })),\n );\n }\n captureMessage(`[UPD] Handled: ${errorReason}`);\n return of(spxUpdateCheckActions.checkFailed({\n errorReason,\n startUpdateAgainAfterTimeout: false,\n }));\n })\n )\n );\n }),\n ));\n\n whenAndUpdateIsReady$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.anUpdateIsReady),\n mergeMap(() => [\n SpxUpdatePendingActions.hasBeenDownloaded(),\n ]))\n );\n\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.checkFailed),\n delay(30000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),\n ]))\n );\n\n whenCheckHasFailedShowError$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.checkFailed),\n map((action) => spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.errorReason\n ? this.translateService.instant(spxTextLiveUpdateCheckFailedWithReason, { reason: action.errorReason })\n : this.translateService.instant(spxTextLiveUpdateCheckFailed),\n })),\n ));\n\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.noUpdateWasFound),\n delay(120000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),\n ]))\n );\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n\n private isSyncAlreadyInProgress(errorReason: string): boolean {\n const normalized = errorReason.toLowerCase();\n return normalized.includes('sync is already in progress');\n }\n\n private getBundleVersionNumbers(): BundleVersionNumberMap {\n const serialized = SpxStorage.getSetting(SpxStorageKeyEnum.capAwesomeBundleVersionNumbers);\n if (!serialized) {\n return {};\n }\n try {\n const parsed = JSON.parse(serialized);\n return parsed && typeof parsed === 'object' ? parsed as BundleVersionNumberMap : {};\n } catch {\n return {};\n }\n }\n\n private setBundleVersionNumbers(bundleVersionNumbers: BundleVersionNumberMap): void {\n SpxStorage.setSetting(\n SpxStorageKeyEnum.capAwesomeBundleVersionNumbers,\n JSON.stringify(bundleVersionNumbers),\n );\n }\n\n private getBundleVersionNumber(\n bundleVersionNumbers: BundleVersionNumberMap,\n bundleId: string | null,\n fallback?: string,\n ): string | null {\n if (!bundleId) {\n return null;\n }\n return bundleVersionNumbers[bundleId] ?? fallback ?? null;\n }\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { Injectable, inject } from '@angular/core';\nimport { LiveUpdate } from \"@capawesome/capacitor-live-update\";\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\nimport { SpxUpdatePendingActions } from './spx-update-pending.actions';\nimport { Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { captureMessage } from '@sentry/angular';\nimport { spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason } from '@softpak/components/spx-translate';\nimport { tap } from 'rxjs/operators';\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly appStore = inject(Store);\n private readonly translateService = inject(TranslateService);\n\n whenAccepted$ = createEffect(() => this.actions$.pipe(\n ofType(SpxUpdatePendingActions.acceptUpdate),\n tap(() => {\n void LiveUpdate.reload().catch((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`[UPD] Accept reload failed: ${errorReason}`);\n this.appStore.dispatch(spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateCheckFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateCheckFailed),\n }));\n });\n }),\n ), { dispatch: false });\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["initialState","i2","Effects"],"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.state.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 { createActionGroup, emptyProps, props } from '@ngrx/store';\n\nexport const spxUpdateCheckActions = createActionGroup({\n source: 'SpxUpdateCheck',\n events: {\n anUpdateIsReady: emptyProps(),\n checkFailed: props<{ errorReason?: string; startUpdateAgainAfterTimeout?: boolean; }>(),\n clearError: emptyProps(),\n initialize: emptyProps(),\n noUpdateWasFound: props<{ startUpdateAgainAfterTimeout?: boolean; }>(),\n notAvailableOnWeb: emptyProps(),\n reloadStarted: emptyProps(),\n runCheck: props<{ forceWaitForUpdate?: boolean }>(),\n syncStarted: emptyProps(),\n },\n});\n","export enum SpxUpdateCheckStatusEnum {\n failed = 'failed',\n idle = 'idle',\n notAvailableOnWeb = 'notAvailableOnWeb',\n preparing = 'preparing',\n reloading = 'reloading',\n syncing = 'syncing',\n upToDate = 'upToDate',\n updateReady = 'updateReady',\n}\n\nexport interface StateI {\n forceWaitForUpdate: boolean;\n lastErrorReason: string | null;\n lastCheck: string | null;\n showError: boolean;\n status: SpxUpdateCheckStatusEnum;\n}\n","import { SpxUpdateCheckStatusEnum, StateI } from \"./spx-update-check.state\";\n\nexport const initialState: StateI = {\n forceWaitForUpdate: false,\n lastErrorReason: null,\n lastCheck: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.idle,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { DateTime } from 'luxon';\nimport { SpxUpdateCheckStatusEnum, StateI } from './spx-update-check.state';\nimport { initialState } from './spx-update-check.initial';\nimport { spxUpdateCheckActions } from './spx-update-check.actions';\n\nexport default createFeature({\n name: 'spxUpdateCheck',\n reducer: createReducer(\n initialState,\n on(spxUpdateCheckActions.anUpdateIsReady, (state: StateI): StateI => {\n return {\n ...state,\n lastCheck: DateTime.now().toISO(),\n lastErrorReason: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.updateReady,\n };\n }),\n on(spxUpdateCheckActions.clearError, (state: StateI): StateI => {\n return {\n ...state,\n lastErrorReason: null,\n showError: false,\n };\n }),\n on(spxUpdateCheckActions.checkFailed, (state: StateI, { errorReason }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastErrorReason: errorReason || null,\n showError: true,\n status: SpxUpdateCheckStatusEnum.failed,\n };\n }),\n on(spxUpdateCheckActions.noUpdateWasFound, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastCheck: DateTime.now().toISO(),\n lastErrorReason: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.upToDate,\n };\n }),\n on(spxUpdateCheckActions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: typeof forceWaitForUpdate === 'boolean' ? forceWaitForUpdate : state.forceWaitForUpdate,\n lastErrorReason: null,\n showError: false,\n status: SpxUpdateCheckStatusEnum.preparing,\n };\n }),\n on(spxUpdateCheckActions.syncStarted, (state: StateI): StateI => {\n return {\n ...state,\n status: SpxUpdateCheckStatusEnum.syncing,\n };\n }),\n on(spxUpdateCheckActions.reloadStarted, (state: StateI): StateI => {\n return {\n ...state,\n status: SpxUpdateCheckStatusEnum.reloading,\n };\n }),\n on(spxUpdateCheckActions.notAvailableOnWeb, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n status: SpxUpdateCheckStatusEnum.notAvailableOnWeb,\n };\n }),\n ),\n});\n","import { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\nimport {\n spxTextCheckingForUpdates,\n spxTextUpdateErrorReason,\n spxTextUpdateAppVersion,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateCurrentVersionNumber,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateNextVersionNumber,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusReloading,\n spxTextUpdateStatusSyncing,\n spxTextUpdateStatusUpdateReady,\n spxTextUpdateStatusUpToDate,\n spxTextUpdateStatusWebNotAvailable,\n spxTextUpdateVersionInfo\n} from '@softpak/components/spx-translate';\n\nimport { ActivatedRoute } from '@angular/router';\nimport { App } from '@capacitor/app';\nimport { Component, computed, effect, signal } from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faCircleCheck, faCircleExclamation } from '@fortawesome/free-solid-svg-icons';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { Store } from '@ngrx/store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { spxUpdateCheckActions } from './store/spx-update-check/spx-update-check.actions';\nimport { SpxUpdateCheckStatusEnum } from './store/spx-update-check/spx-update-check.state';\nimport { default as updCheck } from './store/spx-update-check/spx-update-check.reducer';\n\n@Component({\n selector: 'spx-update-page',\n imports: [\n IonContent,\n IonHeader,\n IonToolbar,\n IonTitle,\n FaIconComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n styleUrls: [`./spx-update-page.component.scss`],\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n private static readonly SUCCESS_CLOSE_DELAY_MS = 1000;\n\n appVersion = signal<string>('-');\n binaryVersionGroup = signal<string>('-');\n buildVersion = signal<string>('-');\n currentVersionNumber = signal<string>('-');\n lastErrorReason = this.appStore.selectSignal(updCheck.selectLastErrorReason);\n hasStarted = signal<boolean>(false);\n hasNavigatedAway = signal<boolean>(false);\n liveBundle = signal<string>('-');\n liveUpdateChannel = signal<string>('-');\n nextVersionNumber = signal<string>('-');\n status = this.appStore.selectSignal(updCheck.selectStatus);\n private closeTimerId: ReturnType<typeof setTimeout> | null = null;\n faCircleCheck = faCircleCheck;\n faCircleExclamation = faCircleExclamation;\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextUpdateErrorReason = spxTextUpdateErrorReason;\n spxTextUpdateAppVersion = spxTextUpdateAppVersion;\n spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;\n spxTextUpdateBuildVersion = spxTextUpdateBuildVersion;\n spxTextUpdateCurrentVersionNumber = spxTextUpdateCurrentVersionNumber;\n spxTextUpdateLiveBundle = spxTextUpdateLiveBundle;\n spxTextUpdateLiveChannel = spxTextUpdateLiveChannel;\n spxTextUpdateNextVersionNumber = spxTextUpdateNextVersionNumber;\n spxTextUpdateStatus = spxTextUpdateStatus;\n spxTextUpdateVersionInfo = spxTextUpdateVersionInfo;\n isRunningStatus = computed(() => {\n const status = this.status();\n return status === SpxUpdateCheckStatusEnum.idle ||\n status === SpxUpdateCheckStatusEnum.preparing ||\n status === SpxUpdateCheckStatusEnum.syncing ||\n status === SpxUpdateCheckStatusEnum.reloading;\n });\n isSuccessStatus = computed(() => {\n const status = this.status();\n return status === SpxUpdateCheckStatusEnum.upToDate ||\n status === SpxUpdateCheckStatusEnum.updateReady;\n });\n isErrorStatus = computed(() => {\n const status = this.status();\n return status === SpxUpdateCheckStatusEnum.failed ||\n status === SpxUpdateCheckStatusEnum.notAvailableOnWeb;\n });\n statusText = computed(() => {\n switch (this.status()) {\n case SpxUpdateCheckStatusEnum.idle:\n return spxTextUpdateStatusPreparing;\n case SpxUpdateCheckStatusEnum.preparing:\n return spxTextUpdateStatusPreparing;\n case SpxUpdateCheckStatusEnum.syncing:\n return spxTextUpdateStatusSyncing;\n case SpxUpdateCheckStatusEnum.reloading:\n return spxTextUpdateStatusReloading;\n case SpxUpdateCheckStatusEnum.upToDate:\n return spxTextUpdateStatusUpToDate;\n case SpxUpdateCheckStatusEnum.updateReady:\n return spxTextUpdateStatusUpdateReady;\n case SpxUpdateCheckStatusEnum.failed:\n return spxTextUpdateStatusFailed;\n case SpxUpdateCheckStatusEnum.notAvailableOnWeb:\n return spxTextUpdateStatusWebNotAvailable;\n default:\n return spxTextUpdateStatusCompleted;\n }\n });\n\n ngOnInit() {\n this.hasStarted.set(true);\n void this.loadVersionInfo();\n this.appStore.dispatch(spxUpdateCheckActions.runCheck({ forceWaitForUpdate: true }));\n }\n\n ngOnDestroy() {\n this.clearScheduledClose();\n }\n\n constructor(\n private readonly appStore: Store,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navController: NavController,\n ) {\n effect(() => {\n this.status();\n this.refreshStorageVersionInfo();\n });\n\n effect(() => {\n const status = this.status();\n if (!this.hasStarted() || this.hasNavigatedAway()) {\n return;\n }\n if (!this.shouldCloseUpdatePage(status)) {\n this.clearScheduledClose();\n return;\n }\n const targetUrl = this.activatedRoute.snapshot.data['url'];\n if (targetUrl === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n return;\n }\n\n const closeDelayMs = this.getCloseDelayMs(status);\n if (closeDelayMs === 0) {\n this.clearScheduledClose();\n this.navigateAway(targetUrl);\n return;\n }\n\n if (this.closeTimerId !== null) {\n return;\n }\n\n this.closeTimerId = setTimeout(() => {\n this.closeTimerId = null;\n this.navigateAway(targetUrl);\n }, closeDelayMs);\n });\n }\n\n private shouldCloseUpdatePage(status: SpxUpdateCheckStatusEnum): boolean {\n return status === SpxUpdateCheckStatusEnum.upToDate ||\n status === SpxUpdateCheckStatusEnum.failed ||\n status === SpxUpdateCheckStatusEnum.notAvailableOnWeb ||\n status === SpxUpdateCheckStatusEnum.updateReady;\n }\n\n private getCloseDelayMs(status: SpxUpdateCheckStatusEnum): number {\n if (status === SpxUpdateCheckStatusEnum.upToDate || status === SpxUpdateCheckStatusEnum.updateReady) {\n return SpxUpdatePageComponent.SUCCESS_CLOSE_DELAY_MS;\n }\n return 0;\n }\n\n private clearScheduledClose(): void {\n if (this.closeTimerId === null) {\n return;\n }\n clearTimeout(this.closeTimerId);\n this.closeTimerId = null;\n }\n\n private navigateAway(targetUrl: string): void {\n if (this.hasNavigatedAway()) {\n return;\n }\n this.hasNavigatedAway.set(true);\n this.navController.navigateRoot(targetUrl);\n }\n\n private async loadVersionInfo(): Promise<void> {\n const appInfo = await App.getInfo();\n const appVersion = appInfo.version || '-';\n this.appVersion.set(appVersion);\n this.buildVersion.set(appInfo.build || '-');\n\n try {\n const computedBinaryVersionGroup = `${getBinaryVersionGroup(appVersion)}.x`;\n const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);\n this.binaryVersionGroup.set(storedBinaryVersionGroup || computedBinaryVersionGroup);\n\n const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n const channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType) || SpxAppChannelTypeEnum.production;\n this.liveUpdateChannel.set(storedLiveUpdateChannel || `${channelType}-${computedBinaryVersionGroup}`);\n } catch {\n this.binaryVersionGroup.set(SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup) || '-');\n this.liveUpdateChannel.set(SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel) || '-');\n }\n\n this.refreshStorageVersionInfo();\n }\n\n private refreshStorageVersionInfo(): void {\n const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);\n const storedCurrentVersionNumber = SpxStorage.getSetting(SpxStorageKeyEnum.capAwesomeVersionNumber);\n const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n const storedLiveBundle = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdate);\n const storedNextVersionNumber = SpxStorage.getSetting(SpxStorageKeyEnum.capAwesomeNextVersionNumber);\n\n if (storedBinaryVersionGroup) {\n this.binaryVersionGroup.set(storedBinaryVersionGroup);\n }\n this.currentVersionNumber.set(storedCurrentVersionNumber || '-');\n if (storedLiveUpdateChannel) {\n this.liveUpdateChannel.set(storedLiveUpdateChannel);\n }\n this.liveBundle.set(storedLiveBundle || '-');\n this.nextVersionNumber.set(storedNextVersionNumber || '-');\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 update-page\">\n <div class=\"update-shell mx-auto grid max-w-[40rem] gap-4 py-2 pb-4\">\n <section\n class=\"status-card grid gap-2 rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\"\n [attr.data-status]=\"status()\">\n <div\n class=\"status-visual\"\n [class.is-running]=\"isRunningStatus()\"\n [class.is-success]=\"isSuccessStatus()\"\n [class.is-error]=\"isErrorStatus()\"\n aria-hidden=\"true\">\n <span class=\"status-orbit status-orbit--outer\"></span>\n <span class=\"status-orbit status-orbit--inner\"></span>\n <span class=\"status-core\"></span>\n\n @if (isSuccessStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleCheck\"></fa-icon>\n }\n @if (isErrorStatus()) {\n <fa-icon class=\"status-icon\" [icon]=\"faCircleExclamation\"></fa-icon>\n }\n </div>\n\n <p class=\"status-label m-0 text-[0.76rem] font-bold uppercase tracking-[0.08em] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value m-[0.35rem_0_0] text-[1.15rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error mt-[0.85rem] leading-[1.35] text-[color:var(--ion-color-danger,#eb445a)]\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n </section>\n\n <section class=\"details-card rounded-2xl border border-[color:var(--spx-update-border-color)] bg-[var(--spx-update-surface-color)] p-4\">\n <h2 class=\"m-0 text-[0.95rem] font-bold text-[color:var(--spx-update-text-color)]\">{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid mt-[0.9rem] grid gap-[0.65rem]\">\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateCurrentVersionNumber | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ currentVersionNumber() }}</dd>\n </div>\n <div class=\"detail-row flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateNextVersionNumber | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ nextVersionNumber() }}</dd>\n </div>\n <div class=\"detail-row last:border-b-0 last:pb-0 flex flex-col items-start gap-[0.2rem] border-b border-dashed border-[color:var(--spx-update-border-color)] pb-[0.45rem] min-[481px]:flex-row min-[481px]:items-baseline min-[481px]:justify-between min-[481px]:gap-4\">\n <dt class=\"m-0 text-[0.86rem] text-[color:var(--spx-update-muted-color)]\">{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd class=\"m-0 break-words text-left text-[0.86rem] font-semibold text-[color:var(--spx-update-text-color)] min-[481px]:text-right\">{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n","import { createActionGroup, emptyProps } from '@ngrx/store';\n\nexport const SpxUpdatePendingActions = createActionGroup({\n source: 'SpxUpdatePending',\n events: {\n AcceptUpdate: emptyProps(),\n HasBeenDownloaded: emptyProps(),\n HasBeenInstalled: emptyProps(),\n Postpone: emptyProps(),\n PostponeExpired: emptyProps(),\n },\n});\n","import { StateI } from \"./spx-update-pending.state\";\n\nexport const initialState: StateI = {\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { SpxUpdatePendingActions } from './spx-update-pending.actions';\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(SpxUpdatePendingActions.hasBeenDownloaded, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: true,\n updateIsDownloadedAndPending: true,\n };\n }),\n on(SpxUpdatePendingActions.hasBeenInstalled, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n updateIsDownloadedAndPending: false,\n };\n }),\n on(SpxUpdatePendingActions.postpone, (state: StateI): StateI => {\n return {\n ...state,\n showLiveUpdateReady: false,\n };\n }),\n on(SpxUpdatePendingActions.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 { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { SpxSeverityEnum, unsubscribeSubscriptions } from '@softpak/components/spx-helpers';\nimport { spxTextOpenAppStore, spxTextPatchAvailable, spxTextReadyToBeInstalled, spxTextUpdate, spxTextUpdateAvailable } from '@softpak/components/spx-translate';\n\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { SpxUpdatePendingActions } from './public-api';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { default as updPending } from './store/spx-update-pending/spx-update-pending.reducer';\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(SpxUpdatePendingActions.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 { Injectable, inject } from '@angular/core';\nimport { LiveUpdate, SyncResult } from '@capawesome/capacitor-live-update';\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\nimport { Observable, concat, from, of, timer } from 'rxjs';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { catchError, delay, exhaustMap, map, mergeMap } from 'rxjs/operators';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxUpdatePendingActions } from '../spx-update-pending/spx-update-pending.actions';\nimport { TranslateService } from '@ngx-translate/core';\nimport { captureMessage } from '@sentry/angular';\nimport { spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason } from '@softpak/components/spx-translate';\nimport { spxUpdateCheckActions } from './spx-update-check.actions';\n\nconst capAwesomeVersionNumberPropertyKey = 'versionnumber';\ntype BundleVersionNumberMap = Record<string, string>;\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly translateService = inject(TranslateService);\n\n afterInitialize$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.initialize),\n delay(120000),\n mergeMap(() => [\n spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),\n ]))\n );\n onRun$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.runCheck),\n exhaustMap((action) => {\n if (Capacitor.getPlatform() === 'web') {\n return of(spxUpdateCheckActions.notAvailableOnWeb());\n }\n return concat(\n of(spxUpdateCheckActions.syncStarted()),\n from(App.getInfo()).pipe(\n mergeMap((binaryInfo) => {\n // Migrate from e.g. 1.2.x to 1.3.x\n const binaryVersionGroup = getBinaryVersionGroup(binaryInfo.version);\n const channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType);\n\n if (SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup)) {\n SpxStorage.setSetting(SpxStorageKeyEnum.lastBinaryVersionGroup, SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup)!);\n }\n\n SpxStorage.setSetting(SpxStorageKeyEnum.binaryVersionGroup, `${binaryVersionGroup}.x`);\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdateChannel, `${channelType ? channelType : SpxAppChannelTypeEnum.production}-${binaryVersionGroup}.x`);\n // End migrate from e.g. 1.2.x to 1.3.x\n\n const channel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel)!;\n return from(Promise.all([\n LiveUpdate.getCurrentBundle(),\n LiveUpdate.fetchLatestBundle({ channel }),\n LiveUpdate.sync({ channel }),\n ]));\n }),\n mergeMap(([currentBundleResult, latestBundleResult, syncResult]: [\n Awaited<ReturnType<typeof LiveUpdate.getCurrentBundle>>,\n Awaited<ReturnType<typeof LiveUpdate.fetchLatestBundle>>,\n SyncResult,\n ]) => {\n const capAwesomeVersionNumber = latestBundleResult.customProperties?.[capAwesomeVersionNumberPropertyKey];\n const bundleVersionNumbers = this.getBundleVersionNumbers();\n\n if (latestBundleResult.bundleId && capAwesomeVersionNumber) {\n bundleVersionNumbers[latestBundleResult.bundleId] = capAwesomeVersionNumber;\n this.setBundleVersionNumbers(bundleVersionNumbers);\n }\n\n const previousBundleVersionNumber = this.getBundleVersionNumber(\n bundleVersionNumbers,\n currentBundleResult.bundleId,\n currentBundleResult.bundleId === latestBundleResult.bundleId ? capAwesomeVersionNumber : undefined,\n );\n const nextBundleVersionNumber = this.getBundleVersionNumber(\n bundleVersionNumbers,\n syncResult.nextBundleId,\n syncResult.nextBundleId === latestBundleResult.bundleId ? capAwesomeVersionNumber : undefined,\n );\n\n if (previousBundleVersionNumber) {\n SpxStorage.setSetting(SpxStorageKeyEnum.capAwesomeVersionNumber, previousBundleVersionNumber);\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.capAwesomeVersionNumber);\n }\n\n if (nextBundleVersionNumber) {\n SpxStorage.setSetting(SpxStorageKeyEnum.capAwesomeNextVersionNumber, nextBundleVersionNumber);\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.capAwesomeNextVersionNumber);\n }\n\n if (syncResult.nextBundleId) {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdate, syncResult.nextBundleId as string);\n if (action.forceWaitForUpdate) {\n return concat(\n of(spxUpdateCheckActions.reloadStarted()),\n from(LiveUpdate.reload()).pipe(\n map(() => spxUpdateCheckActions.anUpdateIsReady()),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`[UPD] Reload failed: ${errorReason}`);\n return of(spxUpdateCheckActions.checkFailed({\n errorReason,\n startUpdateAgainAfterTimeout: false,\n }));\n }),\n ),\n );\n }\n return of(spxUpdateCheckActions.anUpdateIsReady());\n } else {\n return of(spxUpdateCheckActions.noUpdateWasFound({ startUpdateAgainAfterTimeout: !action.forceWaitForUpdate }));\n }\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n if (this.isSyncAlreadyInProgress(errorReason)) {\n return timer(1500).pipe(\n map(() => spxUpdateCheckActions.runCheck({ forceWaitForUpdate: !!action.forceWaitForUpdate })),\n );\n }\n captureMessage(`[UPD] Handled: ${errorReason}`);\n return of(spxUpdateCheckActions.checkFailed({\n errorReason,\n startUpdateAgainAfterTimeout: false,\n }));\n })\n )\n );\n }),\n ));\n\n whenAndUpdateIsReady$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.anUpdateIsReady),\n mergeMap(() => [\n SpxUpdatePendingActions.hasBeenDownloaded(),\n ]))\n );\n\n whenCheckHasFailed$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.checkFailed),\n delay(30000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),\n ]))\n );\n\n whenCheckHasFailedShowError$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.checkFailed),\n map((action) => spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.errorReason\n ? this.translateService.instant(spxTextLiveUpdateCheckFailedWithReason, { reason: action.errorReason })\n : this.translateService.instant(spxTextLiveUpdateCheckFailed),\n })),\n ));\n\n whenNoUpdateWasFound$: Observable<any> = createEffect(() => this.actions$.pipe(\n ofType(spxUpdateCheckActions.noUpdateWasFound),\n delay(120000),\n mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [\n spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),\n ]))\n );\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n\n private isSyncAlreadyInProgress(errorReason: string): boolean {\n const normalized = errorReason.toLowerCase();\n return normalized.includes('sync is already in progress');\n }\n\n private getBundleVersionNumbers(): BundleVersionNumberMap {\n const serialized = SpxStorage.getSetting(SpxStorageKeyEnum.capAwesomeBundleVersionNumbers);\n if (!serialized) {\n return {};\n }\n try {\n const parsed = JSON.parse(serialized);\n return parsed && typeof parsed === 'object' ? parsed as BundleVersionNumberMap : {};\n } catch {\n return {};\n }\n }\n\n private setBundleVersionNumbers(bundleVersionNumbers: BundleVersionNumberMap): void {\n SpxStorage.setSetting(\n SpxStorageKeyEnum.capAwesomeBundleVersionNumbers,\n JSON.stringify(bundleVersionNumbers),\n );\n }\n\n private getBundleVersionNumber(\n bundleVersionNumbers: BundleVersionNumberMap,\n bundleId: string | null,\n fallback?: string,\n ): string | null {\n if (!bundleId) {\n return null;\n }\n return bundleVersionNumbers[bundleId] ?? fallback ?? null;\n }\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { Injectable, inject } from '@angular/core';\nimport { LiveUpdate } from \"@capawesome/capacitor-live-update\";\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\nimport { SpxUpdatePendingActions } from './spx-update-pending.actions';\nimport { Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { captureMessage } from '@sentry/angular';\nimport { spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason } from '@softpak/components/spx-translate';\nimport { tap } from 'rxjs/operators';\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly appStore = inject(Store);\n private readonly translateService = inject(TranslateService);\n\n whenAccepted$ = createEffect(() => this.actions$.pipe(\n ofType(SpxUpdatePendingActions.acceptUpdate),\n tap(() => {\n void LiveUpdate.reload().catch((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`[UPD] Accept reload failed: ${errorReason}`);\n this.appStore.dispatch(spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateCheckFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateCheckFailed),\n }));\n });\n }),\n ), { dispatch: false });\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["initialState","i2","Effects"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "21.2.5",
3
+ "version": "21.2.7",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "21.x.x",
@@ -44,9 +44,11 @@ declare const spxChannelActions: {
44
44
  chooseSucceeded: _ngrx_store.ActionCreator<"[SpxChannel] ChooseSucceeded", (props: {
45
45
  channel: SpxAppChannelI;
46
46
  channelType: SpxAppChannelTypeEnum;
47
+ shouldRunUpdateCheck?: boolean;
47
48
  }) => {
48
49
  channel: SpxAppChannelI;
49
50
  channelType: SpxAppChannelTypeEnum;
51
+ shouldRunUpdateCheck?: boolean;
50
52
  } & _ngrx_store.Action<"[SpxChannel] ChooseSucceeded">>;
51
53
  initialize: _ngrx_store.ActionCreator<"[SpxChannel] Initialize", (props: {
52
54
  channels: SpxAppChannelI[];
@@ -62,15 +64,16 @@ declare class Effects {
62
64
  onChoose$: rxjs.Observable<({
63
65
  channel: _softpak_components_spx_app_configuration.SpxAppChannelI;
64
66
  channelType: _softpak_components_spx_app_configuration.SpxAppChannelTypeEnum;
65
- } & _ngrx_store.Action<"[SpxChannel] ChooseFailed">) | ({
66
- channel: _softpak_components_spx_app_configuration.SpxAppChannelI;
67
- channelType: _softpak_components_spx_app_configuration.SpxAppChannelTypeEnum;
67
+ shouldRunUpdateCheck?: boolean;
68
68
  } & _ngrx_store.Action<"[SpxChannel] ChooseSucceeded">) | ({
69
69
  autoClose?: number | SpxToasterAutoCloseSpeedEnum;
70
70
  closeable?: boolean;
71
71
  messageText: string;
72
72
  title?: string;
73
73
  } & _ngrx_store.Action<"[SpxToaster] CreateSuccess">) | ({
74
+ channel: _softpak_components_spx_app_configuration.SpxAppChannelI;
75
+ channelType: _softpak_components_spx_app_configuration.SpxAppChannelTypeEnum;
76
+ } & _ngrx_store.Action<"[SpxChannel] ChooseFailed">) | ({
74
77
  autoClose?: number | SpxToasterAutoCloseSpeedEnum;
75
78
  closeable?: boolean;
76
79
  messageText: string;
@@ -79,6 +82,7 @@ declare class Effects {
79
82
  onChooseSucceededNavigate$: rxjs.Observable<{
80
83
  channel: _softpak_components_spx_app_configuration.SpxAppChannelI;
81
84
  channelType: _softpak_components_spx_app_configuration.SpxAppChannelTypeEnum;
85
+ shouldRunUpdateCheck?: boolean;
82
86
  } & _ngrx_store.Action<"[SpxChannel] ChooseSucceeded">> & _ngrx_effects.CreateEffectMetadata;
83
87
  private getReadableErrorReason;
84
88
  static ɵfac: i0.ɵɵFactoryDeclaration<Effects, never>;
@@ -34,9 +34,11 @@ declare const spxTextUpdateErrorReason = "spxTextUpdateErrorReason";
34
34
  declare const spxTextUpdateAppVersion = "spxTextUpdateAppVersion";
35
35
  declare const spxTextUpdateBinaryVersionGroup = "spxTextUpdateBinaryVersionGroup";
36
36
  declare const spxTextUpdateBuildVersion = "spxTextUpdateBuildVersion";
37
+ declare const spxTextUpdateCurrentVersionNumber = "spxTextUpdateCurrentVersionNumber";
37
38
  declare const spxTextUpdateLastCheck = "spxTextUpdateLastCheck";
38
39
  declare const spxTextUpdateLiveBundle = "spxTextUpdateLiveBundle";
39
40
  declare const spxTextUpdateLiveChannel = "spxTextUpdateLiveChannel";
41
+ declare const spxTextUpdateNextVersionNumber = "spxTextUpdateNextVersionNumber";
40
42
  declare const spxTextUpdateStatus = "spxTextUpdateStatus";
41
43
  declare const spxTextUpdateStatusCompleted = "spxTextUpdateStatusCompleted";
42
44
  declare const spxTextUpdateStatusFailed = "spxTextUpdateStatusFailed";
@@ -85,9 +87,11 @@ interface SpxTranslateI {
85
87
  [spxTextUpdateAppVersion]: string;
86
88
  [spxTextUpdateBinaryVersionGroup]: string;
87
89
  [spxTextUpdateBuildVersion]: string;
90
+ [spxTextUpdateCurrentVersionNumber]: string;
88
91
  [spxTextUpdateLastCheck]: string;
89
92
  [spxTextUpdateLiveBundle]: string;
90
93
  [spxTextUpdateLiveChannel]: string;
94
+ [spxTextUpdateNextVersionNumber]: string;
91
95
  [spxTextUpdateStatus]: string;
92
96
  [spxTextUpdateStatusCompleted]: string;
93
97
  [spxTextUpdateStatusFailed]: string;
@@ -104,5 +108,5 @@ declare const SpxTranslateEn: SpxTranslateI;
104
108
 
105
109
  declare const SpxTranslateNl: SpxTranslateI;
106
110
 
107
- export { SpxTranslateEn, SpxTranslateNl, spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextCompany, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextGoHome, spxTextInvalidCode, spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason, spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextPatternNotValid, spxTextReadyToBeInstalled, spxTextRequired, spxTextSelect, spxTextSelectYourCompany, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort, spxTextUpdate, spxTextUpdateAppVersion, spxTextUpdateAvailable, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateErrorReason, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateStatusCompleted, spxTextUpdateStatusFailed, spxTextUpdateStatusPreparing, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusUpToDate, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusWebNotAvailable, spxTextUpdateVersionInfo };
111
+ export { SpxTranslateEn, SpxTranslateNl, spxText404PageNotFound, spxTextChange, spxTextChannel, spxTextCheckingForUpdates, spxTextChooseFuture, spxTextChoosePast, spxTextChooseValidMonth, spxTextCompany, spxTextDateMayNotBeFuture, spxTextDateMayNotBePast, spxTextGoHome, spxTextInvalidCode, spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason, spxTextLiveUpdateCheckFailed, spxTextLiveUpdateCheckFailedWithReason, spxTextOneMomentPlease, spxTextOpenAppStore, spxTextPageNotFound, spxTextPageNotFoundDescription, spxTextPatchAvailable, spxTextPatternNotValid, spxTextReadyToBeInstalled, spxTextRequired, spxTextSelect, spxTextSelectYourCompany, spxTextTooHigh, spxTextTooLong, spxTextTooLow, spxTextTooShort, spxTextUpdate, spxTextUpdateAppVersion, spxTextUpdateAvailable, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateCurrentVersionNumber, spxTextUpdateErrorReason, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateNextVersionNumber, spxTextUpdateStatus, spxTextUpdateStatusCompleted, spxTextUpdateStatusFailed, spxTextUpdateStatusPreparing, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusUpToDate, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusWebNotAvailable, spxTextUpdateVersionInfo };
108
112
  export type { SpxTranslateI };
@@ -43,11 +43,13 @@ declare class SpxUpdatePageComponent {
43
43
  appVersion: _angular_core.WritableSignal<string>;
44
44
  binaryVersionGroup: _angular_core.WritableSignal<string>;
45
45
  buildVersion: _angular_core.WritableSignal<string>;
46
+ currentVersionNumber: _angular_core.WritableSignal<string>;
46
47
  lastErrorReason: _angular_core.Signal<string | null>;
47
48
  hasStarted: _angular_core.WritableSignal<boolean>;
48
49
  hasNavigatedAway: _angular_core.WritableSignal<boolean>;
49
50
  liveBundle: _angular_core.WritableSignal<string>;
50
51
  liveUpdateChannel: _angular_core.WritableSignal<string>;
52
+ nextVersionNumber: _angular_core.WritableSignal<string>;
51
53
  status: _angular_core.Signal<SpxUpdateCheckStatusEnum>;
52
54
  private closeTimerId;
53
55
  faCircleCheck: _fortawesome_fontawesome_common_types.IconDefinition;
@@ -57,8 +59,10 @@ declare class SpxUpdatePageComponent {
57
59
  spxTextUpdateAppVersion: string;
58
60
  spxTextUpdateBinaryVersionGroup: string;
59
61
  spxTextUpdateBuildVersion: string;
62
+ spxTextUpdateCurrentVersionNumber: string;
60
63
  spxTextUpdateLiveBundle: string;
61
64
  spxTextUpdateLiveChannel: string;
65
+ spxTextUpdateNextVersionNumber: string;
62
66
  spxTextUpdateStatus: string;
63
67
  spxTextUpdateVersionInfo: string;
64
68
  isRunningStatus: _angular_core.Signal<boolean>;