@lion/ui 0.6.0-alpha.0 → 0.6.0-alpha.2

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 (107) hide show
  1. package/components/core/src/ScopedElementsMixin.js +146 -0
  2. package/components/core/test/SlotMixin.test.js +9 -9
  3. package/components/form-core/src/validate/ValidateMixin.js +1 -1
  4. package/components/form-core/types/validate/ValidateMixinTypes.ts +14 -1
  5. package/components/input-datepicker/src/LionInputDatepicker.js +1 -1
  6. package/components/input-file/src/LionInputFile.js +1 -1
  7. package/components/input-file/src/LionSelectedFileList.js +1 -1
  8. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +2 -1
  9. package/components/listbox/src/ListboxMixin.js +1 -1
  10. package/components/overlays/test/local-positioning.test.js +4 -2
  11. package/components/select-rich/src/LionSelectRich.js +1 -1
  12. package/components/switch/src/LionSwitch.js +1 -1
  13. package/components/textarea/test/lion-textarea.test.js +4 -2
  14. package/components/validate-messages/src/getLocalizedMessage.js +111 -0
  15. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -179
  16. package/components/validate-messages/src/per-entrypoint/README.md +16 -0
  17. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +22 -0
  18. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +77 -0
  19. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +39 -0
  20. package/components/validate-messages/translations/fr.js +2 -2
  21. package/custom-elements.json +2128 -7
  22. package/dist-types/components/core/src/ScopedElementsMixin.d.ts +364 -0
  23. package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -0
  24. package/dist-types/components/form-core/src/LionField.d.ts +1 -1
  25. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts +13 -1
  26. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts.map +1 -1
  27. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +356 -1
  28. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts.map +1 -1
  29. package/dist-types/components/input-file/src/LionInputFile.d.ts +349 -1
  30. package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
  31. package/dist-types/components/input-file/src/LionSelectedFileList.d.ts +345 -1
  32. package/dist-types/components/input-file/src/LionSelectedFileList.d.ts.map +1 -1
  33. package/dist-types/components/listbox/src/LionListbox.d.ts +1 -1
  34. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +345 -1
  35. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  36. package/dist-types/components/switch/src/LionSwitch.d.ts +348 -2
  37. package/dist-types/components/switch/src/LionSwitch.d.ts.map +1 -1
  38. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts +13 -0
  39. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts.map +1 -0
  40. package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -1
  41. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts +9 -0
  42. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts.map +1 -0
  43. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts +9 -0
  44. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts.map +1 -0
  45. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts +9 -0
  46. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts.map +1 -0
  47. package/dist-types/exports/validate-messages-no-side-effects.d.ts +3 -0
  48. package/dist-types/tsconfig.tsbuildinfo +1 -1
  49. package/docs/components/accordion/overview.md +2 -2
  50. package/docs/components/checkbox-group/overview.md +2 -2
  51. package/docs/components/collapsible/overview.md +1 -1
  52. package/docs/components/combobox/overview.md +1 -1
  53. package/docs/components/combobox/use-cases.md +1 -1
  54. package/docs/components/dialog/overview.md +1 -1
  55. package/docs/components/fieldset/overview.md +5 -5
  56. package/docs/components/form/overview.md +3 -3
  57. package/docs/components/icon/use-cases.md +1 -1
  58. package/docs/components/input/overview.md +1 -1
  59. package/docs/components/input-amount/overview.md +3 -3
  60. package/docs/components/input-date/overview.md +3 -3
  61. package/docs/components/input-datepicker/overview.md +5 -5
  62. package/docs/components/input-email/overview.md +2 -2
  63. package/docs/components/input-file/overview.md +1 -1
  64. package/docs/components/input-file/use-cases.md +1 -1
  65. package/docs/components/input-iban/overview.md +2 -2
  66. package/docs/components/input-range/overview.md +2 -2
  67. package/docs/components/input-stepper/overview.md +1 -1
  68. package/docs/components/input-tel/overview.md +1 -1
  69. package/docs/components/input-tel/use-cases.md +6 -6
  70. package/docs/components/input-tel-dropdown/overview.md +1 -1
  71. package/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +1 -1
  72. package/docs/components/radio-group/overview.md +3 -3
  73. package/docs/components/select-rich/use-cases.md +1 -1
  74. package/docs/components/switch/overview.md +2 -2
  75. package/docs/components/tabs/examples.md +1 -1
  76. package/docs/fundamentals/index.md +4 -4
  77. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  78. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  79. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  80. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  81. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  82. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  83. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  84. package/docs/fundamentals/rationales/accessibility.md +1 -1
  85. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  86. package/docs/fundamentals/systems/core/overview.md +1 -1
  87. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  88. package/docs/fundamentals/systems/form/model-value.md +1 -1
  89. package/docs/fundamentals/systems/form/overview.md +28 -28
  90. package/docs/fundamentals/systems/form/validate.md +1 -1
  91. package/docs/fundamentals/systems/localize/overview.md +4 -4
  92. package/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs +2 -1
  93. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  94. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  95. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  96. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  97. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  98. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  99. package/docs/guides/how-to/create-a-form.md +4 -4
  100. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  101. package/docs/guides/index.md +8 -8
  102. package/docs/guides/principles/index.md +5 -5
  103. package/docs/guides/principles/scoped-elements.md +4 -3
  104. package/docs/guides/principles/styling.md +1 -1
  105. package/exports/validate-messages-no-side-effects.js +3 -0
  106. package/package.json +6 -6
  107. package/validate-messages-no-side-effects.js +3 -0
@@ -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
+ }
@@ -13,8 +13,8 @@ export default {
13
13
  MaxNumber: 'Veuillez indiquer un(e) {fieldName} inférieur(e) à {params}.',
14
14
  MinMaxNumber: 'Veuillez indiquer un(e) {fieldName} entre {params.min} et {params.max}.',
15
15
  IsDate: ' Veuillez entrer la date (JJ-MM-AAAA).',
16
- MinDate: 'Veuillez indiquer un(e) {fieldName} après {params.min, date, YYYYMMDD}.',
17
- MaxDate: 'Veuillez indiquer un(e) {fieldName} avant {params.max, date, YYYYMMDD}.',
16
+ MinDate: 'Veuillez indiquer un(e) {fieldName} après {params, date, YYYYMMDD}.',
17
+ MaxDate: 'Veuillez indiquer un(e) {fieldName} avant {params, date, YYYYMMDD}.',
18
18
  MinMaxDate:
19
19
  'Veuillez indiquer un(e) {fieldName} entre {params.min, date, YYYYMMDD} et {params.max, date, YYYYMMDD}.',
20
20
  IsDateDisabled: "Cette date n'est pas disponible, veuillez en choisir une autre.",