@softpak/components 0.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/placeholder.mjs +2 -0
- package/esm2022/public_api.mjs +2 -0
- package/esm2022/softpak-components.mjs +5 -0
- package/esm2022/spx-alert/public-api.mjs +3 -0
- package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
- package/esm2022/spx-alert/spx-alert.component.mjs +191 -0
- package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
- package/esm2022/spx-app-configuration/public-api.mjs +8 -0
- package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
- package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
- package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
- package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
- package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
- package/esm2022/spx-button/public-api.mjs +2 -0
- package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
- package/esm2022/spx-button/spx-button.component.mjs +129 -0
- package/esm2022/spx-capitalize/public-api.mjs +2 -0
- package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
- package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
- package/esm2022/spx-channel-selection/public-api.mjs +5 -0
- package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
- package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
- package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +40 -0
- package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +48 -0
- package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +43 -0
- package/esm2022/spx-check-digit/public-api.mjs +2 -0
- package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
- package/esm2022/spx-check-digit/spx-check-digit.component.mjs +85 -0
- package/esm2022/spx-form-section/public-api.mjs +2 -0
- package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
- package/esm2022/spx-form-section/spx-form-section.component.mjs +37 -0
- package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
- package/esm2022/spx-helpers/public-api.mjs +4 -0
- package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
- package/esm2022/spx-helpers/spx-severity.enum.mjs +8 -0
- package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
- package/esm2022/spx-inputs/public-api.mjs +5 -0
- package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
- package/esm2022/spx-inputs/spx-input-box.component.mjs +231 -0
- package/esm2022/spx-inputs/spx-input-date.component.mjs +294 -0
- package/esm2022/spx-inputs/spx-input-float.component.mjs +154 -0
- package/esm2022/spx-inputs/spx-input-number.component.mjs +82 -0
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +63 -0
- package/esm2022/spx-inputs/spx-input-text.component.mjs +156 -0
- package/esm2022/spx-inputs/spx-input.component.mjs +380 -0
- package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
- package/esm2022/spx-navigation/public-api.mjs +5 -0
- package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
- package/esm2022/spx-navigation/spx-home-tile.component.mjs +33 -0
- package/esm2022/spx-navigation/spx-home-tiles.component.mjs +17 -0
- package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
- package/esm2022/spx-navigation/spx-navigation.component.mjs +42 -0
- package/esm2022/spx-patch/patch-check.function.mjs +9 -0
- package/esm2022/spx-patch/public-api.mjs +4 -0
- package/esm2022/spx-patch/release-check.function.mjs +11 -0
- package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
- package/esm2022/spx-patch/spx-patch.component.mjs +46 -0
- package/esm2022/spx-progress-bar/public-api.mjs +2 -0
- package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
- package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
- package/esm2022/spx-spinner/public-api.mjs +2 -0
- package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
- package/esm2022/spx-spinner/spx-spinner.component.mjs +157 -0
- package/esm2022/spx-storage/public-api.mjs +3 -0
- package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
- package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
- package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
- package/esm2022/spx-suggestion/public-api.mjs +2 -0
- package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
- package/esm2022/spx-suggestion/spx-suggestion.component.mjs +47 -0
- package/esm2022/spx-toaster/public-api.mjs +4 -0
- package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
- package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
- package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
- package/esm2022/spx-toaster/src/spx-toaster.component.mjs +46 -0
- package/esm2022/spx-update/public-api.mjs +3 -0
- package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
- package/esm2022/spx-update/src/spx-update-info.component.mjs +88 -0
- package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
- package/esm2022/spx-validation/max.validator.mjs +17 -0
- package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
- package/esm2022/spx-validation/min.validator.mjs +17 -0
- package/esm2022/spx-validation/minlength.validator.mjs +20 -0
- package/esm2022/spx-validation/pattern.validator.mjs +12 -0
- package/esm2022/spx-validation/public-api.mjs +10 -0
- package/esm2022/spx-validation/required.validator.mjs +12 -0
- package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
- package/esm2022/spx-validation/spx-validate-control.component.mjs +63 -0
- package/esm2022/spx-validation/spx-validation.module.mjs +28 -0
- package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
- package/fesm2022/softpak-components-spx-alert.mjs +201 -0
- package/fesm2022/softpak-components-spx-alert.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-app-configuration.mjs +28 -0
- package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-button.mjs +136 -0
- package/fesm2022/softpak-components-spx-button.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-capitalize.mjs +27 -0
- package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs +171 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-check-digit.mjs +92 -0
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-form-section.mjs +44 -0
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-helpers.mjs +42 -0
- package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-inputs.mjs +1340 -0
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-navigation.mjs +93 -0
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-patch.mjs +72 -0
- package/fesm2022/softpak-components-spx-patch.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-progress-bar.mjs +36 -0
- package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-spinner.mjs +164 -0
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-storage.mjs +63 -0
- package/fesm2022/softpak-components-spx-storage.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs +54 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-toaster.mjs +79 -0
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-update.mjs +138 -0
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-validation.mjs +223 -0
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -0
- package/fesm2022/softpak-components.mjs +8 -0
- package/fesm2022/softpak-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +135 -0
- package/placeholder.d.ts +1 -0
- package/public_api.d.ts +1 -0
- package/spx-alert/index.d.ts +5 -0
- package/spx-alert/public-api.d.ts +2 -0
- package/spx-alert/spx-alert.component.d.ts +28 -0
- package/spx-alert/spx-alert.interface.d.ts +7 -0
- package/spx-app-configuration/index.d.ts +5 -0
- package/spx-app-configuration/public-api.d.ts +7 -0
- package/spx-app-configuration/spx-app-alert.interface.d.ts +7 -0
- package/spx-app-configuration/spx-app-bundle-set.interface.d.ts +4 -0
- package/spx-app-configuration/spx-app-channel-type.enum.d.ts +6 -0
- package/spx-app-configuration/spx-app-channel.interface.d.ts +10 -0
- package/spx-app-configuration/spx-app-config.interface.d.ts +19 -0
- package/spx-app-configuration/spx-app-id.enum.d.ts +6 -0
- package/spx-app-configuration/spx-app-lang.enum.d.ts +4 -0
- package/spx-app-configuration/spx-app-release-note.interface.d.ts +8 -0
- package/spx-button/index.d.ts +5 -0
- package/spx-button/public-api.d.ts +1 -0
- package/spx-button/spx-button.component.d.ts +23 -0
- package/spx-capitalize/index.d.ts +5 -0
- package/spx-capitalize/public-api.d.ts +1 -0
- package/spx-capitalize/spx-capitalize.pipe.d.ts +8 -0
- package/spx-channel-selection/index.d.ts +5 -0
- package/spx-channel-selection/public-api.d.ts +4 -0
- package/spx-channel-selection/src/spx-channel-indicator.component.d.ts +13 -0
- package/spx-channel-selection/src/spx-channel-selection.component.d.ts +11 -0
- package/spx-channel-selection/src/spx-company-selection.component.d.ts +12 -0
- package/spx-channel-selection/src/spx-welcome.component.d.ts +12 -0
- package/spx-check-digit/index.d.ts +5 -0
- package/spx-check-digit/public-api.d.ts +1 -0
- package/spx-check-digit/spx-check-digit.component.d.ts +19 -0
- package/spx-form-section/index.d.ts +5 -0
- package/spx-form-section/public-api.d.ts +1 -0
- package/spx-form-section/spx-form-section.component.d.ts +9 -0
- package/spx-helpers/calc-check-digit.function.d.ts +1 -0
- package/spx-helpers/index.d.ts +5 -0
- package/spx-helpers/public-api.d.ts +3 -0
- package/spx-helpers/spx-severity.enum.d.ts +6 -0
- package/spx-helpers/value-pair-to-value.function.d.ts +1 -0
- package/spx-inputs/index.d.ts +5 -0
- package/spx-inputs/public-api.d.ts +4 -0
- package/spx-inputs/spx-input-box.component.d.ts +33 -0
- package/spx-inputs/spx-input-date.component.d.ts +50 -0
- package/spx-inputs/spx-input-float.component.d.ts +28 -0
- package/spx-inputs/spx-input-number.component.d.ts +22 -0
- package/spx-inputs/spx-input-radio.component.d.ts +18 -0
- package/spx-inputs/spx-input-text.component.d.ts +29 -0
- package/spx-inputs/spx-input.component.d.ts +58 -0
- package/spx-inputs/spx-value-interface.d.ts +4 -0
- package/spx-navigation/index.d.ts +5 -0
- package/spx-navigation/public-api.d.ts +4 -0
- package/spx-navigation/spx-home-tile.component.d.ts +6 -0
- package/spx-navigation/spx-home-tiles.component.d.ts +5 -0
- package/spx-navigation/spx-navigation-item.interface.d.ts +19 -0
- package/spx-navigation/spx-navigation.component.d.ts +12 -0
- package/spx-patch/index.d.ts +5 -0
- package/spx-patch/patch-check.function.d.ts +4 -0
- package/spx-patch/public-api.d.ts +3 -0
- package/spx-patch/release-check.function.d.ts +1 -0
- package/spx-patch/spx-patch.component.d.ts +10 -0
- package/spx-progress-bar/index.d.ts +5 -0
- package/spx-progress-bar/public-api.d.ts +1 -0
- package/spx-progress-bar/spx-progress-bar.component.d.ts +7 -0
- package/spx-spinner/index.d.ts +5 -0
- package/spx-spinner/public-api.d.ts +1 -0
- package/spx-spinner/spx-spinner.component.d.ts +7 -0
- package/spx-storage/index.d.ts +5 -0
- package/spx-storage/public-api.d.ts +2 -0
- package/spx-storage/src/spx-storage-key.enum.d.ts +10 -0
- package/spx-storage/src/spx-storage.class.d.ts +9 -0
- package/spx-suggestion/index.d.ts +5 -0
- package/spx-suggestion/public-api.d.ts +1 -0
- package/spx-suggestion/spx-suggestion.component.d.ts +7 -0
- package/spx-toaster/index.d.ts +5 -0
- package/spx-toaster/public-api.d.ts +3 -0
- package/spx-toaster/src/spx-toaster-autoclose-speed.d.ts +11 -0
- package/spx-toaster/src/spx-toaster-message.interface.d.ts +9 -0
- package/spx-toaster/src/spx-toaster.component.d.ts +11 -0
- package/spx-update/index.d.ts +5 -0
- package/spx-update/public-api.d.ts +2 -0
- package/spx-update/src/spx-update-info.component.d.ts +18 -0
- package/spx-update/src/spx-update-progress.component.d.ts +14 -0
- package/spx-validation/index.d.ts +5 -0
- package/spx-validation/max.validator.d.ts +7 -0
- package/spx-validation/maxlength.validator.d.ts +7 -0
- package/spx-validation/min.validator.d.ts +7 -0
- package/spx-validation/minlength.validator.d.ts +7 -0
- package/spx-validation/pattern.validator.d.ts +2 -0
- package/spx-validation/public-api.d.ts +9 -0
- package/spx-validation/required.validator.d.ts +2 -0
- package/spx-validation/spx-validate-control.component.d.ts +24 -0
- package/spx-validation/spx-validation.module.d.ts +9 -0
- package/spx-validation/year-and-month.validator.d.ts +2 -0
- package/tailwind.css +1 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var SpxStorageKeyEnum;
|
|
2
|
+
(function (SpxStorageKeyEnum) {
|
|
3
|
+
SpxStorageKeyEnum["afterSignIn"] = "afterSignIn";
|
|
4
|
+
SpxStorageKeyEnum["brand"] = "brand";
|
|
5
|
+
SpxStorageKeyEnum["channelType"] = "channelType";
|
|
6
|
+
SpxStorageKeyEnum["channelSettings"] = "companySettings";
|
|
7
|
+
SpxStorageKeyEnum["token"] = "token";
|
|
8
|
+
SpxStorageKeyEnum["updateInProgress"] = "updateInProgress";
|
|
9
|
+
SpxStorageKeyEnum["release"] = "release";
|
|
10
|
+
SpxStorageKeyEnum["patch"] = "patch";
|
|
11
|
+
})(SpxStorageKeyEnum || (SpxStorageKeyEnum = {}));
|
|
12
|
+
;
|
|
13
|
+
|
|
14
|
+
class SpxStorage {
|
|
15
|
+
static get channelId() {
|
|
16
|
+
return `${this.getSetting(SpxStorageKeyEnum.brand)?.toUpperCase()}_${this.getSetting(SpxStorageKeyEnum.channelType)?.toUpperCase()}`;
|
|
17
|
+
}
|
|
18
|
+
static clearSetting(key) {
|
|
19
|
+
localStorage.removeItem(key);
|
|
20
|
+
}
|
|
21
|
+
static getSetting(key) {
|
|
22
|
+
return localStorage.getItem(key);
|
|
23
|
+
}
|
|
24
|
+
static setSetting(key, settingValue) {
|
|
25
|
+
localStorage.setItem(key, settingValue);
|
|
26
|
+
}
|
|
27
|
+
static getChannelSetting(key) {
|
|
28
|
+
let storageObj;
|
|
29
|
+
const storageObjStr = localStorage.getItem(SpxStorageKeyEnum.channelSettings);
|
|
30
|
+
if (storageObjStr) {
|
|
31
|
+
storageObj = JSON.parse(storageObjStr);
|
|
32
|
+
if (!storageObj[this.channelId]) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return storageObj[this.channelId][key];
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
static setChannelSetting(key, settingValue) {
|
|
42
|
+
const companySettings = this.getSetting(SpxStorageKeyEnum.channelSettings);
|
|
43
|
+
let storageObj;
|
|
44
|
+
if (companySettings) {
|
|
45
|
+
storageObj = JSON.parse(companySettings);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
storageObj = {};
|
|
49
|
+
}
|
|
50
|
+
if (!storageObj[this.channelId]) {
|
|
51
|
+
storageObj[this.channelId] = {};
|
|
52
|
+
}
|
|
53
|
+
storageObj[this.channelId][key] = settingValue;
|
|
54
|
+
this.setSetting(SpxStorageKeyEnum.channelSettings, JSON.stringify(storageObj));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Generated bundle index. Do not edit.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
export { SpxStorage, SpxStorageKeyEnum };
|
|
63
|
+
//# sourceMappingURL=softpak-components-spx-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-storage.mjs","sources":["../../../../projects/softpak/components/spx-storage/src/spx-storage-key.enum.ts","../../../../projects/softpak/components/spx-storage/src/spx-storage.class.ts","../../../../projects/softpak/components/spx-storage/softpak-components-spx-storage.ts"],"sourcesContent":["export enum SpxStorageKeyEnum {\n afterSignIn = 'afterSignIn',\n brand = 'brand',\n channelType = 'channelType',\n channelSettings = 'companySettings',\n token = 'token',\n updateInProgress = 'updateInProgress',\n release = 'release',\n patch = 'patch',\n};\n","import { SpxStorageKeyEnum } from './spx-storage-key.enum';\n\nexport class SpxStorage {\n private static get channelId() {\n return `${this.getSetting(SpxStorageKeyEnum.brand)?.toUpperCase()}_${this.getSetting(SpxStorageKeyEnum.channelType)?.toUpperCase()}`;\n }\n\n public static clearSetting<KeyEnum>(key: KeyEnum | SpxStorageKeyEnum): void {\n localStorage.removeItem(key as string);\n }\n\n public static getSetting<KeyEnum>(key: KeyEnum | SpxStorageKeyEnum): string | null {\n return localStorage.getItem(key as string);\n }\n\n public static setSetting<KeyEnum>(key: KeyEnum | SpxStorageKeyEnum, settingValue: string): void {\n localStorage.setItem(key as string, settingValue);\n }\n\n public static getChannelSetting<KeyEnum>(key: KeyEnum | SpxStorageKeyEnum): string | undefined {\n let storageObj;\n const storageObjStr = localStorage.getItem(SpxStorageKeyEnum.channelSettings);\n\n if (storageObjStr) {\n storageObj = JSON.parse(storageObjStr);\n if (!storageObj[this.channelId]) {\n return undefined;\n }\n return storageObj[this.channelId][key];\n } else {\n return undefined;\n }\n }\n\n public static setChannelSetting<KeyEnum>(key: KeyEnum | SpxStorageKeyEnum, settingValue: any): void {\n const companySettings = this.getSetting(SpxStorageKeyEnum.channelSettings);\n let storageObj;\n\n if (companySettings) {\n storageObj = JSON.parse(companySettings);\n } else {\n storageObj = {};\n }\n\n if (!storageObj[this.channelId]) {\n storageObj[this.channelId] = {};\n }\n\n storageObj[this.channelId][key] = settingValue;\n this.setSetting(SpxStorageKeyEnum.channelSettings, JSON.stringify(storageObj));\n }\n}\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"IAAY,kBASX;AATD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,GAS5B,EAAA,CAAA,CAAA,CAAA;AAAA;;MCPY,UAAU,CAAA;AACX,IAAA,WAAW,SAAS,GAAA;QACxB,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAA,CAAE,CAAC;KACxI;IAEM,OAAO,YAAY,CAAU,GAAgC,EAAA;AAChE,QAAA,YAAY,CAAC,UAAU,CAAC,GAAa,CAAC,CAAC;KAC1C;IAEM,OAAO,UAAU,CAAU,GAAgC,EAAA;AAC9D,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,GAAa,CAAC,CAAC;KAC9C;AAEM,IAAA,OAAO,UAAU,CAAU,GAAgC,EAAE,YAAoB,EAAA;AACpF,QAAA,YAAY,CAAC,OAAO,CAAC,GAAa,EAAE,YAAY,CAAC,CAAC;KACrD;IAEM,OAAO,iBAAiB,CAAU,GAAgC,EAAA;AACrE,QAAA,IAAI,UAAU,CAAC;QACf,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAE9E,IAAI,aAAa,EAAE;AACf,YAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC7B,gBAAA,OAAO,SAAS,CAAC;aACpB;YACD,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;SAC1C;aAAM;AACH,YAAA,OAAO,SAAS,CAAC;SACpB;KACJ;AAEM,IAAA,OAAO,iBAAiB,CAAU,GAAgC,EAAE,YAAiB,EAAA;QACxF,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC3E,QAAA,IAAI,UAAU,CAAC;QAEf,IAAI,eAAe,EAAE;AACjB,YAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;SAC5C;aAAM;YACH,UAAU,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC7B,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACnC;QAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;AAC/C,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;KAClF;AACJ;;ACnDD;;AAEG;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class SpxSuggestionComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.spxDisabled = false;
|
|
7
|
+
this.spxSelected = false;
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxSuggestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: "spxDisabled", spxSelected: "spxSelected" }, ngImport: i0, template: `<button
|
|
11
|
+
class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-ellipsis overflow-hidden whitespace-nowrap text-left"
|
|
12
|
+
[class.bg-sky-100]="!this.spxSelected && !this.spxDisabled"
|
|
13
|
+
[class.focus:ring-sky-200]="!this.spxSelected && !this.spxDisabled"
|
|
14
|
+
[class.hover:bg-sky-200]="!this.spxSelected && !this.spxDisabled"
|
|
15
|
+
[class.active:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
16
|
+
[class.bg-gray-200]="this.spxDisabled && !this.spxSelected"
|
|
17
|
+
[class.bg-gray-400]="this.spxDisabled && this.spxSelected"
|
|
18
|
+
[class.cursor-not-allowed]="this.spxDisabled"
|
|
19
|
+
[class.opacity-60]="this.spxDisabled"
|
|
20
|
+
[class.bg-teal-500]="this.spxSelected && !this.spxDisabled"
|
|
21
|
+
[class.font-bold]="this.spxSelected"
|
|
22
|
+
[attr.tabindex]="-1"><ng-content></ng-content></button>`, isInline: true }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxSuggestionComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: 'spx-suggestion',
|
|
28
|
+
standalone: true,
|
|
29
|
+
template: `<button
|
|
30
|
+
class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-ellipsis overflow-hidden whitespace-nowrap text-left"
|
|
31
|
+
[class.bg-sky-100]="!this.spxSelected && !this.spxDisabled"
|
|
32
|
+
[class.focus:ring-sky-200]="!this.spxSelected && !this.spxDisabled"
|
|
33
|
+
[class.hover:bg-sky-200]="!this.spxSelected && !this.spxDisabled"
|
|
34
|
+
[class.active:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
35
|
+
[class.bg-gray-200]="this.spxDisabled && !this.spxSelected"
|
|
36
|
+
[class.bg-gray-400]="this.spxDisabled && this.spxSelected"
|
|
37
|
+
[class.cursor-not-allowed]="this.spxDisabled"
|
|
38
|
+
[class.opacity-60]="this.spxDisabled"
|
|
39
|
+
[class.bg-teal-500]="this.spxSelected && !this.spxDisabled"
|
|
40
|
+
[class.font-bold]="this.spxSelected"
|
|
41
|
+
[attr.tabindex]="-1"><ng-content></ng-content></button>`,
|
|
42
|
+
}]
|
|
43
|
+
}], propDecorators: { spxDisabled: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], spxSelected: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Generated bundle index. Do not edit.
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
export { SpxSuggestionComponent };
|
|
54
|
+
//# sourceMappingURL=softpak-components-spx-suggestion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-suggestion.mjs","sources":["../../../../projects/softpak/components/spx-suggestion/spx-suggestion.component.ts","../../../../projects/softpak/components/spx-suggestion/softpak-components-spx-suggestion.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'spx-suggestion',\n standalone: true,\n template: `<button\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-ellipsis overflow-hidden whitespace-nowrap text-left\"\n [class.bg-sky-100]=\"!this.spxSelected && !this.spxDisabled\"\n [class.focus:ring-sky-200]=\"!this.spxSelected && !this.spxDisabled\"\n [class.hover:bg-sky-200]=\"!this.spxSelected && !this.spxDisabled\"\n [class.active:bg-sky-300]=\"!this.spxSelected && !this.spxDisabled\"\n [class.bg-gray-200]=\"this.spxDisabled && !this.spxSelected\"\n [class.bg-gray-400]=\"this.spxDisabled && this.spxSelected\"\n [class.cursor-not-allowed]=\"this.spxDisabled\"\n [class.opacity-60]=\"this.spxDisabled\"\n [class.bg-teal-500]=\"this.spxSelected && !this.spxDisabled\"\n [class.font-bold]=\"this.spxSelected\"\n [attr.tabindex]=\"-1\"><ng-content></ng-content></button>`,\n})\nexport class SpxSuggestionComponent {\n @Input() spxDisabled = false;\n @Input() spxSelected = false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAmBa,sBAAsB,CAAA;AAjBnC,IAAA,WAAA,GAAA;QAkBW,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAC9B,KAAA;8GAHY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAdvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYgD,2DAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE/C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;AAYgD,2DAAA,CAAA;AAC3D,iBAAA,CAAA;8BAEU,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;ACrBR;;AAEG;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, HostBinding, Input, Output } from '@angular/core';
|
|
3
|
+
import { SpxAlertComponent } from '@softpak/components/spx-alert';
|
|
4
|
+
import { NgFor } from '@angular/common';
|
|
5
|
+
|
|
6
|
+
var SpxToasterSeverityEnum;
|
|
7
|
+
(function (SpxToasterSeverityEnum) {
|
|
8
|
+
SpxToasterSeverityEnum["ERROR"] = "error";
|
|
9
|
+
SpxToasterSeverityEnum["INFO"] = "info";
|
|
10
|
+
SpxToasterSeverityEnum["SUCCESS"] = "success";
|
|
11
|
+
SpxToasterSeverityEnum["WARNING"] = "warning";
|
|
12
|
+
})(SpxToasterSeverityEnum || (SpxToasterSeverityEnum = {}));
|
|
13
|
+
var SpxToasterAutoCloseSpeedEnum;
|
|
14
|
+
(function (SpxToasterAutoCloseSpeedEnum) {
|
|
15
|
+
SpxToasterAutoCloseSpeedEnum[SpxToasterAutoCloseSpeedEnum["DEFAULT"] = -1] = "DEFAULT";
|
|
16
|
+
SpxToasterAutoCloseSpeedEnum[SpxToasterAutoCloseSpeedEnum["SLOW"] = -2] = "SLOW";
|
|
17
|
+
})(SpxToasterAutoCloseSpeedEnum || (SpxToasterAutoCloseSpeedEnum = {}));
|
|
18
|
+
function toasterAutocloseSpeed(autoCloseSpeed, messageText) {
|
|
19
|
+
switch (autoCloseSpeed) {
|
|
20
|
+
case SpxToasterAutoCloseSpeedEnum.DEFAULT:
|
|
21
|
+
return Math.min(Math.max(messageText.length * 50, 2000), 7000);
|
|
22
|
+
case SpxToasterAutoCloseSpeedEnum.SLOW:
|
|
23
|
+
return Math.min(Math.max(messageText.length * 60, 3000), 10000);
|
|
24
|
+
default:
|
|
25
|
+
return autoCloseSpeed;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
class SpxToasterComponent {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.hostClass = true;
|
|
32
|
+
this.spxClose = new EventEmitter();
|
|
33
|
+
}
|
|
34
|
+
doCloseMessage(id) {
|
|
35
|
+
this.spxClose.emit(id);
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxToasterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxToasterComponent, isStandalone: true, selector: "spx-toaster", inputs: { messages: "messages" }, outputs: { spxClose: "spxClose" }, host: { properties: { "class.spx-toasts-displayer": "this.hostClass" } }, ngImport: i0, template: `
|
|
39
|
+
<spx-alert
|
|
40
|
+
*ngFor="let message of messages"
|
|
41
|
+
[spxAutoclose]="message.autoClose"
|
|
42
|
+
[spxCloseable]="message.closeable"
|
|
43
|
+
[spxSeverity]="message.severity"
|
|
44
|
+
[spxTitle]="message.title"
|
|
45
|
+
(spxClose)="doCloseMessage(message.id)">{{message.message}}</spx-alert>
|
|
46
|
+
`, isInline: true, styles: [":host(.spx-toasts-displayer){display:block;position:fixed;bottom:85px;left:0;right:0;margin:0 auto;width:80%;z-index:500}spx-alert+spx-alert{margin-top:6px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity", "tick"], outputs: ["spxClose"] }] }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxToasterComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'spx-toaster', template: `
|
|
51
|
+
<spx-alert
|
|
52
|
+
*ngFor="let message of messages"
|
|
53
|
+
[spxAutoclose]="message.autoClose"
|
|
54
|
+
[spxCloseable]="message.closeable"
|
|
55
|
+
[spxSeverity]="message.severity"
|
|
56
|
+
[spxTitle]="message.title"
|
|
57
|
+
(spxClose)="doCloseMessage(message.id)">{{message.message}}</spx-alert>
|
|
58
|
+
`, standalone: true, imports: [
|
|
59
|
+
NgFor,
|
|
60
|
+
SpxAlertComponent,
|
|
61
|
+
], styles: [":host(.spx-toasts-displayer){display:block;position:fixed;bottom:85px;left:0;right:0;margin:0 auto;width:80%;z-index:500}spx-alert+spx-alert{margin-top:6px}\n"] }]
|
|
62
|
+
}], propDecorators: { hostClass: [{
|
|
63
|
+
type: HostBinding,
|
|
64
|
+
args: ['class.spx-toasts-displayer']
|
|
65
|
+
}], messages: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], spxClose: [{
|
|
68
|
+
type: Output
|
|
69
|
+
}] } });
|
|
70
|
+
|
|
71
|
+
class SpxToasterMessageI {
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Generated bundle index. Do not edit.
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
export { SpxToasterAutoCloseSpeedEnum, SpxToasterComponent, SpxToasterMessageI, SpxToasterSeverityEnum, toasterAutocloseSpeed };
|
|
79
|
+
//# sourceMappingURL=softpak-components-spx-toaster.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-toaster.mjs","sources":["../../../../projects/softpak/components/spx-toaster/src/spx-toaster-autoclose-speed.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster-message.interface.ts","../../../../projects/softpak/components/spx-toaster/softpak-components-spx-toaster.ts"],"sourcesContent":["export enum SpxToasterSeverityEnum {\n ERROR = 'error',\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n}\n\nexport enum SpxToasterAutoCloseSpeedEnum {\n DEFAULT = -1,\n SLOW = -2,\n}\n\nexport function toasterAutocloseSpeed(autoCloseSpeed: SpxToasterAutoCloseSpeedEnum, messageText: string) {\n switch (autoCloseSpeed) {\n case SpxToasterAutoCloseSpeedEnum.DEFAULT:\n return Math.min(Math.max(messageText.length * 50, 2000), 7000);\n case SpxToasterAutoCloseSpeedEnum.SLOW:\n return Math.min(Math.max(messageText.length * 60, 3000), 10000);\n default:\n return autoCloseSpeed;\n }\n}\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { SpxToasterMessageI } from './spx-toaster-message.interface';\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'spx-toaster',\n template: `\n <spx-alert\n *ngFor=\"let message of messages\"\n [spxAutoclose]=\"message.autoClose\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"doCloseMessage(message.id)\">{{message.message}}</spx-alert>\n `,\n standalone: true,\n imports: [\n NgFor,\n SpxAlertComponent,\n ],\n styles: [`\n :host(.spx-toasts-displayer) {\n display: block;\n position: fixed;\n bottom: 85px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 80%;\n z-index: 500;\n }\n\n spx-alert + spx-alert {\n margin-top: 6px;\n }\n `]\n})\nexport class SpxToasterComponent {\n @HostBinding('class.spx-toasts-displayer') hostClass = true;\n @Input() messages!: SpxToasterMessageI[];\n @Output() spxClose: EventEmitter<number> = new EventEmitter<number>();\n\n public doCloseMessage(id: number) {\n this.spxClose.emit(id);\n }\n\n}\n","import { SpxSeverityEnum } from \"@softpak/components/spx-helpers\";\n\nexport class SpxToasterMessageI {\n autoClose?: number;\n title?: string;\n\n closeable?: boolean;\n id!: number;\n message!: string;\n severity!: SpxSeverityEnum;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Component, Input } from '@angular/core';
|
|
4
|
+
import * as i1 from '@angular/forms';
|
|
5
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
|
|
7
|
+
import { SpxInputComponent } from '@softpak/components/spx-inputs';
|
|
8
|
+
import { SpxProgressBarComponent } from '@softpak/components/spx-progress-bar';
|
|
9
|
+
|
|
10
|
+
const ctrlAppStoreVersion = 'appStoreVersion';
|
|
11
|
+
const ctrlChannel = 'channel';
|
|
12
|
+
const ctrlNextVersionNumber = 'nextVersionNumber';
|
|
13
|
+
const ctrlVersionNumber = 'versionNumber';
|
|
14
|
+
class SpxUpdateInfoComponent {
|
|
15
|
+
get ctrlVersionNumber() { return this.form.get(ctrlVersionNumber); }
|
|
16
|
+
get ctrlNextVersionNumber() { return this.form.get(ctrlNextVersionNumber); }
|
|
17
|
+
get ctrlConfiguredChannel() { return this.form.get(ctrlChannel); }
|
|
18
|
+
get ctrlAppStoreVersion() { return this.form.get(ctrlAppStoreVersion); }
|
|
19
|
+
constructor(formBuilder) {
|
|
20
|
+
this.formBuilder = formBuilder;
|
|
21
|
+
this.form = this.formBuilder.group({
|
|
22
|
+
[ctrlAppStoreVersion]: [null, []],
|
|
23
|
+
[ctrlChannel]: [null, []],
|
|
24
|
+
[ctrlNextVersionNumber]: [null, []],
|
|
25
|
+
[ctrlVersionNumber]: [null, []],
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
update(appStoreVersion, channel, nextVersion, version) {
|
|
29
|
+
this.ctrlVersionNumber.setValue({
|
|
30
|
+
value: version,
|
|
31
|
+
});
|
|
32
|
+
this.ctrlNextVersionNumber.setValue({
|
|
33
|
+
value: nextVersion,
|
|
34
|
+
});
|
|
35
|
+
this.ctrlConfiguredChannel.setValue({
|
|
36
|
+
value: channel,
|
|
37
|
+
});
|
|
38
|
+
this.ctrlAppStoreVersion.setValue({
|
|
39
|
+
value: appStoreVersion,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxUpdateInfoComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxUpdateInfoComponent, isStandalone: true, selector: "spx-update-info", inputs: { txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtVersion: "txtVersion" }, ngImport: i0, template: `<form [formGroup]="form" class="mt-3">
|
|
44
|
+
<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
|
|
45
|
+
<spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | capitalize"
|
|
46
|
+
[spxReadonly]="true"></spx-input>
|
|
47
|
+
<spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | capitalize"
|
|
48
|
+
[spxReadonly]="true"></spx-input>
|
|
49
|
+
<spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | capitalize"
|
|
50
|
+
[spxReadonly]="true"></spx-input>
|
|
51
|
+
<spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
|
|
52
|
+
[spxReadonly]="true"></spx-input>
|
|
53
|
+
</div>
|
|
54
|
+
</form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxUpdateInfoComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{
|
|
59
|
+
selector: 'spx-update-info',
|
|
60
|
+
template: `<form [formGroup]="form" class="mt-3">
|
|
61
|
+
<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
|
|
62
|
+
<spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | capitalize"
|
|
63
|
+
[spxReadonly]="true"></spx-input>
|
|
64
|
+
<spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | capitalize"
|
|
65
|
+
[spxReadonly]="true"></spx-input>
|
|
66
|
+
<spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | capitalize"
|
|
67
|
+
[spxReadonly]="true"></spx-input>
|
|
68
|
+
<spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
|
|
69
|
+
[spxReadonly]="true"></spx-input>
|
|
70
|
+
</div>
|
|
71
|
+
</form>`,
|
|
72
|
+
standalone: true,
|
|
73
|
+
imports: [
|
|
74
|
+
CommonModule,
|
|
75
|
+
FormsModule,
|
|
76
|
+
ReactiveFormsModule,
|
|
77
|
+
SpxCapitalizePipe,
|
|
78
|
+
SpxInputComponent,
|
|
79
|
+
]
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { txtAppStoreVersion: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], txtChannel: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], txtNextVersion: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], txtVersion: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}] } });
|
|
90
|
+
|
|
91
|
+
class SpxUpdateProgressComponent {
|
|
92
|
+
ngOnInit() {
|
|
93
|
+
this.startLoaderSync();
|
|
94
|
+
}
|
|
95
|
+
ngOnDestroy() {
|
|
96
|
+
this.stopLoaderSync();
|
|
97
|
+
}
|
|
98
|
+
startLoaderSync() {
|
|
99
|
+
if (this.syncTruckInterval === null) {
|
|
100
|
+
this.syncTruckInterval = setInterval(() => {
|
|
101
|
+
this.delayedPercentage = this.percentage;
|
|
102
|
+
}, 200);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
stopLoaderSync() {
|
|
106
|
+
if (this.syncTruckInterval !== null) {
|
|
107
|
+
clearInterval(this.syncTruckInterval);
|
|
108
|
+
this.syncTruckInterval = undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxUpdateProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxUpdateProgressComponent, isStandalone: true, selector: "spx-update-progress", inputs: { title: "title", percentage: "percentage" }, ngImport: i0, template: `<spx-progress-bar [spxPercentage]="delayedPercentage" [spxTitle]="title | capitalize">
|
|
113
|
+
</spx-progress-bar>`, isInline: true, dependencies: [{ kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }] }); }
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxUpdateProgressComponent, decorators: [{
|
|
116
|
+
type: Component,
|
|
117
|
+
args: [{
|
|
118
|
+
selector: 'spx-update-progress',
|
|
119
|
+
template: `<spx-progress-bar [spxPercentage]="delayedPercentage" [spxTitle]="title | capitalize">
|
|
120
|
+
</spx-progress-bar>`,
|
|
121
|
+
standalone: true,
|
|
122
|
+
imports: [
|
|
123
|
+
SpxProgressBarComponent,
|
|
124
|
+
SpxCapitalizePipe,
|
|
125
|
+
],
|
|
126
|
+
}]
|
|
127
|
+
}], propDecorators: { title: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], percentage: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}] } });
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Generated bundle index. Do not edit.
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
export { SpxUpdateInfoComponent, SpxUpdateProgressComponent };
|
|
138
|
+
//# sourceMappingURL=softpak-components-spx-update.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-update.mjs","sources":["../../../../projects/softpak/components/spx-update/src/spx-update-info.component.ts","../../../../projects/softpak/components/spx-update/src/spx-update-progress.component.ts","../../../../projects/softpak/components/spx-update/softpak-components-spx-update.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { SpxInputComponent } from '@softpak/components/spx-inputs';\n\nconst ctrlAppStoreVersion = 'appStoreVersion';\nconst ctrlChannel = 'channel';\nconst ctrlNextVersionNumber = 'nextVersionNumber';\nconst ctrlVersionNumber = 'versionNumber';\n\n@Component({\n selector: 'spx-update-info',\n template: `<form [formGroup]=\"form\" class=\"mt-3\">\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n <spx-input [formControl]=\"ctrlVersionNumber\" [spxLabel]=\"txtVersion | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlNextVersionNumber\" [spxLabel]=\"txtNextVersion | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlConfiguredChannel\" [spxLabel]=\"txtChannel | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlAppStoreVersion\" [spxLabel]=\"txtAppStoreVersion | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n </div>\n </form>`,\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SpxCapitalizePipe,\n SpxInputComponent,\n ]\n})\nexport class SpxUpdateInfoComponent {\n form!: FormGroup;\n @Input() txtAppStoreVersion!: string;\n @Input() txtChannel!: string;\n @Input() txtNextVersion!: string;\n @Input() txtVersion!: string;\n \n get ctrlVersionNumber(): FormControl { return this.form.get(ctrlVersionNumber) as FormControl; }\n get ctrlNextVersionNumber(): FormControl { return this.form.get(ctrlNextVersionNumber) as FormControl; }\n get ctrlConfiguredChannel(): FormControl { return this.form.get(ctrlChannel) as FormControl; }\n get ctrlAppStoreVersion(): FormControl { return this.form.get(ctrlAppStoreVersion) as FormControl; }\n\n constructor(\n private readonly formBuilder: FormBuilder,\n ) {\n this.form = this.formBuilder.group({\n [ctrlAppStoreVersion]: [null, []],\n [ctrlChannel]: [null, []],\n [ctrlNextVersionNumber]: [null, []],\n [ctrlVersionNumber]: [null, []],\n });\n }\n\n update(appStoreVersion: string, channel: string, nextVersion: string, version: string) {\n this.ctrlVersionNumber.setValue({\n value: version,\n });\n this.ctrlNextVersionNumber.setValue({\n value: nextVersion,\n });\n this.ctrlConfiguredChannel.setValue({\n value: channel,\n });\n this.ctrlAppStoreVersion.setValue({\n value: appStoreVersion,\n });\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { SpxProgressBarComponent } from '@softpak/components/spx-progress-bar';\n\n@Component({\n selector: 'spx-update-progress',\n template: `<spx-progress-bar [spxPercentage]=\"delayedPercentage\" [spxTitle]=\"title | capitalize\">\n </spx-progress-bar>`,\n standalone: true,\n imports: [\n SpxProgressBarComponent,\n SpxCapitalizePipe,\n ],\n})\nexport class SpxUpdateProgressComponent implements OnInit, OnDestroy {\n @Input() title!: string;\n @Input() percentage!: number;\n delayedPercentage!: number;\n syncTruckInterval?: any;\n \n ngOnInit(): void {\n this.startLoaderSync();\n }\n\n ngOnDestroy(): void {\n this.stopLoaderSync();\n }\n\n private startLoaderSync() {\n if (this.syncTruckInterval === null) {\n this.syncTruckInterval = setInterval(() => {\n this.delayedPercentage = this.percentage;\n }, 200);\n }\n }\n\n private stopLoaderSync() {\n if (this.syncTruckInterval !== null) {\n clearInterval(this.syncTruckInterval);\n this.syncTruckInterval = undefined;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { valuePairToValue } from '@softpak/components/spx-helpers';
|
|
2
|
+
import { DateTime } from 'luxon';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, Input, NgModule } from '@angular/core';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { FormsModule } from '@angular/forms';
|
|
8
|
+
|
|
9
|
+
const spxValidatorRequired = () => (control) => {
|
|
10
|
+
if (control &&
|
|
11
|
+
valuePairToValue(control.value) === undefined ||
|
|
12
|
+
valuePairToValue(control.value) === null ||
|
|
13
|
+
valuePairToValue(control.value) === '' ||
|
|
14
|
+
valuePairToValue(control.value) === 0) {
|
|
15
|
+
return { required: true };
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const spxValidatorMax = (max) => (control) => {
|
|
21
|
+
if (!spxValidatorRequired()(control)) {
|
|
22
|
+
const value = parseInt(valuePairToValue(control.value).toString(), 10);
|
|
23
|
+
if (!isNaN(value) && value > max) {
|
|
24
|
+
return {
|
|
25
|
+
max: {
|
|
26
|
+
max,
|
|
27
|
+
actual: value
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const spxValidatorMaxLength = (maximumLength, sanitizer) => (control) => {
|
|
36
|
+
if (!spxValidatorRequired()(control)) {
|
|
37
|
+
let value = valuePairToValue(control.value);
|
|
38
|
+
if (sanitizer) {
|
|
39
|
+
value = sanitizer(value.toString());
|
|
40
|
+
}
|
|
41
|
+
if (value.toString().length > maximumLength) {
|
|
42
|
+
return {
|
|
43
|
+
maxlength: {
|
|
44
|
+
requiredLength: maximumLength,
|
|
45
|
+
actualLength: value.toString().length
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const spxValidatorMin = (min) => (control) => {
|
|
54
|
+
if (!spxValidatorRequired()(control)) {
|
|
55
|
+
const value = parseInt(valuePairToValue(control.value).toString(), 10);
|
|
56
|
+
if (!isNaN(value) && value < min) {
|
|
57
|
+
return {
|
|
58
|
+
min: {
|
|
59
|
+
min,
|
|
60
|
+
actual: value
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const spxValidatorMinLength = (minimumLength, sanitizer) => (control) => {
|
|
69
|
+
if (!spxValidatorRequired()(control)) {
|
|
70
|
+
let value = valuePairToValue(control.value);
|
|
71
|
+
if (sanitizer) {
|
|
72
|
+
value = sanitizer(value.toString());
|
|
73
|
+
}
|
|
74
|
+
if (value.toString().length < minimumLength) {
|
|
75
|
+
return {
|
|
76
|
+
minlength: {
|
|
77
|
+
requiredLength: minimumLength,
|
|
78
|
+
actualLength: value.toString().length
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const spxValidatorPattern = (matcher) => (control) => {
|
|
87
|
+
if (!spxValidatorRequired()(control)) {
|
|
88
|
+
const matches = valuePairToValue(control.value).toString().match(matcher);
|
|
89
|
+
if (matches === null || matches.length === 0) {
|
|
90
|
+
return { pattern: true };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const spxValidatorYearAndMonth = (future) => (control) => {
|
|
97
|
+
if (!spxValidatorRequired()(control)) {
|
|
98
|
+
const val = valuePairToValue(control.value);
|
|
99
|
+
if (val.toUpperCase() !== 'ACEP') {
|
|
100
|
+
const date = DateTime.fromISO(val);
|
|
101
|
+
const year = date.year;
|
|
102
|
+
const month = date.month;
|
|
103
|
+
if (val.length < 6) {
|
|
104
|
+
return {
|
|
105
|
+
minlength: {
|
|
106
|
+
requiredLength: 6,
|
|
107
|
+
actualLength: val.length
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (month < 1 || month > 12) {
|
|
112
|
+
return { month: true };
|
|
113
|
+
}
|
|
114
|
+
if (future) {
|
|
115
|
+
if (year > 2050 || year < DateTime.now().year) {
|
|
116
|
+
return { yearFuture: true };
|
|
117
|
+
}
|
|
118
|
+
if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') < DateTime.now()) {
|
|
119
|
+
return { past: true };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
if (year < 1971 || year > DateTime.now().year) {
|
|
124
|
+
return { year: true };
|
|
125
|
+
}
|
|
126
|
+
if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') > DateTime.now()) {
|
|
127
|
+
return { future: true };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
class SpxValidateControlComponent {
|
|
136
|
+
get maxLength() {
|
|
137
|
+
return this.control.errors && this.control.errors['maxlength'];
|
|
138
|
+
}
|
|
139
|
+
get maxLengthRequiredLength() {
|
|
140
|
+
return this.maxLength && this.control.errors && this.control.errors['maxlength']['requiredLength'];
|
|
141
|
+
}
|
|
142
|
+
get minLength() {
|
|
143
|
+
return this.control.errors && this.control.errors['minlength'];
|
|
144
|
+
}
|
|
145
|
+
get minLengthRequiredLength() {
|
|
146
|
+
return this.minLength && this.control.errors && this.control.errors['minlength']['requiredLength'];
|
|
147
|
+
}
|
|
148
|
+
get max() {
|
|
149
|
+
return this.control.errors && this.control.errors['max'];
|
|
150
|
+
}
|
|
151
|
+
get maxRequiredMax() {
|
|
152
|
+
return this.max && this.control.errors && this.control.errors['max']['max'];
|
|
153
|
+
}
|
|
154
|
+
get min() {
|
|
155
|
+
return this.control.errors && this.control.errors['min'];
|
|
156
|
+
}
|
|
157
|
+
get minRequiredMin() {
|
|
158
|
+
return this.min && this.control.errors && this.control.errors['min']['min'];
|
|
159
|
+
}
|
|
160
|
+
get pattern() {
|
|
161
|
+
return this.control.errors && this.control.errors['pattern'];
|
|
162
|
+
}
|
|
163
|
+
get required() {
|
|
164
|
+
return this.control.errors && this.control.errors['required'];
|
|
165
|
+
}
|
|
166
|
+
get year() {
|
|
167
|
+
return this.control.errors && this.control.errors['year'];
|
|
168
|
+
}
|
|
169
|
+
get yearFuture() {
|
|
170
|
+
return this.control.errors && this.control.errors['yearFuture'];
|
|
171
|
+
}
|
|
172
|
+
get month() {
|
|
173
|
+
return this.control.errors && this.control.errors['month'];
|
|
174
|
+
}
|
|
175
|
+
get future() {
|
|
176
|
+
return this.control.errors && this.control.errors['future'];
|
|
177
|
+
}
|
|
178
|
+
get past() {
|
|
179
|
+
return this.control.errors && this.control.errors['past'];
|
|
180
|
+
}
|
|
181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
182
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxValidateControlComponent, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
183
|
+
}
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
|
|
185
|
+
type: Component,
|
|
186
|
+
args: [{ selector: 'spx-validate-control', template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>" }]
|
|
187
|
+
}], propDecorators: { control: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], label: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], submitTried: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}] } });
|
|
194
|
+
|
|
195
|
+
class SpxValidationModule {
|
|
196
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
197
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: SpxValidationModule, declarations: [SpxValidateControlComponent], imports: [CommonModule,
|
|
198
|
+
FormsModule], exports: [SpxValidateControlComponent] }); }
|
|
199
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidationModule, imports: [CommonModule,
|
|
200
|
+
FormsModule] }); }
|
|
201
|
+
}
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidationModule, decorators: [{
|
|
203
|
+
type: NgModule,
|
|
204
|
+
args: [{
|
|
205
|
+
declarations: [
|
|
206
|
+
SpxValidateControlComponent
|
|
207
|
+
],
|
|
208
|
+
imports: [
|
|
209
|
+
CommonModule,
|
|
210
|
+
FormsModule,
|
|
211
|
+
],
|
|
212
|
+
exports: [
|
|
213
|
+
SpxValidateControlComponent
|
|
214
|
+
]
|
|
215
|
+
}]
|
|
216
|
+
}] });
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Generated bundle index. Do not edit.
|
|
220
|
+
*/
|
|
221
|
+
|
|
222
|
+
export { SpxValidateControlComponent, SpxValidationModule, spxValidatorMax, spxValidatorMaxLength, spxValidatorMin, spxValidatorMinLength, spxValidatorPattern, spxValidatorRequired, spxValidatorYearAndMonth };
|
|
223
|
+
//# sourceMappingURL=softpak-components-spx-validation.mjs.map
|