@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.
- package/components/core/src/ScopedElementsMixin.js +146 -0
- package/components/core/test/SlotMixin.test.js +9 -9
- package/components/form-core/src/validate/ValidateMixin.js +1 -1
- package/components/form-core/types/validate/ValidateMixinTypes.ts +14 -1
- package/components/input-datepicker/src/LionInputDatepicker.js +1 -1
- package/components/input-file/src/LionInputFile.js +1 -1
- package/components/input-file/src/LionSelectedFileList.js +1 -1
- package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +2 -1
- package/components/listbox/src/ListboxMixin.js +1 -1
- package/components/overlays/test/local-positioning.test.js +4 -2
- package/components/select-rich/src/LionSelectRich.js +1 -1
- package/components/switch/src/LionSwitch.js +1 -1
- package/components/textarea/test/lion-textarea.test.js +4 -2
- package/components/validate-messages/src/getLocalizedMessage.js +111 -0
- package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -179
- package/components/validate-messages/src/per-entrypoint/README.md +16 -0
- package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +22 -0
- package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +77 -0
- package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +39 -0
- package/components/validate-messages/translations/fr.js +2 -2
- package/custom-elements.json +2128 -7
- package/dist-types/components/core/src/ScopedElementsMixin.d.ts +364 -0
- package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -0
- package/dist-types/components/form-core/src/LionField.d.ts +1 -1
- package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts +13 -1
- package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts.map +1 -1
- package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +356 -1
- package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts.map +1 -1
- package/dist-types/components/input-file/src/LionInputFile.d.ts +349 -1
- package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
- package/dist-types/components/input-file/src/LionSelectedFileList.d.ts +345 -1
- package/dist-types/components/input-file/src/LionSelectedFileList.d.ts.map +1 -1
- package/dist-types/components/listbox/src/LionListbox.d.ts +1 -1
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts +345 -1
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
- package/dist-types/components/switch/src/LionSwitch.d.ts +348 -2
- package/dist-types/components/switch/src/LionSwitch.d.ts.map +1 -1
- package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts +13 -0
- package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts.map +1 -0
- package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -1
- package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts +9 -0
- package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts.map +1 -0
- package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts +9 -0
- package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts.map +1 -0
- package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts +9 -0
- package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts.map +1 -0
- package/dist-types/exports/validate-messages-no-side-effects.d.ts +3 -0
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/accordion/overview.md +2 -2
- package/docs/components/checkbox-group/overview.md +2 -2
- package/docs/components/collapsible/overview.md +1 -1
- package/docs/components/combobox/overview.md +1 -1
- package/docs/components/combobox/use-cases.md +1 -1
- package/docs/components/dialog/overview.md +1 -1
- package/docs/components/fieldset/overview.md +5 -5
- package/docs/components/form/overview.md +3 -3
- package/docs/components/icon/use-cases.md +1 -1
- package/docs/components/input/overview.md +1 -1
- package/docs/components/input-amount/overview.md +3 -3
- package/docs/components/input-date/overview.md +3 -3
- package/docs/components/input-datepicker/overview.md +5 -5
- package/docs/components/input-email/overview.md +2 -2
- package/docs/components/input-file/overview.md +1 -1
- package/docs/components/input-file/use-cases.md +1 -1
- package/docs/components/input-iban/overview.md +2 -2
- package/docs/components/input-range/overview.md +2 -2
- package/docs/components/input-stepper/overview.md +1 -1
- package/docs/components/input-tel/overview.md +1 -1
- package/docs/components/input-tel/use-cases.md +6 -6
- package/docs/components/input-tel-dropdown/overview.md +1 -1
- package/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +1 -1
- package/docs/components/radio-group/overview.md +3 -3
- package/docs/components/select-rich/use-cases.md +1 -1
- package/docs/components/switch/overview.md +2 -2
- package/docs/components/tabs/examples.md +1 -1
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
- package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
- package/docs/fundamentals/rationales/accessibility.md +1 -1
- package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
- package/docs/fundamentals/systems/core/overview.md +1 -1
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
- package/docs/fundamentals/systems/form/model-value.md +1 -1
- package/docs/fundamentals/systems/form/overview.md +28 -28
- package/docs/fundamentals/systems/form/validate.md +1 -1
- package/docs/fundamentals/systems/localize/overview.md +4 -4
- package/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs +2 -1
- package/docs/fundamentals/systems/overlays/configuration.md +2 -2
- package/docs/fundamentals/systems/overlays/overview.md +5 -5
- package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
- package/docs/fundamentals/tools/helpers/overview.md +1 -1
- package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
- package/docs/guides/how-to/create-a-custom-field.md +5 -5
- package/docs/guides/how-to/create-a-form.md +4 -4
- package/docs/guides/how-to/extend-a-native-input.md +2 -2
- package/docs/guides/index.md +8 -8
- package/docs/guides/principles/index.md +5 -5
- package/docs/guides/principles/scoped-elements.md +4 -3
- package/docs/guides/principles/styling.md +1 -1
- package/exports/validate-messages-no-side-effects.js +3 -0
- package/package.json +6 -6
- package/validate-messages-no-side-effects.js +3 -0
|
@@ -1,197 +1,27 @@
|
|
|
1
1
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
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
|
|
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 (
|
|
18
|
+
if (isLoaded === true) {
|
|
37
19
|
return;
|
|
38
20
|
}
|
|
39
21
|
|
|
40
|
-
|
|
41
|
-
|
|
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
|
|
17
|
-
MaxDate: 'Veuillez indiquer un(e) {fieldName} avant {params
|
|
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.",
|