@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.
Files changed (229) hide show
  1. package/README.md +24 -0
  2. package/esm2022/placeholder.mjs +2 -0
  3. package/esm2022/public_api.mjs +2 -0
  4. package/esm2022/softpak-components.mjs +5 -0
  5. package/esm2022/spx-alert/public-api.mjs +3 -0
  6. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
  7. package/esm2022/spx-alert/spx-alert.component.mjs +191 -0
  8. package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
  9. package/esm2022/spx-app-configuration/public-api.mjs +8 -0
  10. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
  11. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
  12. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
  13. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
  14. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
  15. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
  16. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
  17. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
  18. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
  19. package/esm2022/spx-button/public-api.mjs +2 -0
  20. package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
  21. package/esm2022/spx-button/spx-button.component.mjs +129 -0
  22. package/esm2022/spx-capitalize/public-api.mjs +2 -0
  23. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
  24. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
  25. package/esm2022/spx-channel-selection/public-api.mjs +5 -0
  26. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
  27. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
  28. package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +40 -0
  29. package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +48 -0
  30. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +43 -0
  31. package/esm2022/spx-check-digit/public-api.mjs +2 -0
  32. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
  33. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +85 -0
  34. package/esm2022/spx-form-section/public-api.mjs +2 -0
  35. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
  36. package/esm2022/spx-form-section/spx-form-section.component.mjs +37 -0
  37. package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
  38. package/esm2022/spx-helpers/public-api.mjs +4 -0
  39. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
  40. package/esm2022/spx-helpers/spx-severity.enum.mjs +8 -0
  41. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
  42. package/esm2022/spx-inputs/public-api.mjs +5 -0
  43. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
  44. package/esm2022/spx-inputs/spx-input-box.component.mjs +231 -0
  45. package/esm2022/spx-inputs/spx-input-date.component.mjs +294 -0
  46. package/esm2022/spx-inputs/spx-input-float.component.mjs +154 -0
  47. package/esm2022/spx-inputs/spx-input-number.component.mjs +82 -0
  48. package/esm2022/spx-inputs/spx-input-radio.component.mjs +63 -0
  49. package/esm2022/spx-inputs/spx-input-text.component.mjs +156 -0
  50. package/esm2022/spx-inputs/spx-input.component.mjs +380 -0
  51. package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
  52. package/esm2022/spx-navigation/public-api.mjs +5 -0
  53. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
  54. package/esm2022/spx-navigation/spx-home-tile.component.mjs +33 -0
  55. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +17 -0
  56. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
  57. package/esm2022/spx-navigation/spx-navigation.component.mjs +42 -0
  58. package/esm2022/spx-patch/patch-check.function.mjs +9 -0
  59. package/esm2022/spx-patch/public-api.mjs +4 -0
  60. package/esm2022/spx-patch/release-check.function.mjs +11 -0
  61. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
  62. package/esm2022/spx-patch/spx-patch.component.mjs +46 -0
  63. package/esm2022/spx-progress-bar/public-api.mjs +2 -0
  64. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
  65. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
  66. package/esm2022/spx-spinner/public-api.mjs +2 -0
  67. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
  68. package/esm2022/spx-spinner/spx-spinner.component.mjs +157 -0
  69. package/esm2022/spx-storage/public-api.mjs +3 -0
  70. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
  71. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
  72. package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
  73. package/esm2022/spx-suggestion/public-api.mjs +2 -0
  74. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
  75. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +47 -0
  76. package/esm2022/spx-toaster/public-api.mjs +4 -0
  77. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
  78. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
  79. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
  80. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +46 -0
  81. package/esm2022/spx-update/public-api.mjs +3 -0
  82. package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
  83. package/esm2022/spx-update/src/spx-update-info.component.mjs +88 -0
  84. package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
  85. package/esm2022/spx-validation/max.validator.mjs +17 -0
  86. package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
  87. package/esm2022/spx-validation/min.validator.mjs +17 -0
  88. package/esm2022/spx-validation/minlength.validator.mjs +20 -0
  89. package/esm2022/spx-validation/pattern.validator.mjs +12 -0
  90. package/esm2022/spx-validation/public-api.mjs +10 -0
  91. package/esm2022/spx-validation/required.validator.mjs +12 -0
  92. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
  93. package/esm2022/spx-validation/spx-validate-control.component.mjs +63 -0
  94. package/esm2022/spx-validation/spx-validation.module.mjs +28 -0
  95. package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
  96. package/fesm2022/softpak-components-spx-alert.mjs +201 -0
  97. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -0
  98. package/fesm2022/softpak-components-spx-app-configuration.mjs +28 -0
  99. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -0
  100. package/fesm2022/softpak-components-spx-button.mjs +136 -0
  101. package/fesm2022/softpak-components-spx-button.mjs.map +1 -0
  102. package/fesm2022/softpak-components-spx-capitalize.mjs +27 -0
  103. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -0
  104. package/fesm2022/softpak-components-spx-channel-selection.mjs +171 -0
  105. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -0
  106. package/fesm2022/softpak-components-spx-check-digit.mjs +92 -0
  107. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -0
  108. package/fesm2022/softpak-components-spx-form-section.mjs +44 -0
  109. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -0
  110. package/fesm2022/softpak-components-spx-helpers.mjs +42 -0
  111. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -0
  112. package/fesm2022/softpak-components-spx-inputs.mjs +1340 -0
  113. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -0
  114. package/fesm2022/softpak-components-spx-navigation.mjs +93 -0
  115. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -0
  116. package/fesm2022/softpak-components-spx-patch.mjs +72 -0
  117. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -0
  118. package/fesm2022/softpak-components-spx-progress-bar.mjs +36 -0
  119. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -0
  120. package/fesm2022/softpak-components-spx-spinner.mjs +164 -0
  121. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -0
  122. package/fesm2022/softpak-components-spx-storage.mjs +63 -0
  123. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -0
  124. package/fesm2022/softpak-components-spx-suggestion.mjs +54 -0
  125. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -0
  126. package/fesm2022/softpak-components-spx-toaster.mjs +79 -0
  127. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -0
  128. package/fesm2022/softpak-components-spx-update.mjs +138 -0
  129. package/fesm2022/softpak-components-spx-update.mjs.map +1 -0
  130. package/fesm2022/softpak-components-spx-validation.mjs +223 -0
  131. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -0
  132. package/fesm2022/softpak-components.mjs +8 -0
  133. package/fesm2022/softpak-components.mjs.map +1 -0
  134. package/index.d.ts +5 -0
  135. package/package.json +135 -0
  136. package/placeholder.d.ts +1 -0
  137. package/public_api.d.ts +1 -0
  138. package/spx-alert/index.d.ts +5 -0
  139. package/spx-alert/public-api.d.ts +2 -0
  140. package/spx-alert/spx-alert.component.d.ts +28 -0
  141. package/spx-alert/spx-alert.interface.d.ts +7 -0
  142. package/spx-app-configuration/index.d.ts +5 -0
  143. package/spx-app-configuration/public-api.d.ts +7 -0
  144. package/spx-app-configuration/spx-app-alert.interface.d.ts +7 -0
  145. package/spx-app-configuration/spx-app-bundle-set.interface.d.ts +4 -0
  146. package/spx-app-configuration/spx-app-channel-type.enum.d.ts +6 -0
  147. package/spx-app-configuration/spx-app-channel.interface.d.ts +10 -0
  148. package/spx-app-configuration/spx-app-config.interface.d.ts +19 -0
  149. package/spx-app-configuration/spx-app-id.enum.d.ts +6 -0
  150. package/spx-app-configuration/spx-app-lang.enum.d.ts +4 -0
  151. package/spx-app-configuration/spx-app-release-note.interface.d.ts +8 -0
  152. package/spx-button/index.d.ts +5 -0
  153. package/spx-button/public-api.d.ts +1 -0
  154. package/spx-button/spx-button.component.d.ts +23 -0
  155. package/spx-capitalize/index.d.ts +5 -0
  156. package/spx-capitalize/public-api.d.ts +1 -0
  157. package/spx-capitalize/spx-capitalize.pipe.d.ts +8 -0
  158. package/spx-channel-selection/index.d.ts +5 -0
  159. package/spx-channel-selection/public-api.d.ts +4 -0
  160. package/spx-channel-selection/src/spx-channel-indicator.component.d.ts +13 -0
  161. package/spx-channel-selection/src/spx-channel-selection.component.d.ts +11 -0
  162. package/spx-channel-selection/src/spx-company-selection.component.d.ts +12 -0
  163. package/spx-channel-selection/src/spx-welcome.component.d.ts +12 -0
  164. package/spx-check-digit/index.d.ts +5 -0
  165. package/spx-check-digit/public-api.d.ts +1 -0
  166. package/spx-check-digit/spx-check-digit.component.d.ts +19 -0
  167. package/spx-form-section/index.d.ts +5 -0
  168. package/spx-form-section/public-api.d.ts +1 -0
  169. package/spx-form-section/spx-form-section.component.d.ts +9 -0
  170. package/spx-helpers/calc-check-digit.function.d.ts +1 -0
  171. package/spx-helpers/index.d.ts +5 -0
  172. package/spx-helpers/public-api.d.ts +3 -0
  173. package/spx-helpers/spx-severity.enum.d.ts +6 -0
  174. package/spx-helpers/value-pair-to-value.function.d.ts +1 -0
  175. package/spx-inputs/index.d.ts +5 -0
  176. package/spx-inputs/public-api.d.ts +4 -0
  177. package/spx-inputs/spx-input-box.component.d.ts +33 -0
  178. package/spx-inputs/spx-input-date.component.d.ts +50 -0
  179. package/spx-inputs/spx-input-float.component.d.ts +28 -0
  180. package/spx-inputs/spx-input-number.component.d.ts +22 -0
  181. package/spx-inputs/spx-input-radio.component.d.ts +18 -0
  182. package/spx-inputs/spx-input-text.component.d.ts +29 -0
  183. package/spx-inputs/spx-input.component.d.ts +58 -0
  184. package/spx-inputs/spx-value-interface.d.ts +4 -0
  185. package/spx-navigation/index.d.ts +5 -0
  186. package/spx-navigation/public-api.d.ts +4 -0
  187. package/spx-navigation/spx-home-tile.component.d.ts +6 -0
  188. package/spx-navigation/spx-home-tiles.component.d.ts +5 -0
  189. package/spx-navigation/spx-navigation-item.interface.d.ts +19 -0
  190. package/spx-navigation/spx-navigation.component.d.ts +12 -0
  191. package/spx-patch/index.d.ts +5 -0
  192. package/spx-patch/patch-check.function.d.ts +4 -0
  193. package/spx-patch/public-api.d.ts +3 -0
  194. package/spx-patch/release-check.function.d.ts +1 -0
  195. package/spx-patch/spx-patch.component.d.ts +10 -0
  196. package/spx-progress-bar/index.d.ts +5 -0
  197. package/spx-progress-bar/public-api.d.ts +1 -0
  198. package/spx-progress-bar/spx-progress-bar.component.d.ts +7 -0
  199. package/spx-spinner/index.d.ts +5 -0
  200. package/spx-spinner/public-api.d.ts +1 -0
  201. package/spx-spinner/spx-spinner.component.d.ts +7 -0
  202. package/spx-storage/index.d.ts +5 -0
  203. package/spx-storage/public-api.d.ts +2 -0
  204. package/spx-storage/src/spx-storage-key.enum.d.ts +10 -0
  205. package/spx-storage/src/spx-storage.class.d.ts +9 -0
  206. package/spx-suggestion/index.d.ts +5 -0
  207. package/spx-suggestion/public-api.d.ts +1 -0
  208. package/spx-suggestion/spx-suggestion.component.d.ts +7 -0
  209. package/spx-toaster/index.d.ts +5 -0
  210. package/spx-toaster/public-api.d.ts +3 -0
  211. package/spx-toaster/src/spx-toaster-autoclose-speed.d.ts +11 -0
  212. package/spx-toaster/src/spx-toaster-message.interface.d.ts +9 -0
  213. package/spx-toaster/src/spx-toaster.component.d.ts +11 -0
  214. package/spx-update/index.d.ts +5 -0
  215. package/spx-update/public-api.d.ts +2 -0
  216. package/spx-update/src/spx-update-info.component.d.ts +18 -0
  217. package/spx-update/src/spx-update-progress.component.d.ts +14 -0
  218. package/spx-validation/index.d.ts +5 -0
  219. package/spx-validation/max.validator.d.ts +7 -0
  220. package/spx-validation/maxlength.validator.d.ts +7 -0
  221. package/spx-validation/min.validator.d.ts +7 -0
  222. package/spx-validation/minlength.validator.d.ts +7 -0
  223. package/spx-validation/pattern.validator.d.ts +2 -0
  224. package/spx-validation/public-api.d.ts +9 -0
  225. package/spx-validation/required.validator.d.ts +2 -0
  226. package/spx-validation/spx-validate-control.component.d.ts +24 -0
  227. package/spx-validation/spx-validation.module.d.ts +9 -0
  228. package/spx-validation/year-and-month.validator.d.ts +2 -0
  229. 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