@softpak/components 21.2.0-capwesome.6 → 21.2.0-capwesome.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/softpak-components-spx-translate.mjs +19 -1
- package/fesm2022/softpak-components-spx-translate.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +119 -32
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/package.json +1 -1
- package/tailwind.css +1 -1
- package/types/softpak-components-spx-translate.d.ts +13 -1
- package/types/softpak-components-spx-update.d.ts +37 -11
|
@@ -30,16 +30,22 @@ const spxTextLiveUpdateChannelSetFailed = "spxTextLiveUpdateChannelSetFailed";
|
|
|
30
30
|
const spxTextLiveUpdateChannelSetFailedWithReason = "spxTextLiveUpdateChannelSetFailedWithReason";
|
|
31
31
|
const spxTextLiveUpdateCheckFailed = "spxTextLiveUpdateCheckFailed";
|
|
32
32
|
const spxTextLiveUpdateCheckFailedWithReason = "spxTextLiveUpdateCheckFailedWithReason";
|
|
33
|
+
const spxTextUpdateErrorReason = "spxTextUpdateErrorReason";
|
|
33
34
|
const spxTextUpdateAppVersion = "spxTextUpdateAppVersion";
|
|
34
35
|
const spxTextUpdateBinaryVersionGroup = "spxTextUpdateBinaryVersionGroup";
|
|
35
36
|
const spxTextUpdateBuildVersion = "spxTextUpdateBuildVersion";
|
|
37
|
+
const spxTextUpdateLastCheck = "spxTextUpdateLastCheck";
|
|
36
38
|
const spxTextUpdateLiveBundle = "spxTextUpdateLiveBundle";
|
|
37
39
|
const spxTextUpdateLiveChannel = "spxTextUpdateLiveChannel";
|
|
38
40
|
const spxTextUpdateStatus = "spxTextUpdateStatus";
|
|
39
41
|
const spxTextUpdateStatusCompleted = "spxTextUpdateStatusCompleted";
|
|
40
42
|
const spxTextUpdateStatusFailed = "spxTextUpdateStatusFailed";
|
|
41
43
|
const spxTextUpdateStatusPreparing = "spxTextUpdateStatusPreparing";
|
|
44
|
+
const spxTextUpdateStatusReloading = "spxTextUpdateStatusReloading";
|
|
42
45
|
const spxTextUpdateStatusSyncing = "spxTextUpdateStatusSyncing";
|
|
46
|
+
const spxTextUpdateStatusUpdateReady = "spxTextUpdateStatusUpdateReady";
|
|
47
|
+
const spxTextUpdateStatusUpToDate = "spxTextUpdateStatusUpToDate";
|
|
48
|
+
const spxTextUpdateStatusWebNotAvailable = "spxTextUpdateStatusWebNotAvailable";
|
|
43
49
|
const spxTextUpdateVersionInfo = "spxTextUpdateVersionInfo";
|
|
44
50
|
|
|
45
51
|
const SpxTranslateEn = {
|
|
@@ -75,11 +81,17 @@ const SpxTranslateEn = {
|
|
|
75
81
|
[spxTextLiveUpdateChannelSetFailedWithReason]: "Channel selected, but live update channel could not be set: {{reason}}.",
|
|
76
82
|
[spxTextLiveUpdateCheckFailed]: "Unable to check for updates right now. Please try again later.",
|
|
77
83
|
[spxTextLiveUpdateCheckFailedWithReason]: "Unable to check for updates: {{reason}}.",
|
|
84
|
+
[spxTextUpdateErrorReason]: "error details",
|
|
85
|
+
[spxTextUpdateLastCheck]: "last successful check",
|
|
78
86
|
[spxTextUpdateStatus]: "status",
|
|
79
87
|
[spxTextUpdateStatusPreparing]: "preparing update check",
|
|
80
88
|
[spxTextUpdateStatusSyncing]: "synchronizing update information",
|
|
89
|
+
[spxTextUpdateStatusReloading]: "reloading app with downloaded update",
|
|
81
90
|
[spxTextUpdateStatusCompleted]: "update check completed",
|
|
91
|
+
[spxTextUpdateStatusUpToDate]: "app is up to date",
|
|
92
|
+
[spxTextUpdateStatusUpdateReady]: "update downloaded",
|
|
82
93
|
[spxTextUpdateStatusFailed]: "update check failed",
|
|
94
|
+
[spxTextUpdateStatusWebNotAvailable]: "live update is not available on web",
|
|
83
95
|
[spxTextUpdateVersionInfo]: "version information",
|
|
84
96
|
[spxTextUpdateAppVersion]: "app version",
|
|
85
97
|
[spxTextUpdateBuildVersion]: "build version",
|
|
@@ -121,11 +133,17 @@ const SpxTranslateNl = {
|
|
|
121
133
|
[spxTextLiveUpdateChannelSetFailedWithReason]: "Kanaal geselecteerd, maar het live update kanaal kon niet worden ingesteld: {{reason}}.",
|
|
122
134
|
[spxTextLiveUpdateCheckFailed]: "Kan nu niet op updates controleren. Probeer het later opnieuw.",
|
|
123
135
|
[spxTextLiveUpdateCheckFailedWithReason]: "Kan nu niet op updates controleren: {{reason}}.",
|
|
136
|
+
[spxTextUpdateErrorReason]: "foutdetails",
|
|
137
|
+
[spxTextUpdateLastCheck]: "laatste succesvolle controle",
|
|
124
138
|
[spxTextUpdateStatus]: "status",
|
|
125
139
|
[spxTextUpdateStatusPreparing]: "updatecontrole voorbereiden",
|
|
126
140
|
[spxTextUpdateStatusSyncing]: "update-informatie synchroniseren",
|
|
141
|
+
[spxTextUpdateStatusReloading]: "app herladen met gedownloade update",
|
|
127
142
|
[spxTextUpdateStatusCompleted]: "updatecontrole voltooid",
|
|
143
|
+
[spxTextUpdateStatusUpToDate]: "app is up-to-date",
|
|
144
|
+
[spxTextUpdateStatusUpdateReady]: "update gedownload",
|
|
128
145
|
[spxTextUpdateStatusFailed]: "updatecontrole mislukt",
|
|
146
|
+
[spxTextUpdateStatusWebNotAvailable]: "live update is niet beschikbaar op web",
|
|
129
147
|
[spxTextUpdateVersionInfo]: "versie-informatie",
|
|
130
148
|
[spxTextUpdateAppVersion]: "app-versie",
|
|
131
149
|
[spxTextUpdateBuildVersion]: "build-versie",
|
|
@@ -138,5 +156,5 @@ const SpxTranslateNl = {
|
|
|
138
156
|
* Generated bundle index. Do not edit.
|
|
139
157
|
*/
|
|
140
158
|
|
|
141
|
-
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, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateStatusCompleted, spxTextUpdateStatusFailed, spxTextUpdateStatusPreparing, spxTextUpdateStatusSyncing, spxTextUpdateVersionInfo };
|
|
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 };
|
|
142
160
|
//# 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 spxTextUpdateAppVersion = \"spxTextUpdateAppVersion\";\nexport const spxTextUpdateBinaryVersionGroup = \"spxTextUpdateBinaryVersionGroup\";\nexport const spxTextUpdateBuildVersion = \"spxTextUpdateBuildVersion\";\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 spxTextUpdateStatusSyncing = \"spxTextUpdateStatusSyncing\";\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 [spxTextUpdateAppVersion]: string;\n [spxTextUpdateBinaryVersionGroup]: string;\n [spxTextUpdateBuildVersion]: string;\n [spxTextUpdateLiveBundle]: string;\n [spxTextUpdateLiveChannel]: string;\n [spxTextUpdateStatus]: string;\n [spxTextUpdateStatusCompleted]: string;\n [spxTextUpdateStatusFailed]: string;\n [spxTextUpdateStatusPreparing]: string;\n [spxTextUpdateStatusSyncing]: 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 spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusSyncing,\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 [spxTextUpdateStatus]: \"status\",\n [spxTextUpdateStatusPreparing]: \"preparing update check\",\n [spxTextUpdateStatusSyncing]: \"synchronizing update information\",\n [spxTextUpdateStatusCompleted]: \"update check completed\",\n [spxTextUpdateStatusFailed]: \"update check failed\",\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 spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusSyncing,\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 [spxTextUpdateStatus]: \"status\",\n [spxTextUpdateStatusPreparing]: \"updatecontrole voorbereiden\",\n [spxTextUpdateStatusSyncing]: \"update-informatie synchroniseren\",\n [spxTextUpdateStatusCompleted]: \"updatecontrole voltooid\",\n [spxTextUpdateStatusFailed]: \"updatecontrole mislukt\",\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 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,26 +1,26 @@
|
|
|
1
1
|
import * as i3 from '@ionic/angular/standalone';
|
|
2
2
|
import { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
|
|
3
|
-
import { spxTextCheckingForUpdates, spxTextOneMomentPlease, spxTextUpdateAppVersion, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateVersionInfo,
|
|
3
|
+
import { spxTextCheckingForUpdates, spxTextOneMomentPlease, spxTextUpdateErrorReason, spxTextUpdateAppVersion, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, 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';
|
|
7
|
+
import { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';
|
|
7
8
|
import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
|
|
9
|
+
import { getBinaryVersionGroup, unsubscribeSubscriptions, SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
8
10
|
import { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';
|
|
9
11
|
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
10
12
|
import * as i1 from '@ngrx/store';
|
|
11
|
-
import { createActionGroup,
|
|
13
|
+
import { createActionGroup, emptyProps, props, createFeature, createReducer, on, Store } from '@ngrx/store';
|
|
12
14
|
import { DateTime } from 'luxon';
|
|
13
15
|
import * as i2 from '@angular/router';
|
|
14
|
-
import { unsubscribeSubscriptions, SpxSeverityEnum, getBinaryVersionGroup } from '@softpak/components/spx-helpers';
|
|
15
16
|
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
16
17
|
import * as i2$1 from '@angular/platform-browser';
|
|
17
18
|
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
18
19
|
import { LiveUpdate } from '@capawesome/capacitor-live-update';
|
|
19
20
|
import { spxToasterActions, SpxToasterAutoCloseSpeedEnum } from '@softpak/components/spx-toaster';
|
|
20
|
-
import { of, from } from 'rxjs';
|
|
21
|
+
import { of, concat, from, timer } from 'rxjs';
|
|
21
22
|
import { delay, mergeMap, exhaustMap, map, catchError, tap } from 'rxjs/operators';
|
|
22
23
|
import { Capacitor } from '@capacitor/core';
|
|
23
|
-
import { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';
|
|
24
24
|
import { captureMessage } from '@sentry/angular';
|
|
25
25
|
|
|
26
26
|
const spxUpdateCheckActions = createActionGroup({
|
|
@@ -32,14 +32,35 @@ const spxUpdateCheckActions = createActionGroup({
|
|
|
32
32
|
initialize: emptyProps(),
|
|
33
33
|
noUpdateWasFound: props(),
|
|
34
34
|
notAvailableOnWeb: emptyProps(),
|
|
35
|
+
reloadStarted: emptyProps(),
|
|
35
36
|
runCheck: props(),
|
|
37
|
+
syncStarted: emptyProps(),
|
|
36
38
|
},
|
|
37
39
|
});
|
|
38
40
|
|
|
41
|
+
var SpxUpdateCheckStatusEnum;
|
|
42
|
+
(function (SpxUpdateCheckStatusEnum) {
|
|
43
|
+
SpxUpdateCheckStatusEnum["failed"] = "failed";
|
|
44
|
+
SpxUpdateCheckStatusEnum["idle"] = "idle";
|
|
45
|
+
SpxUpdateCheckStatusEnum["notAvailableOnWeb"] = "notAvailableOnWeb";
|
|
46
|
+
SpxUpdateCheckStatusEnum["preparing"] = "preparing";
|
|
47
|
+
SpxUpdateCheckStatusEnum["reloading"] = "reloading";
|
|
48
|
+
SpxUpdateCheckStatusEnum["syncing"] = "syncing";
|
|
49
|
+
SpxUpdateCheckStatusEnum["upToDate"] = "upToDate";
|
|
50
|
+
SpxUpdateCheckStatusEnum["updateReady"] = "updateReady";
|
|
51
|
+
})(SpxUpdateCheckStatusEnum || (SpxUpdateCheckStatusEnum = {}));
|
|
52
|
+
|
|
53
|
+
var spxUpdateCheck_state = /*#__PURE__*/Object.freeze({
|
|
54
|
+
__proto__: null,
|
|
55
|
+
get SpxUpdateCheckStatusEnum () { return SpxUpdateCheckStatusEnum; }
|
|
56
|
+
});
|
|
57
|
+
|
|
39
58
|
const initialState$1 = {
|
|
40
59
|
forceWaitForUpdate: false,
|
|
60
|
+
lastErrorReason: null,
|
|
41
61
|
lastCheck: null,
|
|
42
62
|
showError: false,
|
|
63
|
+
status: SpxUpdateCheckStatusEnum.idle,
|
|
43
64
|
};
|
|
44
65
|
|
|
45
66
|
var spxUpdateCheck_initial = /*#__PURE__*/Object.freeze({
|
|
@@ -53,35 +74,56 @@ var updCheck = createFeature({
|
|
|
53
74
|
return {
|
|
54
75
|
...state,
|
|
55
76
|
lastCheck: DateTime.now().toISO(),
|
|
77
|
+
lastErrorReason: null,
|
|
56
78
|
showError: false,
|
|
79
|
+
status: SpxUpdateCheckStatusEnum.updateReady,
|
|
57
80
|
};
|
|
58
81
|
}), on(spxUpdateCheckActions.clearError, (state) => {
|
|
59
82
|
return {
|
|
60
83
|
...state,
|
|
84
|
+
lastErrorReason: null,
|
|
61
85
|
showError: false,
|
|
62
86
|
};
|
|
63
|
-
}), on(spxUpdateCheckActions.checkFailed, (state) => {
|
|
87
|
+
}), on(spxUpdateCheckActions.checkFailed, (state, { errorReason }) => {
|
|
64
88
|
return {
|
|
65
89
|
...state,
|
|
66
90
|
forceWaitForUpdate: false,
|
|
91
|
+
lastErrorReason: errorReason || null,
|
|
67
92
|
showError: true,
|
|
93
|
+
status: SpxUpdateCheckStatusEnum.failed,
|
|
68
94
|
};
|
|
69
95
|
}), on(spxUpdateCheckActions.noUpdateWasFound, (state) => {
|
|
70
96
|
return {
|
|
71
97
|
...state,
|
|
72
98
|
forceWaitForUpdate: false,
|
|
73
99
|
lastCheck: DateTime.now().toISO(),
|
|
100
|
+
lastErrorReason: null,
|
|
74
101
|
showError: false,
|
|
102
|
+
status: SpxUpdateCheckStatusEnum.upToDate,
|
|
75
103
|
};
|
|
76
104
|
}), on(spxUpdateCheckActions.runCheck, (state, { forceWaitForUpdate }) => {
|
|
77
105
|
return {
|
|
78
106
|
...state,
|
|
79
|
-
forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate
|
|
107
|
+
forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate,
|
|
108
|
+
lastErrorReason: null,
|
|
109
|
+
showError: false,
|
|
110
|
+
status: SpxUpdateCheckStatusEnum.preparing,
|
|
111
|
+
};
|
|
112
|
+
}), on(spxUpdateCheckActions.syncStarted, (state) => {
|
|
113
|
+
return {
|
|
114
|
+
...state,
|
|
115
|
+
status: SpxUpdateCheckStatusEnum.syncing,
|
|
116
|
+
};
|
|
117
|
+
}), on(spxUpdateCheckActions.reloadStarted, (state) => {
|
|
118
|
+
return {
|
|
119
|
+
...state,
|
|
120
|
+
status: SpxUpdateCheckStatusEnum.reloading,
|
|
80
121
|
};
|
|
81
122
|
}), on(spxUpdateCheckActions.notAvailableOnWeb, (state) => {
|
|
82
123
|
return {
|
|
83
124
|
...state,
|
|
84
|
-
forceWaitForUpdate: false
|
|
125
|
+
forceWaitForUpdate: false,
|
|
126
|
+
status: SpxUpdateCheckStatusEnum.notAvailableOnWeb,
|
|
85
127
|
};
|
|
86
128
|
})),
|
|
87
129
|
});
|
|
@@ -104,34 +146,53 @@ class SpxUpdatePageComponent {
|
|
|
104
146
|
this.appVersion = signal('-', ...(ngDevMode ? [{ debugName: "appVersion" }] : []));
|
|
105
147
|
this.binaryVersionGroup = signal('-', ...(ngDevMode ? [{ debugName: "binaryVersionGroup" }] : []));
|
|
106
148
|
this.buildVersion = signal('-', ...(ngDevMode ? [{ debugName: "buildVersion" }] : []));
|
|
149
|
+
this.lastCheck = this.appStore.selectSignal(updCheck.selectLastCheck);
|
|
150
|
+
this.lastErrorReason = this.appStore.selectSignal(updCheck.selectLastErrorReason);
|
|
107
151
|
this.forceWaitForUpdate = this.appStore.selectSignal(updCheck.selectForceWaitForUpdate);
|
|
108
152
|
this.hasStarted = signal(false, ...(ngDevMode ? [{ debugName: "hasStarted" }] : []));
|
|
109
153
|
this.liveBundle = signal('-', ...(ngDevMode ? [{ debugName: "liveBundle" }] : []));
|
|
110
154
|
this.liveUpdateChannel = signal('-', ...(ngDevMode ? [{ debugName: "liveUpdateChannel" }] : []));
|
|
155
|
+
this.status = this.appStore.selectSignal(updCheck.selectStatus);
|
|
111
156
|
this.spxTextCheckingForUpdates = spxTextCheckingForUpdates;
|
|
112
157
|
this.spxTextOneMomentPlease = spxTextOneMomentPlease;
|
|
158
|
+
this.spxTextUpdateErrorReason = spxTextUpdateErrorReason;
|
|
113
159
|
this.spxTextUpdateAppVersion = spxTextUpdateAppVersion;
|
|
114
160
|
this.spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;
|
|
115
161
|
this.spxTextUpdateBuildVersion = spxTextUpdateBuildVersion;
|
|
162
|
+
this.spxTextUpdateLastCheck = spxTextUpdateLastCheck;
|
|
116
163
|
this.spxTextUpdateLiveBundle = spxTextUpdateLiveBundle;
|
|
117
164
|
this.spxTextUpdateLiveChannel = spxTextUpdateLiveChannel;
|
|
118
165
|
this.spxTextUpdateStatus = spxTextUpdateStatus;
|
|
119
166
|
this.spxTextUpdateVersionInfo = spxTextUpdateVersionInfo;
|
|
120
167
|
this.statusText = computed(() => {
|
|
121
|
-
|
|
122
|
-
|
|
168
|
+
switch (this.status()) {
|
|
169
|
+
case SpxUpdateCheckStatusEnum.idle:
|
|
170
|
+
return spxTextUpdateStatusPreparing;
|
|
171
|
+
case SpxUpdateCheckStatusEnum.preparing:
|
|
172
|
+
return spxTextUpdateStatusPreparing;
|
|
173
|
+
case SpxUpdateCheckStatusEnum.syncing:
|
|
174
|
+
return spxTextUpdateStatusSyncing;
|
|
175
|
+
case SpxUpdateCheckStatusEnum.reloading:
|
|
176
|
+
return spxTextUpdateStatusReloading;
|
|
177
|
+
case SpxUpdateCheckStatusEnum.upToDate:
|
|
178
|
+
return spxTextUpdateStatusUpToDate;
|
|
179
|
+
case SpxUpdateCheckStatusEnum.updateReady:
|
|
180
|
+
return spxTextUpdateStatusUpdateReady;
|
|
181
|
+
case SpxUpdateCheckStatusEnum.failed:
|
|
182
|
+
return spxTextUpdateStatusFailed;
|
|
183
|
+
case SpxUpdateCheckStatusEnum.notAvailableOnWeb:
|
|
184
|
+
return spxTextUpdateStatusWebNotAvailable;
|
|
185
|
+
default:
|
|
186
|
+
return spxTextUpdateStatusCompleted;
|
|
123
187
|
}
|
|
124
|
-
if (this.showError()) {
|
|
125
|
-
return spxTextUpdateStatusFailed;
|
|
126
|
-
}
|
|
127
|
-
if (this.forceWaitForUpdate()) {
|
|
128
|
-
return spxTextUpdateStatusSyncing;
|
|
129
|
-
}
|
|
130
|
-
return spxTextUpdateStatusCompleted;
|
|
131
188
|
}, ...(ngDevMode ? [{ debugName: "statusText" }] : []));
|
|
132
189
|
this.showError = this.appStore.selectSignal(updCheck.selectShowError);
|
|
133
190
|
effect(() => {
|
|
134
|
-
|
|
191
|
+
this.status();
|
|
192
|
+
this.refreshStorageVersionInfo();
|
|
193
|
+
});
|
|
194
|
+
effect(() => {
|
|
195
|
+
if (!this.hasStarted() || this.forceWaitForUpdate() || this.showError()) {
|
|
135
196
|
return;
|
|
136
197
|
}
|
|
137
198
|
if (this.activatedRoute.snapshot.data['url'] === undefined) {
|
|
@@ -142,14 +203,37 @@ class SpxUpdatePageComponent {
|
|
|
142
203
|
}
|
|
143
204
|
async loadVersionInfo() {
|
|
144
205
|
const appInfo = await App.getInfo();
|
|
145
|
-
|
|
206
|
+
const appVersion = appInfo.version || '-';
|
|
207
|
+
this.appVersion.set(appVersion);
|
|
146
208
|
this.buildVersion.set(appInfo.build || '-');
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
209
|
+
try {
|
|
210
|
+
const computedBinaryVersionGroup = `${getBinaryVersionGroup(appVersion)}.x`;
|
|
211
|
+
const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);
|
|
212
|
+
this.binaryVersionGroup.set(storedBinaryVersionGroup || computedBinaryVersionGroup);
|
|
213
|
+
const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);
|
|
214
|
+
const channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType) || SpxAppChannelTypeEnum.production;
|
|
215
|
+
this.liveUpdateChannel.set(storedLiveUpdateChannel || `${channelType}-${computedBinaryVersionGroup}`);
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
this.binaryVersionGroup.set(SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup) || '-');
|
|
219
|
+
this.liveUpdateChannel.set(SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel) || '-');
|
|
220
|
+
}
|
|
221
|
+
this.refreshStorageVersionInfo();
|
|
222
|
+
}
|
|
223
|
+
refreshStorageVersionInfo() {
|
|
224
|
+
const storedBinaryVersionGroup = SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup);
|
|
225
|
+
const storedLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);
|
|
226
|
+
const storedLiveBundle = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdate);
|
|
227
|
+
if (storedBinaryVersionGroup) {
|
|
228
|
+
this.binaryVersionGroup.set(storedBinaryVersionGroup);
|
|
229
|
+
}
|
|
230
|
+
if (storedLiveUpdateChannel) {
|
|
231
|
+
this.liveUpdateChannel.set(storedLiveUpdateChannel);
|
|
232
|
+
}
|
|
233
|
+
this.liveBundle.set(storedLiveBundle || '-');
|
|
150
234
|
}
|
|
151
235
|
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 }); }
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
236
|
+
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\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n @if (lastErrorReason()) {\n <p class=\"mt-2 text-red-700\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n @if (lastCheck()) {\n <p class=\"mt-1 text-sm text-zinc-600\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\n </div>\n</ion-content>\n", dependencies: [{ kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
153
237
|
}
|
|
154
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
|
|
155
239
|
type: Component,
|
|
@@ -160,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
160
244
|
IonTitle,
|
|
161
245
|
SpxCapitalizePipe,
|
|
162
246
|
TranslatePipe,
|
|
163
|
-
], standalone: true, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\n </div>\n</ion-content>\n" }]
|
|
247
|
+
], standalone: true, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n @if (lastErrorReason()) {\n <p class=\"mt-2 text-red-700\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n @if (lastCheck()) {\n <p class=\"mt-1 text-sm text-zinc-600\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\n </div>\n</ion-content>\n" }]
|
|
164
248
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }, { type: i3.NavController }] });
|
|
165
249
|
|
|
166
250
|
const SpxUpdatePendingActions = createActionGroup({
|
|
@@ -276,7 +360,7 @@ let Effects$1 = class Effects {
|
|
|
276
360
|
if (Capacitor.getPlatform() === 'web') {
|
|
277
361
|
return of(spxUpdateCheckActions.notAvailableOnWeb());
|
|
278
362
|
}
|
|
279
|
-
return from(App.getInfo()).pipe(mergeMap((binaryInfo) => {
|
|
363
|
+
return concat(of(spxUpdateCheckActions.syncStarted()), from(App.getInfo()).pipe(mergeMap((binaryInfo) => {
|
|
280
364
|
// Migrate from e.g. 1.2.x to 1.3.x
|
|
281
365
|
const binaryVersionGroup = getBinaryVersionGroup(binaryInfo.version);
|
|
282
366
|
let channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType);
|
|
@@ -291,14 +375,14 @@ let Effects$1 = class Effects {
|
|
|
291
375
|
if (syncResult.nextBundleId) {
|
|
292
376
|
SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdate, syncResult.nextBundleId);
|
|
293
377
|
if (action.forceWaitForUpdate) {
|
|
294
|
-
return from(LiveUpdate.reload()).pipe(map(() => spxUpdateCheckActions.anUpdateIsReady()), catchError((err) => {
|
|
378
|
+
return concat(of(spxUpdateCheckActions.reloadStarted()), from(LiveUpdate.reload()).pipe(map(() => spxUpdateCheckActions.anUpdateIsReady()), catchError((err) => {
|
|
295
379
|
const errorReason = this.getReadableErrorReason(err);
|
|
296
380
|
captureMessage(`[UPD] Reload failed: ${errorReason}`);
|
|
297
381
|
return of(spxUpdateCheckActions.checkFailed({
|
|
298
382
|
errorReason,
|
|
299
383
|
startUpdateAgainAfterTimeout: false,
|
|
300
384
|
}));
|
|
301
|
-
}));
|
|
385
|
+
})));
|
|
302
386
|
}
|
|
303
387
|
return of(spxUpdateCheckActions.anUpdateIsReady());
|
|
304
388
|
}
|
|
@@ -307,12 +391,15 @@ let Effects$1 = class Effects {
|
|
|
307
391
|
}
|
|
308
392
|
}), catchError((err) => {
|
|
309
393
|
const errorReason = this.getReadableErrorReason(err);
|
|
394
|
+
if (this.isSyncAlreadyInProgress(errorReason)) {
|
|
395
|
+
return timer(1500).pipe(map(() => spxUpdateCheckActions.runCheck({ forceWaitForUpdate: action.forceWaitForUpdate })));
|
|
396
|
+
}
|
|
310
397
|
captureMessage(`[UPD] Handled: ${errorReason}`);
|
|
311
398
|
return of(spxUpdateCheckActions.checkFailed({
|
|
312
399
|
errorReason,
|
|
313
400
|
startUpdateAgainAfterTimeout: false,
|
|
314
401
|
}));
|
|
315
|
-
}));
|
|
402
|
+
})));
|
|
316
403
|
})));
|
|
317
404
|
this.whenAndUpdateIsReady$ = createEffect(() => this.actions$.pipe(ofType(spxUpdateCheckActions.anUpdateIsReady), mergeMap(() => [
|
|
318
405
|
SpxUpdatePendingActions.hasBeenDownloaded(),
|
|
@@ -354,6 +441,10 @@ let Effects$1 = class Effects {
|
|
|
354
441
|
}
|
|
355
442
|
return '';
|
|
356
443
|
}
|
|
444
|
+
isSyncAlreadyInProgress(errorReason) {
|
|
445
|
+
const normalized = errorReason.toLowerCase();
|
|
446
|
+
return normalized.includes('sync is already in progress');
|
|
447
|
+
}
|
|
357
448
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Effects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
358
449
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Effects }); }
|
|
359
450
|
};
|
|
@@ -366,10 +457,6 @@ var spxUpdateCheck_effects = /*#__PURE__*/Object.freeze({
|
|
|
366
457
|
Effects: Effects$1
|
|
367
458
|
});
|
|
368
459
|
|
|
369
|
-
var spxUpdateCheck_state = /*#__PURE__*/Object.freeze({
|
|
370
|
-
__proto__: null
|
|
371
|
-
});
|
|
372
|
-
|
|
373
460
|
class Effects {
|
|
374
461
|
constructor() {
|
|
375
462
|
this.actions$ = inject(Actions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softpak-components-spx-update.mjs","sources":["../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.ts","../../../../projects/softpak/components/spx-update/spx-update-page.component.html","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.actions.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.initial.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.reducer.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.ts","../../../../projects/softpak/components/spx-update/spx-update-pending.component.html","../../../../projects/softpak/components/spx-update/spx-update-url.ts","../../../../projects/softpak/components/spx-update/store/spx-update-check/spx-update-check.effects.ts","../../../../projects/softpak/components/spx-update/store/spx-update-pending/spx-update-pending.effects.ts","../../../../projects/softpak/components/spx-update/softpak-components-spx-update.ts"],"sourcesContent":["import { 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 runCheck: props<{ forceWaitForUpdate?: boolean }>(),\n },\n});\n","import { StateI } from \"./spx-update-check.state\";\n\nexport const initialState: StateI = {\n forceWaitForUpdate: false,\n lastCheck: null,\n showError: false,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { DateTime } from 'luxon';\nimport { 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 showError: false,\n };\n }),\n on(spxUpdateCheckActions.clearError, (state: StateI): StateI => {\n return {\n ...state,\n showError: false,\n };\n }),\n on(spxUpdateCheckActions.checkFailed, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n showError: true,\n };\n }),\n on(spxUpdateCheckActions.noUpdateWasFound, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false,\n lastCheck: DateTime.now().toISO(),\n showError: false,\n };\n }),\n on(spxUpdateCheckActions.runCheck, (state: StateI, { forceWaitForUpdate }): StateI => {\n return {\n ...state,\n forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate\n };\n }),\n on(spxUpdateCheckActions.notAvailableOnWeb, (state: StateI): StateI => {\n return {\n ...state,\n forceWaitForUpdate: false\n };\n }),\n ),\n});\n","import { IonContent, IonHeader, IonTitle, IonToolbar, NavController } from '@ionic/angular/standalone';\nimport {\n spxTextCheckingForUpdates,\n spxTextOneMomentPlease,\n spxTextUpdateAppVersion,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\n spxTextUpdateLiveBundle,\n spxTextUpdateLiveChannel,\n spxTextUpdateStatus,\n spxTextUpdateStatusCompleted,\n spxTextUpdateStatusFailed,\n spxTextUpdateStatusPreparing,\n spxTextUpdateStatusSyncing,\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 { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\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 { 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 SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n appVersion = signal<string>('-');\n binaryVersionGroup = signal<string>('-');\n buildVersion = signal<string>('-');\n forceWaitForUpdate = this.appStore.selectSignal(updCheck.selectForceWaitForUpdate);\n hasStarted = signal<boolean>(false);\n liveBundle = signal<string>('-');\n liveUpdateChannel = signal<string>('-');\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextOneMomentPlease = spxTextOneMomentPlease;\n spxTextUpdateAppVersion = spxTextUpdateAppVersion;\n spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;\n spxTextUpdateBuildVersion = spxTextUpdateBuildVersion;\n spxTextUpdateLiveBundle = spxTextUpdateLiveBundle;\n spxTextUpdateLiveChannel = spxTextUpdateLiveChannel;\n spxTextUpdateStatus = spxTextUpdateStatus;\n spxTextUpdateVersionInfo = spxTextUpdateVersionInfo;\n statusText = computed(() => {\n if (!this.hasStarted()) {\n return spxTextUpdateStatusPreparing;\n }\n if (this.showError()) {\n return spxTextUpdateStatusFailed;\n }\n if (this.forceWaitForUpdate()) {\n return spxTextUpdateStatusSyncing;\n }\n return spxTextUpdateStatusCompleted;\n });\n showError = this.appStore.selectSignal(updCheck.selectShowError);\n\n ngOnInit() {\n this.hasStarted.set(true);\n void this.loadVersionInfo();\n this.appStore.dispatch(spxUpdateCheckActions.runCheck({ forceWaitForUpdate: true }));\n }\n\n constructor(\n private readonly appStore: Store,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navController: NavController,\n ) {\n effect(() => {\n if (!this.hasStarted() || this.forceWaitForUpdate()) {\n return;\n }\n if (this.activatedRoute.snapshot.data['url'] === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n }\n this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);\n });\n }\n\n private async loadVersionInfo(): Promise<void> {\n const appInfo = await App.getInfo();\n this.appVersion.set(appInfo.version || '-');\n this.buildVersion.set(appInfo.build || '-');\n this.binaryVersionGroup.set(SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup) || '-');\n this.liveUpdateChannel.set(SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel) || '-');\n this.liveBundle.set(SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdate) || '-');\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\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, from, of } 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\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({}),\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 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 let 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 return from(LiveUpdate.sync({ channel: SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel)! }));\n }),\n mergeMap((syncResult: SyncResult) => {\n if (syncResult.nextBundleId) {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdate, syncResult.nextBundleId as string);\n if (action.forceWaitForUpdate) {\n return 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 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 captureMessage(`[UPD] Handled: ${errorReason}`);\n return of(spxUpdateCheckActions.checkFailed({\n errorReason,\n startUpdateAgainAfterTimeout: false,\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({}),\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({}),\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","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: forceWaitForUpdate ? true : 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 spxTextOneMomentPlease,\n spxTextUpdateErrorReason,\n spxTextUpdateAppVersion,\n spxTextUpdateBinaryVersionGroup,\n spxTextUpdateBuildVersion,\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} 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 { 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 SpxCapitalizePipe,\n TranslatePipe,\n ],\n templateUrl: `./spx-update-page.component.html`,\n standalone: true,\n})\nexport class SpxUpdatePageComponent {\n appVersion = signal<string>('-');\n binaryVersionGroup = signal<string>('-');\n buildVersion = signal<string>('-');\n lastCheck = this.appStore.selectSignal(updCheck.selectLastCheck);\n lastErrorReason = this.appStore.selectSignal(updCheck.selectLastErrorReason);\n forceWaitForUpdate = this.appStore.selectSignal(updCheck.selectForceWaitForUpdate);\n hasStarted = signal<boolean>(false);\n liveBundle = signal<string>('-');\n liveUpdateChannel = signal<string>('-');\n status = this.appStore.selectSignal(updCheck.selectStatus);\n spxTextCheckingForUpdates = spxTextCheckingForUpdates;\n spxTextOneMomentPlease = spxTextOneMomentPlease;\n spxTextUpdateErrorReason = spxTextUpdateErrorReason;\n spxTextUpdateAppVersion = spxTextUpdateAppVersion;\n spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;\n spxTextUpdateBuildVersion = spxTextUpdateBuildVersion;\n spxTextUpdateLastCheck = spxTextUpdateLastCheck;\n spxTextUpdateLiveBundle = spxTextUpdateLiveBundle;\n spxTextUpdateLiveChannel = spxTextUpdateLiveChannel;\n spxTextUpdateStatus = spxTextUpdateStatus;\n spxTextUpdateVersionInfo = spxTextUpdateVersionInfo;\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 showError = this.appStore.selectSignal(updCheck.selectShowError);\n\n ngOnInit() {\n this.hasStarted.set(true);\n void this.loadVersionInfo();\n this.appStore.dispatch(spxUpdateCheckActions.runCheck({ forceWaitForUpdate: true }));\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 if (!this.hasStarted() || this.forceWaitForUpdate() || this.showError()) {\n return;\n }\n if (this.activatedRoute.snapshot.data['url'] === undefined) {\n console.error('configure data property \\'url\\' in route for update page');\n }\n this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);\n });\n }\n\n 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\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n @if (lastErrorReason()) {\n <p class=\"mt-2 text-red-700\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n @if (lastCheck()) {\n <p class=\"mt-1 text-sm text-zinc-600\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\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\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({}),\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 let 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 return from(LiveUpdate.sync({ channel: SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel)! }));\n }),\n mergeMap((syncResult: SyncResult) => {\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({}),\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({}),\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","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
package/tailwind.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.m-3{margin:.75rem}.m-auto{margin:auto}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-3{margin-inline-start:.75rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-\[150px\]{height:150px}.h-\[30px\]{height:30px}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-16{width:4rem}.w-24{width:6rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-96{width:24rem}.w-\[150px\]{width:150px}.w-\[30px\]{width:30px}.w-full{width:100%}.min-w-12{min-width:3rem}.min-w-\[36px\]{min-width:36px}.max-w-12{max-width:3rem}.max-w-96{max-width:24rem}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-10{flex-basis:2.5rem}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-left-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-amber-700{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/75{background-color:#000000bf}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity,1))}.bg-lime-600{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity,1))}.bg-neutral-700{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity,1))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-teal-700{--tw-bg-opacity:1;background-color:rgb(15 118 110/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.bg-zinc-700{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(to_right\2c theme\(colors\.green\.300\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.yellow\.200\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.green\.300\)\)\]{background-image:linear-gradient(90deg,#86efac,#dcfce7,#38bdf8,#fef08a,#38bdf8,#dcfce7,#86efac)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-400{--tw-gradient-from:#fbbf24 var(--tw-gradient-from-position);--tw-gradient-to:#fbbf2400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-lime-400{--tw-gradient-from:#a3e635 var(--tw-gradient-from-position);--tw-gradient-to:#a3e63500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:#f8717100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from:#2dd4bf var(--tw-gradient-from-position);--tw-gradient-to:#2dd4bf00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-amber-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-lime-600{--tw-gradient-to:#65a30d var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.bg-\[length\:200\%_auto\]{background-size:200% auto}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pt-1{padding-top:.25rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-7xl{font-size:4.5rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-normal{line-height:1.5}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-\[4px\]:after{content:var(--tw-content);inset-inline-start:4px}.after\:top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:h-6:after{content:var(--tw-content);height:1.5rem}.after\:w-6:after{content:var(--tw-content);width:1.5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity,1))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-sky-300:hover{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity,1))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}.focus\:ring-cyan-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity,1))}.focus\:ring-lime-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(101 163 13/var(--tw-ring-opacity,1))}.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}.focus\:ring-sky-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(125 211 252/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:bg-sky-300:active{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline:2px solid #0000;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.peer:checked~.rtl\:peer-checked\:after\:-translate-x-full:where([dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-color-scheme:dark){.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.peer:checked~.dark\:peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:focus~.dark\:peer-focus\:ring-blue-800{--tw-ring-opacity:1;--tw-ring-color:rgb(30 64 175/var(--tw-ring-opacity,1))}}
|
|
1
|
+
*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.m-3{margin:.75rem}.m-auto{margin:auto}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-3{margin-inline-start:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-\[150px\]{height:150px}.h-\[30px\]{height:30px}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-16{width:4rem}.w-24{width:6rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-96{width:24rem}.w-\[150px\]{width:150px}.w-\[30px\]{width:30px}.w-full{width:100%}.min-w-12{min-width:3rem}.min-w-\[36px\]{min-width:36px}.max-w-12{max-width:3rem}.max-w-96{max-width:24rem}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-10{flex-basis:2.5rem}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-left-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-amber-700{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/75{background-color:#000000bf}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity,1))}.bg-lime-600{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity,1))}.bg-neutral-700{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity,1))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-teal-700{--tw-bg-opacity:1;background-color:rgb(15 118 110/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.bg-zinc-700{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(to_right\2c theme\(colors\.green\.300\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.yellow\.200\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.green\.300\)\)\]{background-image:linear-gradient(90deg,#86efac,#dcfce7,#38bdf8,#fef08a,#38bdf8,#dcfce7,#86efac)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-400{--tw-gradient-from:#fbbf24 var(--tw-gradient-from-position);--tw-gradient-to:#fbbf2400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-lime-400{--tw-gradient-from:#a3e635 var(--tw-gradient-from-position);--tw-gradient-to:#a3e63500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:#f8717100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from:#2dd4bf var(--tw-gradient-from-position);--tw-gradient-to:#2dd4bf00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-amber-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-lime-600{--tw-gradient-to:#65a30d var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.bg-\[length\:200\%_auto\]{background-size:200% auto}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pt-1{padding-top:.25rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-7xl{font-size:4.5rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-normal{line-height:1.5}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-\[4px\]:after{content:var(--tw-content);inset-inline-start:4px}.after\:top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:h-6:after{content:var(--tw-content);height:1.5rem}.after\:w-6:after{content:var(--tw-content);width:1.5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity,1))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-sky-300:hover{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity,1))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}.focus\:ring-cyan-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity,1))}.focus\:ring-lime-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(101 163 13/var(--tw-ring-opacity,1))}.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}.focus\:ring-sky-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(125 211 252/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:bg-sky-300:active{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline:2px solid #0000;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.peer:checked~.rtl\:peer-checked\:after\:-translate-x-full:where([dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-color-scheme:dark){.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.peer:checked~.dark\:peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:focus~.dark\:peer-focus\:ring-blue-800{--tw-ring-opacity:1;--tw-ring-color:rgb(30 64 175/var(--tw-ring-opacity,1))}}
|
|
@@ -30,16 +30,22 @@ declare const spxTextLiveUpdateChannelSetFailed = "spxTextLiveUpdateChannelSetFa
|
|
|
30
30
|
declare const spxTextLiveUpdateChannelSetFailedWithReason = "spxTextLiveUpdateChannelSetFailedWithReason";
|
|
31
31
|
declare const spxTextLiveUpdateCheckFailed = "spxTextLiveUpdateCheckFailed";
|
|
32
32
|
declare const spxTextLiveUpdateCheckFailedWithReason = "spxTextLiveUpdateCheckFailedWithReason";
|
|
33
|
+
declare const spxTextUpdateErrorReason = "spxTextUpdateErrorReason";
|
|
33
34
|
declare const spxTextUpdateAppVersion = "spxTextUpdateAppVersion";
|
|
34
35
|
declare const spxTextUpdateBinaryVersionGroup = "spxTextUpdateBinaryVersionGroup";
|
|
35
36
|
declare const spxTextUpdateBuildVersion = "spxTextUpdateBuildVersion";
|
|
37
|
+
declare const spxTextUpdateLastCheck = "spxTextUpdateLastCheck";
|
|
36
38
|
declare const spxTextUpdateLiveBundle = "spxTextUpdateLiveBundle";
|
|
37
39
|
declare const spxTextUpdateLiveChannel = "spxTextUpdateLiveChannel";
|
|
38
40
|
declare const spxTextUpdateStatus = "spxTextUpdateStatus";
|
|
39
41
|
declare const spxTextUpdateStatusCompleted = "spxTextUpdateStatusCompleted";
|
|
40
42
|
declare const spxTextUpdateStatusFailed = "spxTextUpdateStatusFailed";
|
|
41
43
|
declare const spxTextUpdateStatusPreparing = "spxTextUpdateStatusPreparing";
|
|
44
|
+
declare const spxTextUpdateStatusReloading = "spxTextUpdateStatusReloading";
|
|
42
45
|
declare const spxTextUpdateStatusSyncing = "spxTextUpdateStatusSyncing";
|
|
46
|
+
declare const spxTextUpdateStatusUpdateReady = "spxTextUpdateStatusUpdateReady";
|
|
47
|
+
declare const spxTextUpdateStatusUpToDate = "spxTextUpdateStatusUpToDate";
|
|
48
|
+
declare const spxTextUpdateStatusWebNotAvailable = "spxTextUpdateStatusWebNotAvailable";
|
|
43
49
|
declare const spxTextUpdateVersionInfo = "spxTextUpdateVersionInfo";
|
|
44
50
|
interface SpxTranslateI {
|
|
45
51
|
[spxTextChange]: string;
|
|
@@ -75,16 +81,22 @@ interface SpxTranslateI {
|
|
|
75
81
|
[spxTextLiveUpdateChannelSetFailedWithReason]: string;
|
|
76
82
|
[spxTextLiveUpdateCheckFailed]: string;
|
|
77
83
|
[spxTextLiveUpdateCheckFailedWithReason]: string;
|
|
84
|
+
[spxTextUpdateErrorReason]: string;
|
|
78
85
|
[spxTextUpdateAppVersion]: string;
|
|
79
86
|
[spxTextUpdateBinaryVersionGroup]: string;
|
|
80
87
|
[spxTextUpdateBuildVersion]: string;
|
|
88
|
+
[spxTextUpdateLastCheck]: string;
|
|
81
89
|
[spxTextUpdateLiveBundle]: string;
|
|
82
90
|
[spxTextUpdateLiveChannel]: string;
|
|
83
91
|
[spxTextUpdateStatus]: string;
|
|
84
92
|
[spxTextUpdateStatusCompleted]: string;
|
|
85
93
|
[spxTextUpdateStatusFailed]: string;
|
|
86
94
|
[spxTextUpdateStatusPreparing]: string;
|
|
95
|
+
[spxTextUpdateStatusReloading]: string;
|
|
87
96
|
[spxTextUpdateStatusSyncing]: string;
|
|
97
|
+
[spxTextUpdateStatusUpdateReady]: string;
|
|
98
|
+
[spxTextUpdateStatusUpToDate]: string;
|
|
99
|
+
[spxTextUpdateStatusWebNotAvailable]: string;
|
|
88
100
|
[spxTextUpdateVersionInfo]: string;
|
|
89
101
|
}
|
|
90
102
|
|
|
@@ -92,5 +104,5 @@ declare const SpxTranslateEn: SpxTranslateI;
|
|
|
92
104
|
|
|
93
105
|
declare const SpxTranslateNl: SpxTranslateI;
|
|
94
106
|
|
|
95
|
-
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, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateStatusCompleted, spxTextUpdateStatusFailed, spxTextUpdateStatusPreparing, spxTextUpdateStatusSyncing, spxTextUpdateVersionInfo };
|
|
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 };
|
|
96
108
|
export type { SpxTranslateI };
|
|
@@ -9,6 +9,31 @@ import * as rxjs from 'rxjs';
|
|
|
9
9
|
import { Observable } from 'rxjs';
|
|
10
10
|
import * as _ngrx_effects from '@ngrx/effects';
|
|
11
11
|
|
|
12
|
+
declare enum SpxUpdateCheckStatusEnum {
|
|
13
|
+
failed = "failed",
|
|
14
|
+
idle = "idle",
|
|
15
|
+
notAvailableOnWeb = "notAvailableOnWeb",
|
|
16
|
+
preparing = "preparing",
|
|
17
|
+
reloading = "reloading",
|
|
18
|
+
syncing = "syncing",
|
|
19
|
+
upToDate = "upToDate",
|
|
20
|
+
updateReady = "updateReady"
|
|
21
|
+
}
|
|
22
|
+
interface StateI$1 {
|
|
23
|
+
forceWaitForUpdate: boolean;
|
|
24
|
+
lastErrorReason: string | null;
|
|
25
|
+
lastCheck: string | null;
|
|
26
|
+
showError: boolean;
|
|
27
|
+
status: SpxUpdateCheckStatusEnum;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type spxUpdateCheck_state_d_SpxUpdateCheckStatusEnum = SpxUpdateCheckStatusEnum;
|
|
31
|
+
declare const spxUpdateCheck_state_d_SpxUpdateCheckStatusEnum: typeof SpxUpdateCheckStatusEnum;
|
|
32
|
+
declare namespace spxUpdateCheck_state_d {
|
|
33
|
+
export { spxUpdateCheck_state_d_SpxUpdateCheckStatusEnum as SpxUpdateCheckStatusEnum };
|
|
34
|
+
export type { StateI$1 as StateI };
|
|
35
|
+
}
|
|
36
|
+
|
|
12
37
|
declare class SpxUpdatePageComponent {
|
|
13
38
|
private readonly appStore;
|
|
14
39
|
private readonly activatedRoute;
|
|
@@ -16,24 +41,30 @@ declare class SpxUpdatePageComponent {
|
|
|
16
41
|
appVersion: _angular_core.WritableSignal<string>;
|
|
17
42
|
binaryVersionGroup: _angular_core.WritableSignal<string>;
|
|
18
43
|
buildVersion: _angular_core.WritableSignal<string>;
|
|
44
|
+
lastCheck: _angular_core.Signal<string | null>;
|
|
45
|
+
lastErrorReason: _angular_core.Signal<string | null>;
|
|
19
46
|
forceWaitForUpdate: _angular_core.Signal<boolean>;
|
|
20
47
|
hasStarted: _angular_core.WritableSignal<boolean>;
|
|
21
48
|
liveBundle: _angular_core.WritableSignal<string>;
|
|
22
49
|
liveUpdateChannel: _angular_core.WritableSignal<string>;
|
|
50
|
+
status: _angular_core.Signal<SpxUpdateCheckStatusEnum>;
|
|
23
51
|
spxTextCheckingForUpdates: string;
|
|
24
52
|
spxTextOneMomentPlease: string;
|
|
53
|
+
spxTextUpdateErrorReason: string;
|
|
25
54
|
spxTextUpdateAppVersion: string;
|
|
26
55
|
spxTextUpdateBinaryVersionGroup: string;
|
|
27
56
|
spxTextUpdateBuildVersion: string;
|
|
57
|
+
spxTextUpdateLastCheck: string;
|
|
28
58
|
spxTextUpdateLiveBundle: string;
|
|
29
59
|
spxTextUpdateLiveChannel: string;
|
|
30
60
|
spxTextUpdateStatus: string;
|
|
31
61
|
spxTextUpdateVersionInfo: string;
|
|
32
|
-
statusText: _angular_core.Signal<"spxTextUpdateStatusPreparing" | "spxTextUpdateStatusFailed" | "
|
|
62
|
+
statusText: _angular_core.Signal<"spxTextUpdateStatusPreparing" | "spxTextUpdateStatusSyncing" | "spxTextUpdateStatusReloading" | "spxTextUpdateStatusUpToDate" | "spxTextUpdateStatusUpdateReady" | "spxTextUpdateStatusFailed" | "spxTextUpdateStatusWebNotAvailable" | "spxTextUpdateStatusCompleted">;
|
|
33
63
|
showError: _angular_core.Signal<boolean>;
|
|
34
64
|
ngOnInit(): void;
|
|
35
65
|
constructor(appStore: Store, activatedRoute: ActivatedRoute, navController: NavController);
|
|
36
66
|
private loadVersionInfo;
|
|
67
|
+
private refreshStorageVersionInfo;
|
|
37
68
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpxUpdatePageComponent, never>;
|
|
38
69
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpxUpdatePageComponent, "spx-update-page", never, {}, {}, never, never, true, never>;
|
|
39
70
|
}
|
|
@@ -79,11 +110,13 @@ declare const spxUpdateCheckActions: {
|
|
|
79
110
|
startUpdateAgainAfterTimeout?: boolean;
|
|
80
111
|
} & _ngrx_store.Action<"[SpxUpdateCheck] noUpdateWasFound">>;
|
|
81
112
|
notAvailableOnWeb: _ngrx_store.ActionCreator<"[SpxUpdateCheck] notAvailableOnWeb", () => _ngrx_store.Action<"[SpxUpdateCheck] notAvailableOnWeb">>;
|
|
113
|
+
reloadStarted: _ngrx_store.ActionCreator<"[SpxUpdateCheck] reloadStarted", () => _ngrx_store.Action<"[SpxUpdateCheck] reloadStarted">>;
|
|
82
114
|
runCheck: _ngrx_store.ActionCreator<"[SpxUpdateCheck] runCheck", (props: {
|
|
83
115
|
forceWaitForUpdate?: boolean;
|
|
84
116
|
}) => {
|
|
85
117
|
forceWaitForUpdate?: boolean;
|
|
86
118
|
} & _ngrx_store.Action<"[SpxUpdateCheck] runCheck">>;
|
|
119
|
+
syncStarted: _ngrx_store.ActionCreator<"[SpxUpdateCheck] syncStarted", () => _ngrx_store.Action<"[SpxUpdateCheck] syncStarted">>;
|
|
87
120
|
};
|
|
88
121
|
|
|
89
122
|
declare class Effects$1 {
|
|
@@ -96,6 +129,7 @@ declare class Effects$1 {
|
|
|
96
129
|
whenCheckHasFailedShowError$: Observable<any>;
|
|
97
130
|
whenNoUpdateWasFound$: Observable<any>;
|
|
98
131
|
private getReadableErrorReason;
|
|
132
|
+
private isSyncAlreadyInProgress;
|
|
99
133
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Effects$1, never>;
|
|
100
134
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<Effects$1>;
|
|
101
135
|
}
|
|
@@ -106,16 +140,6 @@ declare namespace spxUpdateCheck_effects_d {
|
|
|
106
140
|
};
|
|
107
141
|
}
|
|
108
142
|
|
|
109
|
-
interface StateI$1 {
|
|
110
|
-
forceWaitForUpdate: boolean;
|
|
111
|
-
lastCheck: string | null;
|
|
112
|
-
showError: boolean;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
declare namespace spxUpdateCheck_state_d {
|
|
116
|
-
export type { StateI$1 as StateI };
|
|
117
|
-
}
|
|
118
|
-
|
|
119
143
|
declare const initialState$1: StateI$1;
|
|
120
144
|
|
|
121
145
|
declare namespace spxUpdateCheck_initial_d {
|
|
@@ -129,8 +153,10 @@ declare const _default$1: {
|
|
|
129
153
|
reducer: _ngrx_store.ActionReducer<StateI$1, _ngrx_store.Action<string>>;
|
|
130
154
|
selectSpxUpdateCheckState: _ngrx_store.MemoizedSelector<Record<string, any>, StateI$1, (featureState: StateI$1) => StateI$1>;
|
|
131
155
|
selectForceWaitForUpdate: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: StateI$1) => boolean>;
|
|
156
|
+
selectLastErrorReason: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: StateI$1) => string | null>;
|
|
132
157
|
selectLastCheck: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: StateI$1) => string | null>;
|
|
133
158
|
selectShowError: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: StateI$1) => boolean>;
|
|
159
|
+
selectStatus: _ngrx_store.MemoizedSelector<Record<string, any>, SpxUpdateCheckStatusEnum, (featureState: StateI$1) => SpxUpdateCheckStatusEnum>;
|
|
134
160
|
};
|
|
135
161
|
|
|
136
162
|
declare namespace spxUpdateCheck_reducer_d {
|