@lion/ui 0.5.3 → 0.5.5

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 (402) hide show
  1. package/components/checkbox-group/src/LionCheckboxIndeterminate.js +17 -2
  2. package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +3 -0
  3. package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +435 -396
  4. package/components/form-core/src/FormControlMixin.js +17 -1
  5. package/components/form-core/src/choice-group/ChoiceGroupMixin.js +10 -1
  6. package/components/form-core/src/form-group/FormGroupMixin.js +5 -6
  7. package/components/form-core/src/validate/ValidateMixin.js +10 -0
  8. package/components/form-core/src/validate/Validator.js +6 -3
  9. package/components/form-core/test/FormControlMixin.test.js +39 -20
  10. package/components/form-core/test-suites/FormRegistrationMixins.suite.js +7 -7
  11. package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +0 -47
  12. package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +21 -3
  13. package/components/form-core/types/FormControlMixinTypes.ts +2 -0
  14. package/components/form-core/types/validate/ValidateMixinTypes.ts +2 -0
  15. package/components/form-core/types/validate/validate.ts +2 -2
  16. package/components/input-file/src/LionInputFile.js +7 -1
  17. package/components/input-range/src/LionInputRange.js +36 -4
  18. package/components/input-range/src/localizeNamespaceLoader.js +75 -0
  19. package/components/input-range/test/lion-input-range.test.js +6 -6
  20. package/components/input-range/translations/bg-BG.js +5 -0
  21. package/components/input-range/translations/bg.js +4 -0
  22. package/components/input-range/translations/cs-CZ.js +5 -0
  23. package/components/input-range/translations/cs.js +4 -0
  24. package/components/input-range/translations/de-DE.js +5 -0
  25. package/components/input-range/translations/de.js +4 -0
  26. package/components/input-range/translations/en-AU.js +5 -0
  27. package/components/input-range/translations/en-GB.js +5 -0
  28. package/components/input-range/translations/en-PH.js +5 -0
  29. package/components/input-range/translations/en-US.js +5 -0
  30. package/components/input-range/translations/en.js +4 -0
  31. package/components/input-range/translations/es-ES.js +5 -0
  32. package/components/input-range/translations/es.js +4 -0
  33. package/components/input-range/translations/fr-BE.js +5 -0
  34. package/components/input-range/translations/fr-FR.js +5 -0
  35. package/components/input-range/translations/fr.js +4 -0
  36. package/components/input-range/translations/hu-HU.js +5 -0
  37. package/components/input-range/translations/hu.js +4 -0
  38. package/components/input-range/translations/it-IT.js +5 -0
  39. package/components/input-range/translations/it.js +4 -0
  40. package/components/input-range/translations/nl-BE.js +5 -0
  41. package/components/input-range/translations/nl-NL.js +5 -0
  42. package/components/input-range/translations/nl.js +4 -0
  43. package/components/input-range/translations/pl-PL.js +5 -0
  44. package/components/input-range/translations/pl.js +4 -0
  45. package/components/input-range/translations/ro-RO.js +5 -0
  46. package/components/input-range/translations/ro.js +4 -0
  47. package/components/input-range/translations/ru-RU.js +5 -0
  48. package/components/input-range/translations/ru.js +4 -0
  49. package/components/input-range/translations/sk-SK.js +5 -0
  50. package/components/input-range/translations/sk.js +4 -0
  51. package/components/input-range/translations/uk-UA.js +5 -0
  52. package/components/input-range/translations/uk.js +4 -0
  53. package/components/input-range/translations/zh-CN.js +5 -0
  54. package/components/input-range/translations/zh.js +4 -0
  55. package/components/input-stepper/src/LionInputStepper.js +53 -33
  56. package/components/input-stepper/src/localizeNamespaceLoader.js +75 -0
  57. package/components/input-stepper/test/lion-input-stepper.test.js +61 -8
  58. package/components/input-stepper/translations/bg-BG.js +5 -0
  59. package/components/input-stepper/translations/bg.js +4 -0
  60. package/components/input-stepper/translations/cs-CZ.js +5 -0
  61. package/components/input-stepper/translations/cs.js +4 -0
  62. package/components/input-stepper/translations/de-DE.js +5 -0
  63. package/components/input-stepper/translations/de.js +4 -0
  64. package/components/input-stepper/translations/en-AU.js +5 -0
  65. package/components/input-stepper/translations/en-GB.js +5 -0
  66. package/components/input-stepper/translations/en-US.js +5 -0
  67. package/components/input-stepper/translations/en.js +4 -0
  68. package/components/input-stepper/translations/es-ES.js +5 -0
  69. package/components/input-stepper/translations/es.js +4 -0
  70. package/components/input-stepper/translations/fr-BE.js +5 -0
  71. package/components/input-stepper/translations/fr-FR.js +5 -0
  72. package/components/input-stepper/translations/fr.js +4 -0
  73. package/components/input-stepper/translations/hu-HU.js +5 -0
  74. package/components/input-stepper/translations/hu.js +4 -0
  75. package/components/input-stepper/translations/it-IT.js +5 -0
  76. package/components/input-stepper/translations/it.js +4 -0
  77. package/components/input-stepper/translations/nl-BE.js +5 -0
  78. package/components/input-stepper/translations/nl-NL.js +5 -0
  79. package/components/input-stepper/translations/nl.js +4 -0
  80. package/components/input-stepper/translations/pl-PL.js +5 -0
  81. package/components/input-stepper/translations/pl.js +4 -0
  82. package/components/input-stepper/translations/ro-RO.js +5 -0
  83. package/components/input-stepper/translations/ro.js +4 -0
  84. package/components/input-stepper/translations/ru-RU.js +5 -0
  85. package/components/input-stepper/translations/ru.js +4 -0
  86. package/components/input-stepper/translations/sk-SK.js +5 -0
  87. package/components/input-stepper/translations/sk.js +4 -0
  88. package/components/input-stepper/translations/uk-UA.js +5 -0
  89. package/components/input-stepper/translations/uk.js +4 -0
  90. package/components/input-stepper/translations/zh.js +4 -0
  91. package/components/input-tel-dropdown/src/LionInputTelDropdown.js +11 -3
  92. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +110 -2
  93. package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +22 -0
  94. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +1 -38
  95. package/components/localize/src/LocalizeMixin.js +2 -2
  96. package/components/overlays/src/OverlayController.js +1 -1
  97. package/components/select/src/LionSelect.js +5 -0
  98. package/components/validate-messages/src/getLocalizedMessage.js +122 -0
  99. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -179
  100. package/components/validate-messages/src/per-entrypoint/README.md +16 -0
  101. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +22 -0
  102. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +77 -0
  103. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +39 -0
  104. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +105 -0
  105. package/components/validate-messages/translations/bg.js +4 -0
  106. package/components/validate-messages/translations/cs.js +4 -0
  107. package/components/validate-messages/translations/de.js +4 -0
  108. package/components/validate-messages/translations/en.js +5 -1
  109. package/components/validate-messages/translations/es.js +4 -0
  110. package/components/validate-messages/translations/fr.js +4 -0
  111. package/components/validate-messages/translations/hu.js +4 -0
  112. package/components/validate-messages/translations/it.js +4 -0
  113. package/components/validate-messages/translations/nl.js +4 -0
  114. package/components/validate-messages/translations/pl.js +4 -0
  115. package/components/validate-messages/translations/ro.js +4 -0
  116. package/components/validate-messages/translations/ru.js +4 -0
  117. package/components/validate-messages/translations/sk.js +4 -0
  118. package/components/validate-messages/translations/uk.js +4 -0
  119. package/components/validate-messages/translations/zh.js +4 -0
  120. package/custom-elements.json +6018 -1840
  121. package/dist-types/components/checkbox-group/src/LionCheckboxIndeterminate.d.ts +7 -1
  122. package/dist-types/components/checkbox-group/src/LionCheckboxIndeterminate.d.ts.map +1 -1
  123. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
  124. package/dist-types/components/form-core/src/FormControlMixin.d.ts.map +1 -1
  125. package/dist-types/components/form-core/src/choice-group/ChoiceGroupMixin.d.ts +1 -0
  126. package/dist-types/components/form-core/src/choice-group/ChoiceGroupMixin.d.ts.map +1 -1
  127. package/dist-types/components/form-core/src/form-group/FormGroupMixin.d.ts.map +1 -1
  128. package/dist-types/components/form-core/src/validate/ValidateMixin.d.ts +1 -0
  129. package/dist-types/components/form-core/src/validate/ValidateMixin.d.ts.map +1 -1
  130. package/dist-types/components/form-core/src/validate/Validator.d.ts +5 -2
  131. package/dist-types/components/form-core/src/validate/Validator.d.ts.map +1 -1
  132. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts.map +1 -1
  133. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts.map +1 -1
  134. package/dist-types/components/form-core/types/FormControlMixinTypes.d.ts +1 -0
  135. package/dist-types/components/form-core/types/FormControlMixinTypes.d.ts.map +1 -1
  136. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts +1 -0
  137. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts.map +1 -1
  138. package/dist-types/components/form-core/types/validate/validate.d.ts +2 -2
  139. package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
  140. package/dist-types/components/input-range/src/LionInputRange.d.ts +7 -1
  141. package/dist-types/components/input-range/src/LionInputRange.d.ts.map +1 -1
  142. package/dist-types/components/input-range/src/localizeNamespaceLoader.d.ts +2 -0
  143. package/dist-types/components/input-range/src/localizeNamespaceLoader.d.ts.map +1 -0
  144. package/dist-types/components/input-range/translations/bg-BG.d.ts +6 -0
  145. package/dist-types/components/input-range/translations/bg-BG.d.ts.map +1 -0
  146. package/dist-types/components/input-range/translations/bg.d.ts +6 -0
  147. package/dist-types/components/input-range/translations/bg.d.ts.map +1 -0
  148. package/dist-types/components/input-range/translations/cs-CZ.d.ts +6 -0
  149. package/dist-types/components/input-range/translations/cs-CZ.d.ts.map +1 -0
  150. package/dist-types/components/input-range/translations/cs.d.ts +6 -0
  151. package/dist-types/components/input-range/translations/cs.d.ts.map +1 -0
  152. package/dist-types/components/input-range/translations/de-DE.d.ts +6 -0
  153. package/dist-types/components/input-range/translations/de-DE.d.ts.map +1 -0
  154. package/dist-types/components/input-range/translations/de.d.ts +6 -0
  155. package/dist-types/components/input-range/translations/de.d.ts.map +1 -0
  156. package/dist-types/components/input-range/translations/en-AU.d.ts +6 -0
  157. package/dist-types/components/input-range/translations/en-AU.d.ts.map +1 -0
  158. package/dist-types/components/input-range/translations/en-GB.d.ts +6 -0
  159. package/dist-types/components/input-range/translations/en-GB.d.ts.map +1 -0
  160. package/dist-types/components/input-range/translations/en-PH.d.ts +6 -0
  161. package/dist-types/components/input-range/translations/en-PH.d.ts.map +1 -0
  162. package/dist-types/components/input-range/translations/en-US.d.ts +6 -0
  163. package/dist-types/components/input-range/translations/en-US.d.ts.map +1 -0
  164. package/dist-types/components/input-range/translations/en.d.ts +6 -0
  165. package/dist-types/components/input-range/translations/en.d.ts.map +1 -0
  166. package/dist-types/components/input-range/translations/es-ES.d.ts +6 -0
  167. package/dist-types/components/input-range/translations/es-ES.d.ts.map +1 -0
  168. package/dist-types/components/input-range/translations/es.d.ts +6 -0
  169. package/dist-types/components/input-range/translations/es.d.ts.map +1 -0
  170. package/dist-types/components/input-range/translations/fr-BE.d.ts +6 -0
  171. package/dist-types/components/input-range/translations/fr-BE.d.ts.map +1 -0
  172. package/dist-types/components/input-range/translations/fr-FR.d.ts +6 -0
  173. package/dist-types/components/input-range/translations/fr-FR.d.ts.map +1 -0
  174. package/dist-types/components/input-range/translations/fr.d.ts +6 -0
  175. package/dist-types/components/input-range/translations/fr.d.ts.map +1 -0
  176. package/dist-types/components/input-range/translations/hu-HU.d.ts +6 -0
  177. package/dist-types/components/input-range/translations/hu-HU.d.ts.map +1 -0
  178. package/dist-types/components/input-range/translations/hu.d.ts +6 -0
  179. package/dist-types/components/input-range/translations/hu.d.ts.map +1 -0
  180. package/dist-types/components/input-range/translations/it-IT.d.ts +6 -0
  181. package/dist-types/components/input-range/translations/it-IT.d.ts.map +1 -0
  182. package/dist-types/components/input-range/translations/it.d.ts +6 -0
  183. package/dist-types/components/input-range/translations/it.d.ts.map +1 -0
  184. package/dist-types/components/input-range/translations/nl-BE.d.ts +6 -0
  185. package/dist-types/components/input-range/translations/nl-BE.d.ts.map +1 -0
  186. package/dist-types/components/input-range/translations/nl-NL.d.ts +6 -0
  187. package/dist-types/components/input-range/translations/nl-NL.d.ts.map +1 -0
  188. package/dist-types/components/input-range/translations/nl.d.ts +6 -0
  189. package/dist-types/components/input-range/translations/nl.d.ts.map +1 -0
  190. package/dist-types/components/input-range/translations/pl-PL.d.ts +6 -0
  191. package/dist-types/components/input-range/translations/pl-PL.d.ts.map +1 -0
  192. package/dist-types/components/input-range/translations/pl.d.ts +6 -0
  193. package/dist-types/components/input-range/translations/pl.d.ts.map +1 -0
  194. package/dist-types/components/input-range/translations/ro-RO.d.ts +6 -0
  195. package/dist-types/components/input-range/translations/ro-RO.d.ts.map +1 -0
  196. package/dist-types/components/input-range/translations/ro.d.ts +6 -0
  197. package/dist-types/components/input-range/translations/ro.d.ts.map +1 -0
  198. package/dist-types/components/input-range/translations/ru-RU.d.ts +6 -0
  199. package/dist-types/components/input-range/translations/ru-RU.d.ts.map +1 -0
  200. package/dist-types/components/input-range/translations/ru.d.ts +6 -0
  201. package/dist-types/components/input-range/translations/ru.d.ts.map +1 -0
  202. package/dist-types/components/input-range/translations/sk-SK.d.ts +6 -0
  203. package/dist-types/components/input-range/translations/sk-SK.d.ts.map +1 -0
  204. package/dist-types/components/input-range/translations/sk.d.ts +6 -0
  205. package/dist-types/components/input-range/translations/sk.d.ts.map +1 -0
  206. package/dist-types/components/input-range/translations/uk-UA.d.ts +6 -0
  207. package/dist-types/components/input-range/translations/uk-UA.d.ts.map +1 -0
  208. package/dist-types/components/input-range/translations/uk.d.ts +6 -0
  209. package/dist-types/components/input-range/translations/uk.d.ts.map +1 -0
  210. package/dist-types/components/input-range/translations/zh-CN.d.ts +6 -0
  211. package/dist-types/components/input-range/translations/zh-CN.d.ts.map +1 -0
  212. package/dist-types/components/input-range/translations/zh.d.ts +6 -0
  213. package/dist-types/components/input-range/translations/zh.d.ts.map +1 -0
  214. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts +22 -3
  215. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts.map +1 -1
  216. package/dist-types/components/input-stepper/src/localizeNamespaceLoader.d.ts +2 -0
  217. package/dist-types/components/input-stepper/src/localizeNamespaceLoader.d.ts.map +1 -0
  218. package/dist-types/components/input-stepper/translations/bg-BG.d.ts +6 -0
  219. package/dist-types/components/input-stepper/translations/bg-BG.d.ts.map +1 -0
  220. package/dist-types/components/input-stepper/translations/bg.d.ts +6 -0
  221. package/dist-types/components/input-stepper/translations/bg.d.ts.map +1 -0
  222. package/dist-types/components/input-stepper/translations/cs-CZ.d.ts +6 -0
  223. package/dist-types/components/input-stepper/translations/cs-CZ.d.ts.map +1 -0
  224. package/dist-types/components/input-stepper/translations/cs.d.ts +6 -0
  225. package/dist-types/components/input-stepper/translations/cs.d.ts.map +1 -0
  226. package/dist-types/components/input-stepper/translations/de-DE.d.ts +6 -0
  227. package/dist-types/components/input-stepper/translations/de-DE.d.ts.map +1 -0
  228. package/dist-types/components/input-stepper/translations/de.d.ts +6 -0
  229. package/dist-types/components/input-stepper/translations/de.d.ts.map +1 -0
  230. package/dist-types/components/input-stepper/translations/en-AU.d.ts +6 -0
  231. package/dist-types/components/input-stepper/translations/en-AU.d.ts.map +1 -0
  232. package/dist-types/components/input-stepper/translations/en-GB.d.ts +6 -0
  233. package/dist-types/components/input-stepper/translations/en-GB.d.ts.map +1 -0
  234. package/dist-types/components/input-stepper/translations/en-US.d.ts +6 -0
  235. package/dist-types/components/input-stepper/translations/en-US.d.ts.map +1 -0
  236. package/dist-types/components/input-stepper/translations/en.d.ts +6 -0
  237. package/dist-types/components/input-stepper/translations/en.d.ts.map +1 -0
  238. package/dist-types/components/input-stepper/translations/es-ES.d.ts +6 -0
  239. package/dist-types/components/input-stepper/translations/es-ES.d.ts.map +1 -0
  240. package/dist-types/components/input-stepper/translations/es.d.ts +6 -0
  241. package/dist-types/components/input-stepper/translations/es.d.ts.map +1 -0
  242. package/dist-types/components/input-stepper/translations/fr-BE.d.ts +6 -0
  243. package/dist-types/components/input-stepper/translations/fr-BE.d.ts.map +1 -0
  244. package/dist-types/components/input-stepper/translations/fr-FR.d.ts +6 -0
  245. package/dist-types/components/input-stepper/translations/fr-FR.d.ts.map +1 -0
  246. package/dist-types/components/input-stepper/translations/fr.d.ts +6 -0
  247. package/dist-types/components/input-stepper/translations/fr.d.ts.map +1 -0
  248. package/dist-types/components/input-stepper/translations/hu-HU.d.ts +6 -0
  249. package/dist-types/components/input-stepper/translations/hu-HU.d.ts.map +1 -0
  250. package/dist-types/components/input-stepper/translations/hu.d.ts +6 -0
  251. package/dist-types/components/input-stepper/translations/hu.d.ts.map +1 -0
  252. package/dist-types/components/input-stepper/translations/it-IT.d.ts +6 -0
  253. package/dist-types/components/input-stepper/translations/it-IT.d.ts.map +1 -0
  254. package/dist-types/components/input-stepper/translations/it.d.ts +6 -0
  255. package/dist-types/components/input-stepper/translations/it.d.ts.map +1 -0
  256. package/dist-types/components/input-stepper/translations/nl-BE.d.ts +6 -0
  257. package/dist-types/components/input-stepper/translations/nl-BE.d.ts.map +1 -0
  258. package/dist-types/components/input-stepper/translations/nl-NL.d.ts +6 -0
  259. package/dist-types/components/input-stepper/translations/nl-NL.d.ts.map +1 -0
  260. package/dist-types/components/input-stepper/translations/nl.d.ts +6 -0
  261. package/dist-types/components/input-stepper/translations/nl.d.ts.map +1 -0
  262. package/dist-types/components/input-stepper/translations/pl-PL.d.ts +6 -0
  263. package/dist-types/components/input-stepper/translations/pl-PL.d.ts.map +1 -0
  264. package/dist-types/components/input-stepper/translations/pl.d.ts +6 -0
  265. package/dist-types/components/input-stepper/translations/pl.d.ts.map +1 -0
  266. package/dist-types/components/input-stepper/translations/ro-RO.d.ts +6 -0
  267. package/dist-types/components/input-stepper/translations/ro-RO.d.ts.map +1 -0
  268. package/dist-types/components/input-stepper/translations/ro.d.ts +6 -0
  269. package/dist-types/components/input-stepper/translations/ro.d.ts.map +1 -0
  270. package/dist-types/components/input-stepper/translations/ru-RU.d.ts +6 -0
  271. package/dist-types/components/input-stepper/translations/ru-RU.d.ts.map +1 -0
  272. package/dist-types/components/input-stepper/translations/ru.d.ts +6 -0
  273. package/dist-types/components/input-stepper/translations/ru.d.ts.map +1 -0
  274. package/dist-types/components/input-stepper/translations/sk-SK.d.ts +6 -0
  275. package/dist-types/components/input-stepper/translations/sk-SK.d.ts.map +1 -0
  276. package/dist-types/components/input-stepper/translations/sk.d.ts +6 -0
  277. package/dist-types/components/input-stepper/translations/sk.d.ts.map +1 -0
  278. package/dist-types/components/input-stepper/translations/uk-UA.d.ts +6 -0
  279. package/dist-types/components/input-stepper/translations/uk-UA.d.ts.map +1 -0
  280. package/dist-types/components/input-stepper/translations/uk.d.ts +6 -0
  281. package/dist-types/components/input-stepper/translations/uk.d.ts.map +1 -0
  282. package/dist-types/components/input-stepper/translations/zh.d.ts +6 -0
  283. package/dist-types/components/input-stepper/translations/zh.d.ts.map +1 -0
  284. package/dist-types/components/input-tel-dropdown/src/LionInputTelDropdown.d.ts.map +1 -1
  285. package/dist-types/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.d.ts +12 -0
  286. package/dist-types/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.d.ts.map +1 -0
  287. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts.map +1 -1
  288. package/dist-types/components/select/src/LionSelect.d.ts.map +1 -1
  289. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts +13 -0
  290. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts.map +1 -0
  291. package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -1
  292. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts +9 -0
  293. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts.map +1 -0
  294. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts +9 -0
  295. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts.map +1 -0
  296. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts +9 -0
  297. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts.map +1 -0
  298. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.d.ts +4 -0
  299. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.d.ts.map +1 -0
  300. package/dist-types/components/validate-messages/translations/bg-BG.d.ts +4 -0
  301. package/dist-types/components/validate-messages/translations/bg.d.ts +6 -0
  302. package/dist-types/components/validate-messages/translations/cs-CZ.d.ts +4 -0
  303. package/dist-types/components/validate-messages/translations/cs.d.ts +6 -0
  304. package/dist-types/components/validate-messages/translations/de-DE.d.ts +4 -0
  305. package/dist-types/components/validate-messages/translations/de.d.ts +6 -0
  306. package/dist-types/components/validate-messages/translations/en-AU.d.ts +4 -0
  307. package/dist-types/components/validate-messages/translations/en-GB.d.ts +4 -0
  308. package/dist-types/components/validate-messages/translations/en-PH.d.ts +4 -0
  309. package/dist-types/components/validate-messages/translations/en-US.d.ts +4 -0
  310. package/dist-types/components/validate-messages/translations/en.d.ts +6 -0
  311. package/dist-types/components/validate-messages/translations/es-ES.d.ts +4 -0
  312. package/dist-types/components/validate-messages/translations/es.d.ts +6 -0
  313. package/dist-types/components/validate-messages/translations/fr-BE.d.ts +4 -0
  314. package/dist-types/components/validate-messages/translations/fr-FR.d.ts +4 -0
  315. package/dist-types/components/validate-messages/translations/fr.d.ts +6 -0
  316. package/dist-types/components/validate-messages/translations/hu-HU.d.ts +4 -0
  317. package/dist-types/components/validate-messages/translations/hu.d.ts +6 -0
  318. package/dist-types/components/validate-messages/translations/it-IT.d.ts +4 -0
  319. package/dist-types/components/validate-messages/translations/it.d.ts +6 -0
  320. package/dist-types/components/validate-messages/translations/nl-BE.d.ts +4 -0
  321. package/dist-types/components/validate-messages/translations/nl-NL.d.ts +4 -0
  322. package/dist-types/components/validate-messages/translations/nl.d.ts +6 -0
  323. package/dist-types/components/validate-messages/translations/pl-PL.d.ts +4 -0
  324. package/dist-types/components/validate-messages/translations/pl.d.ts +6 -0
  325. package/dist-types/components/validate-messages/translations/ro-RO.d.ts +4 -0
  326. package/dist-types/components/validate-messages/translations/ro.d.ts +6 -0
  327. package/dist-types/components/validate-messages/translations/ru-RU.d.ts +4 -0
  328. package/dist-types/components/validate-messages/translations/ru.d.ts +6 -0
  329. package/dist-types/components/validate-messages/translations/sk-SK.d.ts +4 -0
  330. package/dist-types/components/validate-messages/translations/sk.d.ts +6 -0
  331. package/dist-types/components/validate-messages/translations/uk-UA.d.ts +4 -0
  332. package/dist-types/components/validate-messages/translations/uk.d.ts +6 -0
  333. package/dist-types/components/validate-messages/translations/zh.d.ts +6 -0
  334. package/dist-types/exports/input-tel-dropdown-test-helpers.d.ts +2 -0
  335. package/dist-types/exports/input-tel-dropdown-test-helpers.d.ts.map +1 -0
  336. package/dist-types/exports/validate-messages-no-side-effects.d.ts +3 -0
  337. package/dist-types/tsconfig.tsbuildinfo +1 -1
  338. package/docs/components/checkbox-group/overview.md +2 -2
  339. package/docs/components/collapsible/overview.md +1 -1
  340. package/docs/components/combobox/overview.md +1 -1
  341. package/docs/components/combobox/use-cases.md +1 -1
  342. package/docs/components/dialog/overview.md +1 -1
  343. package/docs/components/fieldset/overview.md +5 -5
  344. package/docs/components/form/overview.md +3 -3
  345. package/docs/components/icon/use-cases.md +1 -1
  346. package/docs/components/input/overview.md +1 -1
  347. package/docs/components/input-amount/overview.md +3 -3
  348. package/docs/components/input-date/overview.md +3 -3
  349. package/docs/components/input-datepicker/overview.md +5 -5
  350. package/docs/components/input-email/overview.md +2 -2
  351. package/docs/components/input-file/overview.md +1 -1
  352. package/docs/components/input-file/use-cases.md +8 -8
  353. package/docs/components/input-iban/overview.md +2 -2
  354. package/docs/components/input-range/overview.md +4 -6
  355. package/docs/components/input-range/use-cases.md +40 -48
  356. package/docs/components/input-stepper/overview.md +8 -8
  357. package/docs/components/input-stepper/use-cases.md +30 -21
  358. package/docs/components/input-tel/overview.md +1 -1
  359. package/docs/components/input-tel/use-cases.md +6 -6
  360. package/docs/components/input-tel-dropdown/overview.md +1 -1
  361. package/docs/components/listbox/use-cases.md +90 -95
  362. package/docs/components/radio-group/overview.md +3 -3
  363. package/docs/components/select/use-cases.md +34 -33
  364. package/docs/components/select-rich/use-cases.md +1 -1
  365. package/docs/components/tabs/examples.md +1 -1
  366. package/docs/fundamentals/index.md +4 -4
  367. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  368. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  369. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  370. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  371. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  372. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  373. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  374. package/docs/fundamentals/rationales/accessibility.md +1 -1
  375. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  376. package/docs/fundamentals/systems/core/overview.md +1 -1
  377. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  378. package/docs/fundamentals/systems/form/model-value.md +1 -1
  379. package/docs/fundamentals/systems/form/overview.md +28 -28
  380. package/docs/fundamentals/systems/form/styling.md +34 -39
  381. package/docs/fundamentals/systems/form/validate.md +7 -4
  382. package/docs/fundamentals/systems/localize/overview.md +4 -4
  383. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  384. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  385. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  386. package/docs/fundamentals/tools/ajax/overview.md +2 -1
  387. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  388. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  389. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  390. package/docs/guides/how-to/create-a-form.md +4 -4
  391. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  392. package/docs/guides/index.md +8 -8
  393. package/docs/guides/principles/index.md +5 -5
  394. package/docs/guides/principles/styling.md +1 -1
  395. package/exports/input-tel-dropdown-test-helpers.js +1 -0
  396. package/exports/validate-messages-no-side-effects.js +3 -0
  397. package/input-tel-dropdown-test-helpers.js +1 -0
  398. package/package.json +3 -1
  399. package/validate-messages-no-side-effects.js +3 -0
  400. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.js +0 -51
  401. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts +0 -2
  402. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +0 -1
@@ -1,197 +1,27 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
- import { MatchesOption } from '@lion/ui/combobox.js';
3
- import {
4
- DefaultSuccess,
5
- EqualsLength,
6
- IsDate,
7
- IsDateDisabled,
8
- IsEmail,
9
- IsNumber,
10
- MaxDate,
11
- MaxLength,
12
- MaxNumber,
13
- MinDate,
14
- MinLength,
15
- MinMaxDate,
16
- MinMaxLength,
17
- MinMaxNumber,
18
- MinNumber,
19
- Pattern,
20
- Required,
21
- } from '@lion/ui/form-core.js';
22
- import { PhoneNumber } from '@lion/ui/input-tel.js';
2
+ import { loadComboboxMessagesNoSideEffects } from './per-entrypoint/loadComboboxMessagesNoSideEffects.js';
3
+ import { loadFormCoreMessagesNoSideEffects } from './per-entrypoint/loadFormCoreMessagesNoSideEffects.js';
4
+ import { loadInputTelMessagesNoSideEffects } from './per-entrypoint/loadInputTelMessagesNoSideEffects.js';
23
5
 
24
6
  /**
25
7
  * @typedef {import('../../form-core/types/validate/validate.js').FeedbackMessageData} FeedbackMessageData
26
8
  * @typedef {import('@lion/ui/localize.js').LocalizeManager} LocalizeManager
27
9
  */
28
10
 
29
- let loaded = false;
11
+ let isLoaded = false;
30
12
 
31
13
  /**
32
14
  * @param {{localize: LocalizeManager}} opts allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager
33
15
  * @returns
34
16
  */
35
17
  export function loadDefaultFeedbackMessagesNoSideEffects({ localize }) {
36
- if (loaded === true) {
18
+ if (isLoaded === true) {
37
19
  return;
38
20
  }
39
21
 
40
- const forMessagesToBeReady = () =>
41
- localize.loadNamespace(
42
- {
43
- 'lion-validate': /** @param {string} locale */ locale => {
44
- switch (locale) {
45
- case 'bg-BG':
46
- return import('@lion/ui/validate-messages-translations/bg-BG.js');
47
- case 'bg':
48
- return import('@lion/ui/validate-messages-translations/bg.js');
49
- case 'cs-CZ':
50
- return import('@lion/ui/validate-messages-translations/cs-CZ.js');
51
- case 'cs':
52
- return import('@lion/ui/validate-messages-translations/cs.js');
53
- case 'de-DE':
54
- return import('@lion/ui/validate-messages-translations/de-DE.js');
55
- case 'de':
56
- return import('@lion/ui/validate-messages-translations/de.js');
57
- case 'en-AU':
58
- return import('@lion/ui/validate-messages-translations/en-AU.js');
59
- case 'en-GB':
60
- return import('@lion/ui/validate-messages-translations/en-GB.js');
61
- case 'en-US':
62
- return import('@lion/ui/validate-messages-translations/en-US.js');
63
- case 'en-PH':
64
- return import('@lion/ui/validate-messages-translations/en-PH.js');
65
- case 'en':
66
- return import('@lion/ui/validate-messages-translations/en.js');
67
- case 'es-ES':
68
- return import('@lion/ui/validate-messages-translations/es-ES.js');
69
- case 'es':
70
- return import('@lion/ui/validate-messages-translations/es.js');
71
- case 'fr-FR':
72
- return import('@lion/ui/validate-messages-translations/fr-FR.js');
73
- case 'fr-BE':
74
- return import('@lion/ui/validate-messages-translations/fr-BE.js');
75
- case 'fr':
76
- return import('@lion/ui/validate-messages-translations/fr.js');
77
- case 'hu-HU':
78
- return import('@lion/ui/validate-messages-translations/hu-HU.js');
79
- case 'hu':
80
- return import('@lion/ui/validate-messages-translations/hu.js');
81
- case 'it-IT':
82
- return import('@lion/ui/validate-messages-translations/it-IT.js');
83
- case 'it':
84
- return import('@lion/ui/validate-messages-translations/it.js');
85
- case 'nl-BE':
86
- return import('@lion/ui/validate-messages-translations/nl-BE.js');
87
- case 'nl-NL':
88
- return import('@lion/ui/validate-messages-translations/nl-NL.js');
89
- case 'nl':
90
- return import('@lion/ui/validate-messages-translations/nl.js');
91
- case 'pl-PL':
92
- return import('@lion/ui/validate-messages-translations/pl-PL.js');
93
- case 'pl':
94
- return import('@lion/ui/validate-messages-translations/pl.js');
95
- case 'ro-RO':
96
- return import('@lion/ui/validate-messages-translations/ro-RO.js');
97
- case 'ro':
98
- return import('@lion/ui/validate-messages-translations/ro.js');
99
- case 'ru-RU':
100
- return import('@lion/ui/validate-messages-translations/ru-RU.js');
101
- case 'ru':
102
- return import('@lion/ui/validate-messages-translations/ru.js');
103
- case 'sk-SK':
104
- return import('@lion/ui/validate-messages-translations/sk-SK.js');
105
- case 'sk':
106
- return import('@lion/ui/validate-messages-translations/sk.js');
107
- case 'uk-UA':
108
- return import('@lion/ui/validate-messages-translations/uk-UA.js');
109
- case 'uk':
110
- return import('@lion/ui/validate-messages-translations/uk.js');
111
- case 'zh-CN':
112
- case 'zh':
113
- return import('@lion/ui/validate-messages-translations/zh.js');
114
- default:
115
- return import('@lion/ui/validate-messages-translations/en.js');
116
- }
117
- },
118
- },
119
- { locale: localize.locale },
120
- );
22
+ loadComboboxMessagesNoSideEffects({ localize });
23
+ loadFormCoreMessagesNoSideEffects({ localize });
24
+ loadInputTelMessagesNoSideEffects({ localize });
121
25
 
122
- /**
123
- * @param {FeedbackMessageData} data
124
- * @returns {Promise<string|Element>}
125
- */
126
- const getLocalizedMessage = async data => {
127
- await forMessagesToBeReady();
128
- if (data) {
129
- return localize.msg(`lion-validate:${data.type}.${data.name}`, data);
130
- }
131
- return '';
132
- };
133
-
134
- /** @param {FeedbackMessageData} data */
135
- Required.getMessage = async data => getLocalizedMessage(data);
136
- /** @param {FeedbackMessageData} data */
137
- EqualsLength.getMessage = async data => getLocalizedMessage(data);
138
- /** @param {FeedbackMessageData} data */
139
- MinLength.getMessage = async data => getLocalizedMessage(data);
140
- /** @param {FeedbackMessageData} data */
141
- MaxLength.getMessage = async data => getLocalizedMessage(data);
142
- /** @param {FeedbackMessageData} data */
143
- MinMaxLength.getMessage = async data => getLocalizedMessage(data);
144
- /** @param {FeedbackMessageData} data */
145
- Pattern.getMessage = async data => getLocalizedMessage(data);
146
- /** @param {FeedbackMessageData} data */
147
- IsEmail.getMessage = async data => getLocalizedMessage(data);
148
- /** @param {FeedbackMessageData} data */
149
- IsNumber.getMessage = async data => getLocalizedMessage(data);
150
- /** @param {FeedbackMessageData} data */
151
- MinNumber.getMessage = async data => getLocalizedMessage(data);
152
- /** @param {FeedbackMessageData} data */
153
- MaxNumber.getMessage = async data => getLocalizedMessage(data);
154
- /** @param {FeedbackMessageData} data */
155
- MinMaxNumber.getMessage = async data => getLocalizedMessage(data);
156
- /** @param {FeedbackMessageData} data */
157
- IsDate.getMessage = async data => getLocalizedMessage(data);
158
- /** @param {FeedbackMessageData} data */
159
- MinDate.getMessage = async data => getLocalizedMessage(data);
160
- /** @param {FeedbackMessageData} data */
161
- MaxDate.getMessage = async data => getLocalizedMessage(data);
162
- /** @param {FeedbackMessageData} data */
163
- MinMaxDate.getMessage = async data => getLocalizedMessage(data);
164
- /** @param {FeedbackMessageData} data */
165
- IsDateDisabled.getMessage = async data => getLocalizedMessage(data);
166
- /** @param {FeedbackMessageData} data */
167
- MatchesOption.getMessage = async data => getLocalizedMessage(data);
168
-
169
- DefaultSuccess.getMessage = async data => {
170
- await forMessagesToBeReady();
171
- const randomKeys = localize.msg('lion-validate:success.RandomOk').split(',');
172
- const key = randomKeys[Math.floor(Math.random() * randomKeys.length)].trim();
173
- return localize.msg(`lion-validate:${key}`, data);
174
- };
175
-
176
- /** @param {FeedbackMessageData} data */
177
- // @ts-ignore
178
- PhoneNumber.getMessage = async data => {
179
- await forMessagesToBeReady();
180
- const { type, outcome } = data;
181
- if (outcome === 'too-long') {
182
- // TODO: get max-length of country and use MaxLength validator
183
- return localize.msg(`lion-validate:${type}.Pattern`, data);
184
- }
185
- if (outcome === 'too-short') {
186
- // TODO: get min-length of country and use MinLength validator
187
- return localize.msg(`lion-validate:${type}.Pattern`, data);
188
- }
189
- // TODO: add a more specific message here
190
- if (outcome === 'invalid-country-code') {
191
- return localize.msg(`lion-validate:${type}.Pattern`, data);
192
- }
193
- return localize.msg(`lion-validate:${type}.Pattern`, data);
194
- };
195
-
196
- loaded = true;
26
+ isLoaded = true;
197
27
  }
@@ -0,0 +1,16 @@
1
+ For optimized bundling, it's reccommended to load feedback messages per entrypoint. For instance, when you only use form-core in your app:
2
+
3
+ ```js
4
+ import { LionInputTel } from '@lion/ui/input-tel.js';
5
+ import { getLocalizeManager } from '@lion/ui/localize-no-side-effects.js';
6
+ import { loadInputTelMessagesNoSideEffects } from '@lion/ui/validate-messages-no-side-effects.js';
7
+
8
+ export class MyInputTel extends LionInputTel {
9
+ constructor() {
10
+ super();
11
+ loadInputTelMessagesNoSideEffects({ localize: getLocalizeManager() });
12
+ }
13
+ }
14
+ ```
15
+
16
+ This prevents you from loading unused entrypoints like input-tel (which loads a full phone validation library) etc.
@@ -0,0 +1,22 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import { MatchesOption } from '@lion/ui/combobox.js';
3
+ import { getLocalizedMessage } from '../getLocalizedMessage.js';
4
+
5
+ /**
6
+ * @typedef {import('../../../form-core/types/validate/validate.js').FeedbackMessageData} FeedbackMessageData
7
+ * @typedef {import('@lion/ui/localize.js').LocalizeManager} LocalizeManager
8
+ */
9
+
10
+ let isLoaded = false;
11
+
12
+ /**
13
+ * @param {{localize: LocalizeManager}} opts allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager
14
+ */
15
+ export function loadComboboxMessagesNoSideEffects({ localize }) {
16
+ if (isLoaded === true) return;
17
+
18
+ /** @param {FeedbackMessageData} data */
19
+ MatchesOption.getMessage = async data => getLocalizedMessage({ data, localize });
20
+
21
+ isLoaded = true;
22
+ }
@@ -0,0 +1,77 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import {
3
+ DefaultSuccess,
4
+ EqualsLength,
5
+ IsDate,
6
+ IsDateDisabled,
7
+ IsEmail,
8
+ IsNumber,
9
+ MaxDate,
10
+ MaxLength,
11
+ MaxNumber,
12
+ MinDate,
13
+ MinLength,
14
+ MinMaxDate,
15
+ MinMaxLength,
16
+ MinMaxNumber,
17
+ MinNumber,
18
+ Pattern,
19
+ Required,
20
+ } from '@lion/ui/form-core.js';
21
+ import { getLocalizedMessage, loadValidateNamespace } from '../getLocalizedMessage.js';
22
+
23
+ /**
24
+ * @typedef {import('../../../form-core/types/validate/validate.js').FeedbackMessageData} FeedbackMessageData
25
+ * @typedef {import('@lion/ui/localize.js').LocalizeManager} LocalizeManager
26
+ */
27
+
28
+ let isLoaded = false;
29
+
30
+ /**
31
+ * @param {{localize: LocalizeManager}} opts allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager
32
+ */
33
+ export function loadFormCoreMessagesNoSideEffects({ localize }) {
34
+ if (isLoaded === true) return;
35
+
36
+ /** @param {FeedbackMessageData} data */
37
+ Required.getMessage = async data => getLocalizedMessage({ data, localize });
38
+ /** @param {FeedbackMessageData} data */
39
+ EqualsLength.getMessage = async data => getLocalizedMessage({ data, localize });
40
+ /** @param {FeedbackMessageData} data */
41
+ MinLength.getMessage = async data => getLocalizedMessage({ data, localize });
42
+ /** @param {FeedbackMessageData} data */
43
+ MaxLength.getMessage = async data => getLocalizedMessage({ data, localize });
44
+ /** @param {FeedbackMessageData} data */
45
+ MinMaxLength.getMessage = async data => getLocalizedMessage({ data, localize });
46
+ /** @param {FeedbackMessageData} data */
47
+ Pattern.getMessage = async data => getLocalizedMessage({ data, localize });
48
+ /** @param {FeedbackMessageData} data */
49
+ IsEmail.getMessage = async data => getLocalizedMessage({ data, localize });
50
+ /** @param {FeedbackMessageData} data */
51
+ IsNumber.getMessage = async data => getLocalizedMessage({ data, localize });
52
+ /** @param {FeedbackMessageData} data */
53
+ MinNumber.getMessage = async data => getLocalizedMessage({ data, localize });
54
+ /** @param {FeedbackMessageData} data */
55
+ MaxNumber.getMessage = async data => getLocalizedMessage({ data, localize });
56
+ /** @param {FeedbackMessageData} data */
57
+ MinMaxNumber.getMessage = async data => getLocalizedMessage({ data, localize });
58
+ /** @param {FeedbackMessageData} data */
59
+ IsDate.getMessage = async data => getLocalizedMessage({ data, localize });
60
+ /** @param {FeedbackMessageData} data */
61
+ MinDate.getMessage = async data => getLocalizedMessage({ data, localize });
62
+ /** @param {FeedbackMessageData} data */
63
+ MaxDate.getMessage = async data => getLocalizedMessage({ data, localize });
64
+ /** @param {FeedbackMessageData} data */
65
+ MinMaxDate.getMessage = async data => getLocalizedMessage({ data, localize });
66
+ /** @param {FeedbackMessageData} data */
67
+ IsDateDisabled.getMessage = async data => getLocalizedMessage({ data, localize });
68
+
69
+ DefaultSuccess.getMessage = async data => {
70
+ await loadValidateNamespace({ localize });
71
+ const randomKeys = localize.msg('lion-validate:success.RandomOk').split(',');
72
+ const key = randomKeys[Math.floor(Math.random() * randomKeys.length)].trim();
73
+ return localize.msg(`lion-validate:${key}`, data);
74
+ };
75
+
76
+ isLoaded = true;
77
+ }
@@ -0,0 +1,39 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import { PhoneNumber } from '@lion/ui/input-tel.js';
3
+ import { loadValidateNamespace } from '../getLocalizedMessage.js';
4
+
5
+ /**
6
+ * @typedef {import('../../../form-core/types/validate/validate.js').FeedbackMessageData} FeedbackMessageData
7
+ * @typedef {import('@lion/ui/localize.js').LocalizeManager} LocalizeManager
8
+ */
9
+
10
+ let isLoaded = false;
11
+
12
+ /**
13
+ * @param {{localize: LocalizeManager}} opts allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager
14
+ */
15
+ export function loadInputTelMessagesNoSideEffects({ localize }) {
16
+ if (isLoaded === true) return;
17
+
18
+ /** @param {FeedbackMessageData} data */
19
+ // @ts-ignore
20
+ PhoneNumber.getMessage = async data => {
21
+ await loadValidateNamespace({ localize });
22
+ const { type, outcome } = data;
23
+ if (outcome === 'too-long') {
24
+ // TODO: get max-length of country and use MaxLength validator
25
+ return localize.msg(`lion-validate:${type}.Pattern`, data);
26
+ }
27
+ if (outcome === 'too-short') {
28
+ // TODO: get min-length of country and use MinLength validator
29
+ return localize.msg(`lion-validate:${type}.Pattern`, data);
30
+ }
31
+ // TODO: add a more specific message here
32
+ if (outcome === 'invalid-country-code') {
33
+ return localize.msg(`lion-validate:${type}.Pattern`, data);
34
+ }
35
+ return localize.msg(`lion-validate:${type}.Pattern`, data);
36
+ };
37
+
38
+ isLoaded = true;
39
+ }
@@ -0,0 +1,105 @@
1
+ /* eslint-disable no-unused-vars, no-param-reassign */
2
+ import { expect } from '@open-wc/testing';
3
+ import { getLocalizeManager } from '@lion/ui/localize-no-side-effects.js';
4
+ import { MinDate, MinLength, Required } from '@lion/ui/form-core.js';
5
+ import { loadDefaultFeedbackMessagesNoSideEffects } from '@lion/ui/validate-messages-no-side-effects.js';
6
+
7
+ /**
8
+ * @typedef {import('../../form-core/src/validate/Validator.js').Validator} Validator
9
+ */
10
+
11
+ /**
12
+ * @param {Validator} validatorEl
13
+ */
14
+ function getProtectedMembers(validatorEl) {
15
+ // @ts-ignore protected members allowed in test
16
+ return {
17
+ // @ts-ignore
18
+ getMessage: (...args) => validatorEl._getMessage(...args),
19
+ };
20
+ }
21
+
22
+ /**
23
+ * @typedef {import('@lion/ui/types/form-core.js').FormControlHost} FormControlHost
24
+ * @typedef {ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor | DateConstructor | 'iban' | 'email'} modelValueType
25
+ */
26
+
27
+ describe('loadDefaultFeedbackMessagesNoSideEffects', () => {
28
+ const localizeManager = getLocalizeManager();
29
+
30
+ it('will set default feedback message for Required', async () => {
31
+ const el = new Required();
32
+ const { getMessage } = getProtectedMembers(el);
33
+ expect(await getMessage()).to.equals(
34
+ 'Please configure an error message for "Required" by overriding "static async getMessage()"',
35
+ );
36
+
37
+ loadDefaultFeedbackMessagesNoSideEffects({ localize: localizeManager });
38
+ expect(await getMessage({ fieldName: 'password' })).to.equal('Please enter a(n) password.');
39
+ });
40
+
41
+ it('passes data to the feedback message', async () => {
42
+ const el = new MinLength(10);
43
+ const { getMessage } = getProtectedMembers(el);
44
+
45
+ loadDefaultFeedbackMessagesNoSideEffects({ localize: localizeManager });
46
+ expect(await getMessage({ fieldName: 'password' })).to.equal(
47
+ 'Please enter a correct password (at least 10 characters).',
48
+ );
49
+
50
+ const el2 = new MinDate(new Date('2024-01-29'));
51
+ // @ts-ignore protected members allowed in test
52
+ expect(await el2._getMessage({ fieldName: 'date' })).to.equal(
53
+ 'Please enter a(n) date after or equal to 29/01/2024.',
54
+ );
55
+ });
56
+
57
+ it('will set select specific feedback message for Required when operationMode is set', async () => {
58
+ const el = new Required();
59
+ loadDefaultFeedbackMessagesNoSideEffects({ localize: localizeManager });
60
+ const { getMessage } = getProtectedMembers(el);
61
+ const formControl = { operationMode: 'select' };
62
+ expect(await getMessage({ fieldName: 'password', formControl })).to.equal(
63
+ 'Please select a(n) password.',
64
+ );
65
+ });
66
+
67
+ it('will set upload specific feedback message for Required when operationMode is set', async () => {
68
+ const el = new Required();
69
+ const { getMessage } = getProtectedMembers(el);
70
+
71
+ loadDefaultFeedbackMessagesNoSideEffects({ localize: localizeManager });
72
+ const formControl = { operationMode: 'upload' };
73
+ expect(await getMessage({ fieldName: 'password', formControl })).to.equal(
74
+ 'Please upload a(n) password.',
75
+ );
76
+ });
77
+
78
+ it('will set ignore the operationMode for any other validator then Required, e.g. MinLength', async () => {
79
+ const el = new MinLength(10);
80
+ const { getMessage } = getProtectedMembers(el);
81
+
82
+ loadDefaultFeedbackMessagesNoSideEffects({ localize: localizeManager });
83
+ const formControl = { operationMode: 'select' };
84
+ expect(await getMessage({ fieldName: 'password', formControl })).to.equal(
85
+ 'Please enter a correct password (at least 10 characters).',
86
+ );
87
+ });
88
+
89
+ it('will await loading of translations when switching locale', async () => {
90
+ const el = new Required();
91
+ const { getMessage } = getProtectedMembers(el);
92
+ loadDefaultFeedbackMessagesNoSideEffects({ localize: localizeManager });
93
+ expect(await getMessage({ fieldName: 'password' })).to.equal('Please enter a(n) password.');
94
+ expect(await getMessage({ fieldName: 'user name' })).to.equal('Please enter a(n) user name.');
95
+
96
+ localizeManager.locale = 'de-DE';
97
+ await localizeManager.loadingComplete;
98
+ expect(await getMessage({ fieldName: 'Password' })).to.equal(
99
+ 'Password muss ausgefüllt werden.',
100
+ );
101
+ expect(await getMessage({ fieldName: 'Benutzername' })).to.equal(
102
+ 'Benutzername muss ausgefüllt werden.',
103
+ );
104
+ });
105
+ });
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Моля, въведете също {fieldName}.',
4
+ _RequiredUpload: 'Моля, качете {fieldName}.',
5
+ _RequiredSelect: 'Wählen Sie auch einen Wert für {fieldName} aus.',
4
6
  EqualsLength: 'Моля, въведете правилно {fieldName} от точно {params} знака.',
5
7
  MinLength: 'Моля, въведете правилен {fieldName} (поне {params}).',
6
8
  MaxLength: 'Моля, въведете правилен {fieldName} (до {params} знака).',
@@ -22,6 +24,8 @@ export default {
22
24
  },
23
25
  warning: {
24
26
  Required: 'Моля, въведете също {fieldName}.',
27
+ _RequiredUpload: 'Моля, качете {fieldName}.',
28
+ _RequiredSelect: 'Wählen Sie auch einen Wert für {fieldName} aus.',
25
29
  EqualsLength: 'Моля, въведете правилно {fieldName} от точно {params} знака.',
26
30
  MinLength: 'Моля, въведете правилен {fieldName} (поне {params}).',
27
31
  MaxLength: 'Моля, въведете правилен {fieldName} (до {params} знака).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Zadejte rovněž {fieldName}.',
4
+ _RequiredUpload: 'Nahrajte {fieldname}.',
5
+ _RequiredSelect: 'Vyberte rovněž {fieldname}.',
4
6
  EqualsLength: 'Zadejte správné {fieldName}, přesně {params} znaků.',
5
7
  MinLength: 'Zadejte správné {fieldName} (alespoň {params}).',
6
8
  MaxLength: 'Zadejte správné {fieldName} (až {params} znaků).',
@@ -21,6 +23,8 @@ export default {
21
23
  },
22
24
  warning: {
23
25
  Required: 'Zadejte rovněž {fieldName}.',
26
+ _RequiredUpload: 'Nahrajte {fieldname}.',
27
+ _RequiredSelect: 'Vyberte rovněž {fieldname}.',
24
28
  EqualsLength: 'Zadejte správné {fieldName}, přesně {params} znaků.',
25
29
  MinLength: 'Zadejte správné {fieldName} (alespoň {params}).',
26
30
  MaxLength: 'Zadejte správné {fieldName} (až {params} znaků).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: '{fieldName} muss ausgefüllt werden.',
4
+ _RequiredUpload: 'Bitte laden Sie ein/e/n {fieldName} hoch.',
5
+ _RequiredSelect: 'Wählen Sie auch einen Wert für {fieldName} aus.',
4
6
  EqualsLength: 'Geben Sie einen korrekten Wert für {fieldName} mit exakt {params} Zeichen ein.',
5
7
  MinLength: 'Du musst mindestens {params} Zeichen eingeben.',
6
8
  MaxLength: 'Du kannst maximal {params} Zeichen eingeben.',
@@ -23,6 +25,8 @@ export default {
23
25
  },
24
26
  warning: {
25
27
  Required: '{fieldName} sollte ausgefüllt werden.',
28
+ _RequiredUpload: 'Bitte laden Sie ein/e/n {fieldName} hoch.',
29
+ _RequiredSelect: 'Wählen Sie auch einen Wert für {fieldName} aus.',
26
30
  EqualsLength: 'Geben Sie einen korrekten Wert für {fieldName} mit exakt {params} Zeichen ein.',
27
31
  MinLength: 'Du solltest mindestens {params} Zeichen eingeben.',
28
32
  MaxLength: 'Du kannst maximal {params} Zeichen eingeben.',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Please enter a(n) {fieldName}.',
4
+ _RequiredUpload: 'Please upload a(n) {fieldName}.',
5
+ _RequiredSelect: 'Please select a(n) {fieldName}.',
4
6
  EqualsLength: 'Please enter a correct {fieldName} of exactly {params} characters.',
5
7
  MinLength: 'Please enter a correct {fieldName} (at least {params} characters).',
6
8
  MaxLength: 'Please enter a correct {fieldName} (up to {params} characters).',
@@ -22,8 +24,10 @@ export default {
22
24
  },
23
25
  warning: {
24
26
  Required: 'Please enter a(n) {fieldName}.',
27
+ _RequiredUpload: 'Please upload a(n) {fieldName}.',
28
+ _RequiredSelect: 'Please select a(n) {fieldName}.',
25
29
  EqualsLength: 'Please enter a correct {fieldName} of exactly {params} characters.',
26
- MinLength: 'Please enter a correct {fieldName} (at least {params}).',
30
+ MinLength: 'Please enter a correct {fieldName} (at least {params} characters).',
27
31
  MaxLength: 'Please enter a correct {fieldName} (up to {params} characters).',
28
32
  MinMaxLength:
29
33
  'Please enter a correct {fieldName} (between {params.min} and {params.max} characters).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Introduzca también un/a {fieldName}.',
4
+ _RequiredUpload: 'Cargue un {fieldName}.',
5
+ _RequiredSelect: 'Seleccione también un/a {fieldname}.',
4
6
  EqualsLength: 'Introduzca un/a {fieldName} correcto/a de exactamente {params} caracteres.',
5
7
  MinLength: 'Introduzca un/a {fieldName} correcto/a (de al menos {params} caracteres).',
6
8
  MaxLength: 'Introduzca un/a {fieldName} correcto/a (hasta {params} caracteres).',
@@ -23,6 +25,8 @@ export default {
23
25
  },
24
26
  warning: {
25
27
  Required: 'Introduzca también un/a {fieldName}.',
28
+ _RequiredUpload: 'Cargue un {fieldName}.',
29
+ _RequiredSelect: 'Seleccione también un/a {fieldname}.',
26
30
  EqualsLength: 'Introduzca un/a {fieldName} correcto/a de exactamente {params} caracteres.',
27
31
  MinLength: 'Introduzca un/a {fieldName} correcto/a (de al menos {params} caracteres).',
28
32
  MaxLength: 'Introduzca un/a {fieldName} correcto/a (hasta {params} caracteres).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Veuillez également indiquer un(e) {fieldName}.',
4
+ _RequiredUpload: 'Veuillez télécharger un(e) {fieldName}.',
5
+ _RequiredSelect: 'Veuillez également sélectionner un(e) {fieldName}.',
4
6
  EqualsLength:
5
7
  'Veuillez saisir un(e) {fieldName} correct(e) comptant précisément {params} caractères.',
6
8
  MinLength: 'Veuillez indiquer un(e) {fieldName} correct(e) (au moins {params}).',
@@ -24,6 +26,8 @@ export default {
24
26
  },
25
27
  warning: {
26
28
  Required: 'Veuillez également indiquer un(e) {fieldName}.',
29
+ _RequiredUpload: 'Veuillez télécharger un(e) {fieldName}.',
30
+ _RequiredSelect: 'Veuillez également sélectionner un(e) {fieldName}.',
27
31
  EqualsLength:
28
32
  'Veuillez saisir un(e) {fieldName} correct(e) comptant précisément {params} caractères.',
29
33
  MinLength: 'Veuillez indiquer un(e) {fieldName} correct(e) (au moins {params}).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Továbbá adjon meg egy {fieldName} értéket.',
4
+ _RequiredUpload: 'Töltsön fel egy {fieldName} elemet.',
5
+ _RequiredSelect: 'Továbbá válasszon ki egy {fieldname} értéket.',
4
6
  EqualsLength: 'Adjon meg egy helyes {fieldName} értéket (pontosan {params} karakter).',
5
7
  MinLength: 'Adjon meg egy helyes {fieldName} értéket (legalább {params}).',
6
8
  MaxLength: 'Adjon meg egy helyes {fieldName} értéket (legfeljebb {params} karakter).',
@@ -23,6 +25,8 @@ export default {
23
25
  },
24
26
  warning: {
25
27
  Required: 'Továbbá adjon meg egy {fieldName} értéket.',
28
+ _RequiredUpload: 'Töltsön fel egy {fieldName} elemet.',
29
+ _RequiredSelect: 'Továbbá válasszon ki egy {fieldname} értéket.',
26
30
  EqualsLength: 'Adjon meg egy helyes {fieldName} értéket (pontosan {params} karakter).',
27
31
  MinLength: 'Adjon meg egy helyes {fieldName} értéket (legalább {params}).',
28
32
  MaxLength: 'Adjon meg egy helyes {fieldName} értéket (legfeljebb {params} karakter).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Inserire anche un(a) {fieldName}.',
4
+ _RequiredUpload: 'Caricare un {fieldName}.',
5
+ _RequiredSelect: 'Selezionare anche un(a) {fieldname}.',
4
6
  EqualsLength: 'Inserire un(a) {fieldName} corretto(a) di esattamente {params} caratteri.',
5
7
  MinLength: 'Inserire un(a) {fieldName} corretto(a) (almeno {params}).',
6
8
  MaxLength: 'Inserire un(a) {fieldName} corretto(a) (fino a {params} caratteri).',
@@ -23,6 +25,8 @@ export default {
23
25
  },
24
26
  warning: {
25
27
  Required: 'Inserire anche un(a) {fieldName}.',
28
+ _RequiredUpload: 'Caricare un {fieldName}.',
29
+ _RequiredSelect: 'Selezionare anche un(a) {fieldname}.',
26
30
  EqualsLength: 'Inserire un(a) {fieldName} corretto(a) di esattamente {params} caratteri.',
27
31
  MinLength: 'Inserire un(a) {fieldName} corretto(a) (almeno {params}).',
28
32
  MaxLength: 'Inserire un(a) {fieldName} corretto(a) (fino a {params} caratteri).',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Vul een {fieldName} in.',
4
+ _RequiredUpload: 'Upload een {fieldName}.',
5
+ _RequiredSelect: 'Selecteer een {fieldname}.',
4
6
  EqualsLength: 'Vul een {fieldName} in gelijk aan {params} karakters.',
5
7
  MinLength: 'Vul een {fieldName} in van minimaal {params} karakters.',
6
8
  MaxLength: 'Vul een {fieldName} in van maximaal {params} karakters.',
@@ -22,6 +24,8 @@ export default {
22
24
  },
23
25
  warning: {
24
26
  Required: 'Vul een {fieldName} in.',
27
+ _RequiredUpload: 'Upload een {fieldName}.',
28
+ _RequiredSelect: 'Selecteer een {fieldname}.',
25
29
  EqualsLength: 'Vul een {fieldName} in gelijk aan {params} karakters.',
26
30
  MinLength: 'Vul een {fieldName} in van minimaal {params} karakters.',
27
31
  MaxLength: 'Vul een {fieldName} in van maximaal {params} karakters.',
@@ -1,6 +1,8 @@
1
1
  export default {
2
2
  error: {
3
3
  Required: 'Proszę również podać wartość {fieldName}.',
4
+ _RequiredUpload: 'Prześlij plik {fieldName}.',
5
+ _RequiredSelect: 'Wprowadź prawidłową wartość w polu {fieldname}.',
4
6
  EqualsLength: 'Wprowadź prawidłową wartość w polu {fieldName} (maks. liczba znaków: {params}).',
5
7
  MinLength: 'Proszę podać prawidłową wartość {fieldName} (co najmniej {params} znaków).',
6
8
  MaxLength: 'Proszę podać prawidłową wartość {fieldName} (maks. {params} znaków).',
@@ -22,6 +24,8 @@ export default {
22
24
  },
23
25
  warning: {
24
26
  Required: 'Proszę również podać wartość {fieldName}.',
27
+ _RequiredUpload: 'Prześlij plik {fieldName}.',
28
+ _RequiredSelect: 'Wprowadź prawidłową wartość w polu {fieldname}.',
25
29
  EqualsLength: 'Wprowadź prawidłową wartość w polu {fieldName} (maks. liczba znaków: {params}).',
26
30
  MinLength: 'Proszę podać prawidłową wartość {fieldName} (co najmniej {params} znaków).',
27
31
  MaxLength: 'Proszę podać prawidłową wartość {fieldName} (maks. {params} znaków).',