@lion/ui 0.0.8 → 0.0.9
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/validate-messages/src/loadDefaultFeedbackMessages.js +2 -181
- package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +194 -0
- package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +1 -18
- package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.js +49 -0
- package/custom-elements.json +119 -0
- package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessages.d.ts +3 -0
- package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessages.d.ts.map +1 -1
- package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts +10 -0
- package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -0
- package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessages.test.d.ts.map +1 -1
- package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts +2 -0
- package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -0
- package/dist-types/exports/validate-messages-no-side-effects.d.ts +2 -0
- package/dist-types/exports/validate-messages-no-side-effects.d.ts.map +1 -0
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- 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-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/radio-group/overview.md +3 -3
- package/docs/components/select-rich/use-cases.md +1 -1
- 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/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/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/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/styling.md +1 -1
- package/exports/validate-messages-no-side-effects.js +1 -0
- package/package.json +1 -1
|
@@ -1,190 +1,11 @@
|
|
|
1
1
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
2
|
import { localize } from '@lion/ui/localize.js';
|
|
3
|
-
import {
|
|
4
|
-
DefaultSuccess,
|
|
5
|
-
IsDate,
|
|
6
|
-
IsDateDisabled,
|
|
7
|
-
MaxDate,
|
|
8
|
-
MinDate,
|
|
9
|
-
MinMaxDate,
|
|
10
|
-
IsNumber,
|
|
11
|
-
MaxNumber,
|
|
12
|
-
MinMaxNumber,
|
|
13
|
-
MinNumber,
|
|
14
|
-
Required,
|
|
15
|
-
EqualsLength,
|
|
16
|
-
IsEmail,
|
|
17
|
-
MaxLength,
|
|
18
|
-
MinLength,
|
|
19
|
-
MinMaxLength,
|
|
20
|
-
Pattern,
|
|
21
|
-
} from '@lion/ui/form-core.js';
|
|
22
|
-
import { PhoneNumber } from '@lion/ui/input-tel.js';
|
|
3
|
+
import { loadDefaultFeedbackMessagesNoSideEffects } from './loadDefaultFeedbackMessagesNoSideEffects.js';
|
|
23
4
|
|
|
24
5
|
/**
|
|
25
6
|
* @typedef {import('../../form-core/types/validate/validate.js').FeedbackMessageData} FeedbackMessageData
|
|
26
7
|
*/
|
|
27
8
|
|
|
28
|
-
let loaded = false;
|
|
29
|
-
|
|
30
9
|
export function loadDefaultFeedbackMessages() {
|
|
31
|
-
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const forMessagesToBeReady = () =>
|
|
36
|
-
localize.loadNamespace(
|
|
37
|
-
{
|
|
38
|
-
'lion-validate': /** @param {string} locale */ locale => {
|
|
39
|
-
switch (locale) {
|
|
40
|
-
case 'bg-BG':
|
|
41
|
-
return import('@lion/ui/validate-messages-translations/bg-BG.js');
|
|
42
|
-
case 'bg':
|
|
43
|
-
return import('@lion/ui/validate-messages-translations/bg.js');
|
|
44
|
-
case 'cs-CZ':
|
|
45
|
-
return import('@lion/ui/validate-messages-translations/cs-CZ.js');
|
|
46
|
-
case 'cs':
|
|
47
|
-
return import('@lion/ui/validate-messages-translations/cs.js');
|
|
48
|
-
case 'de-DE':
|
|
49
|
-
return import('@lion/ui/validate-messages-translations/de-DE.js');
|
|
50
|
-
case 'de':
|
|
51
|
-
return import('@lion/ui/validate-messages-translations/de.js');
|
|
52
|
-
case 'en-AU':
|
|
53
|
-
return import('@lion/ui/validate-messages-translations/en-AU.js');
|
|
54
|
-
case 'en-GB':
|
|
55
|
-
return import('@lion/ui/validate-messages-translations/en-GB.js');
|
|
56
|
-
case 'en-US':
|
|
57
|
-
return import('@lion/ui/validate-messages-translations/en-US.js');
|
|
58
|
-
case 'en-PH':
|
|
59
|
-
return import('@lion/ui/validate-messages-translations/en-PH.js');
|
|
60
|
-
case 'en':
|
|
61
|
-
return import('@lion/ui/validate-messages-translations/en.js');
|
|
62
|
-
case 'es-ES':
|
|
63
|
-
return import('@lion/ui/validate-messages-translations/es-ES.js');
|
|
64
|
-
case 'es':
|
|
65
|
-
return import('@lion/ui/validate-messages-translations/es.js');
|
|
66
|
-
case 'fr-FR':
|
|
67
|
-
return import('@lion/ui/validate-messages-translations/fr-FR.js');
|
|
68
|
-
case 'fr-BE':
|
|
69
|
-
return import('@lion/ui/validate-messages-translations/fr-BE.js');
|
|
70
|
-
case 'fr':
|
|
71
|
-
return import('@lion/ui/validate-messages-translations/fr.js');
|
|
72
|
-
case 'hu-HU':
|
|
73
|
-
return import('@lion/ui/validate-messages-translations/hu-HU.js');
|
|
74
|
-
case 'hu':
|
|
75
|
-
return import('@lion/ui/validate-messages-translations/hu.js');
|
|
76
|
-
case 'it-IT':
|
|
77
|
-
return import('@lion/ui/validate-messages-translations/it-IT.js');
|
|
78
|
-
case 'it':
|
|
79
|
-
return import('@lion/ui/validate-messages-translations/it.js');
|
|
80
|
-
case 'nl-BE':
|
|
81
|
-
return import('@lion/ui/validate-messages-translations/nl-BE.js');
|
|
82
|
-
case 'nl-NL':
|
|
83
|
-
return import('@lion/ui/validate-messages-translations/nl-NL.js');
|
|
84
|
-
case 'nl':
|
|
85
|
-
return import('@lion/ui/validate-messages-translations/nl.js');
|
|
86
|
-
case 'pl-PL':
|
|
87
|
-
return import('@lion/ui/validate-messages-translations/pl-PL.js');
|
|
88
|
-
case 'pl':
|
|
89
|
-
return import('@lion/ui/validate-messages-translations/pl.js');
|
|
90
|
-
case 'ro-RO':
|
|
91
|
-
return import('@lion/ui/validate-messages-translations/ro-RO.js');
|
|
92
|
-
case 'ro':
|
|
93
|
-
return import('@lion/ui/validate-messages-translations/ro.js');
|
|
94
|
-
case 'ru-RU':
|
|
95
|
-
return import('@lion/ui/validate-messages-translations/ru-RU.js');
|
|
96
|
-
case 'ru':
|
|
97
|
-
return import('@lion/ui/validate-messages-translations/ru.js');
|
|
98
|
-
case 'sk-SK':
|
|
99
|
-
return import('@lion/ui/validate-messages-translations/sk-SK.js');
|
|
100
|
-
case 'sk':
|
|
101
|
-
return import('@lion/ui/validate-messages-translations/sk.js');
|
|
102
|
-
case 'uk-UA':
|
|
103
|
-
return import('@lion/ui/validate-messages-translations/uk-UA.js');
|
|
104
|
-
case 'uk':
|
|
105
|
-
return import('@lion/ui/validate-messages-translations/uk.js');
|
|
106
|
-
case 'zh-CN':
|
|
107
|
-
case 'zh':
|
|
108
|
-
return import('@lion/ui/validate-messages-translations/zh.js');
|
|
109
|
-
default:
|
|
110
|
-
return import('@lion/ui/validate-messages-translations/en.js');
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
{ locale: localize.locale },
|
|
115
|
-
);
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* @param {FeedbackMessageData} data
|
|
119
|
-
* @returns {Promise<string|Element>}
|
|
120
|
-
*/
|
|
121
|
-
const getLocalizedMessage = async data => {
|
|
122
|
-
await forMessagesToBeReady();
|
|
123
|
-
if (data) {
|
|
124
|
-
return localize.msg(`lion-validate:${data.type}.${data.name}`, data);
|
|
125
|
-
}
|
|
126
|
-
return '';
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
/** @param {FeedbackMessageData} data */
|
|
130
|
-
Required.getMessage = async data => getLocalizedMessage(data);
|
|
131
|
-
/** @param {FeedbackMessageData} data */
|
|
132
|
-
EqualsLength.getMessage = async data => getLocalizedMessage(data);
|
|
133
|
-
/** @param {FeedbackMessageData} data */
|
|
134
|
-
MinLength.getMessage = async data => getLocalizedMessage(data);
|
|
135
|
-
/** @param {FeedbackMessageData} data */
|
|
136
|
-
MaxLength.getMessage = async data => getLocalizedMessage(data);
|
|
137
|
-
/** @param {FeedbackMessageData} data */
|
|
138
|
-
MinMaxLength.getMessage = async data => getLocalizedMessage(data);
|
|
139
|
-
/** @param {FeedbackMessageData} data */
|
|
140
|
-
Pattern.getMessage = async data => getLocalizedMessage(data);
|
|
141
|
-
/** @param {FeedbackMessageData} data */
|
|
142
|
-
IsEmail.getMessage = async data => getLocalizedMessage(data);
|
|
143
|
-
/** @param {FeedbackMessageData} data */
|
|
144
|
-
IsNumber.getMessage = async data => getLocalizedMessage(data);
|
|
145
|
-
/** @param {FeedbackMessageData} data */
|
|
146
|
-
MinNumber.getMessage = async data => getLocalizedMessage(data);
|
|
147
|
-
/** @param {FeedbackMessageData} data */
|
|
148
|
-
MaxNumber.getMessage = async data => getLocalizedMessage(data);
|
|
149
|
-
/** @param {FeedbackMessageData} data */
|
|
150
|
-
MinMaxNumber.getMessage = async data => getLocalizedMessage(data);
|
|
151
|
-
/** @param {FeedbackMessageData} data */
|
|
152
|
-
IsDate.getMessage = async data => getLocalizedMessage(data);
|
|
153
|
-
/** @param {FeedbackMessageData} data */
|
|
154
|
-
MinDate.getMessage = async data => getLocalizedMessage(data);
|
|
155
|
-
/** @param {FeedbackMessageData} data */
|
|
156
|
-
MaxDate.getMessage = async data => getLocalizedMessage(data);
|
|
157
|
-
/** @param {FeedbackMessageData} data */
|
|
158
|
-
MinMaxDate.getMessage = async data => getLocalizedMessage(data);
|
|
159
|
-
/** @param {FeedbackMessageData} data */
|
|
160
|
-
IsDateDisabled.getMessage = async data => getLocalizedMessage(data);
|
|
161
|
-
|
|
162
|
-
DefaultSuccess.getMessage = async data => {
|
|
163
|
-
await forMessagesToBeReady();
|
|
164
|
-
const randomKeys = localize.msg('lion-validate:success.RandomOk').split(',');
|
|
165
|
-
const key = randomKeys[Math.floor(Math.random() * randomKeys.length)].trim();
|
|
166
|
-
return localize.msg(`lion-validate:${key}`, data);
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
/** @param {FeedbackMessageData} data */
|
|
170
|
-
// @ts-ignore
|
|
171
|
-
PhoneNumber.getMessage = async data => {
|
|
172
|
-
await forMessagesToBeReady();
|
|
173
|
-
const { type, outcome } = data;
|
|
174
|
-
if (outcome === 'too-long') {
|
|
175
|
-
// TODO: get max-length of country and use MaxLength validator
|
|
176
|
-
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
177
|
-
}
|
|
178
|
-
if (outcome === 'too-short') {
|
|
179
|
-
// TODO: get min-length of country and use MinLength validator
|
|
180
|
-
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
181
|
-
}
|
|
182
|
-
// TODO: add a more specific message here
|
|
183
|
-
if (outcome === 'invalid-country-code') {
|
|
184
|
-
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
185
|
-
}
|
|
186
|
-
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
loaded = true;
|
|
10
|
+
return loadDefaultFeedbackMessagesNoSideEffects({ localize });
|
|
190
11
|
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
+
import {
|
|
3
|
+
DefaultSuccess,
|
|
4
|
+
IsDate,
|
|
5
|
+
IsDateDisabled,
|
|
6
|
+
MaxDate,
|
|
7
|
+
MinDate,
|
|
8
|
+
MinMaxDate,
|
|
9
|
+
IsNumber,
|
|
10
|
+
MaxNumber,
|
|
11
|
+
MinMaxNumber,
|
|
12
|
+
MinNumber,
|
|
13
|
+
Required,
|
|
14
|
+
EqualsLength,
|
|
15
|
+
IsEmail,
|
|
16
|
+
MaxLength,
|
|
17
|
+
MinLength,
|
|
18
|
+
MinMaxLength,
|
|
19
|
+
Pattern,
|
|
20
|
+
} from '@lion/ui/form-core.js';
|
|
21
|
+
import { PhoneNumber } from '@lion/ui/input-tel.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 loaded = false;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {{localize: LocalizeManager}} opts allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export function loadDefaultFeedbackMessagesNoSideEffects({ localize }) {
|
|
35
|
+
if (loaded === true) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const forMessagesToBeReady = () =>
|
|
40
|
+
localize.loadNamespace(
|
|
41
|
+
{
|
|
42
|
+
'lion-validate': /** @param {string} locale */ locale => {
|
|
43
|
+
switch (locale) {
|
|
44
|
+
case 'bg-BG':
|
|
45
|
+
return import('@lion/ui/validate-messages-translations/bg-BG.js');
|
|
46
|
+
case 'bg':
|
|
47
|
+
return import('@lion/ui/validate-messages-translations/bg.js');
|
|
48
|
+
case 'cs-CZ':
|
|
49
|
+
return import('@lion/ui/validate-messages-translations/cs-CZ.js');
|
|
50
|
+
case 'cs':
|
|
51
|
+
return import('@lion/ui/validate-messages-translations/cs.js');
|
|
52
|
+
case 'de-DE':
|
|
53
|
+
return import('@lion/ui/validate-messages-translations/de-DE.js');
|
|
54
|
+
case 'de':
|
|
55
|
+
return import('@lion/ui/validate-messages-translations/de.js');
|
|
56
|
+
case 'en-AU':
|
|
57
|
+
return import('@lion/ui/validate-messages-translations/en-AU.js');
|
|
58
|
+
case 'en-GB':
|
|
59
|
+
return import('@lion/ui/validate-messages-translations/en-GB.js');
|
|
60
|
+
case 'en-US':
|
|
61
|
+
return import('@lion/ui/validate-messages-translations/en-US.js');
|
|
62
|
+
case 'en-PH':
|
|
63
|
+
return import('@lion/ui/validate-messages-translations/en-PH.js');
|
|
64
|
+
case 'en':
|
|
65
|
+
return import('@lion/ui/validate-messages-translations/en.js');
|
|
66
|
+
case 'es-ES':
|
|
67
|
+
return import('@lion/ui/validate-messages-translations/es-ES.js');
|
|
68
|
+
case 'es':
|
|
69
|
+
return import('@lion/ui/validate-messages-translations/es.js');
|
|
70
|
+
case 'fr-FR':
|
|
71
|
+
return import('@lion/ui/validate-messages-translations/fr-FR.js');
|
|
72
|
+
case 'fr-BE':
|
|
73
|
+
return import('@lion/ui/validate-messages-translations/fr-BE.js');
|
|
74
|
+
case 'fr':
|
|
75
|
+
return import('@lion/ui/validate-messages-translations/fr.js');
|
|
76
|
+
case 'hu-HU':
|
|
77
|
+
return import('@lion/ui/validate-messages-translations/hu-HU.js');
|
|
78
|
+
case 'hu':
|
|
79
|
+
return import('@lion/ui/validate-messages-translations/hu.js');
|
|
80
|
+
case 'it-IT':
|
|
81
|
+
return import('@lion/ui/validate-messages-translations/it-IT.js');
|
|
82
|
+
case 'it':
|
|
83
|
+
return import('@lion/ui/validate-messages-translations/it.js');
|
|
84
|
+
case 'nl-BE':
|
|
85
|
+
return import('@lion/ui/validate-messages-translations/nl-BE.js');
|
|
86
|
+
case 'nl-NL':
|
|
87
|
+
return import('@lion/ui/validate-messages-translations/nl-NL.js');
|
|
88
|
+
case 'nl':
|
|
89
|
+
return import('@lion/ui/validate-messages-translations/nl.js');
|
|
90
|
+
case 'pl-PL':
|
|
91
|
+
return import('@lion/ui/validate-messages-translations/pl-PL.js');
|
|
92
|
+
case 'pl':
|
|
93
|
+
return import('@lion/ui/validate-messages-translations/pl.js');
|
|
94
|
+
case 'ro-RO':
|
|
95
|
+
return import('@lion/ui/validate-messages-translations/ro-RO.js');
|
|
96
|
+
case 'ro':
|
|
97
|
+
return import('@lion/ui/validate-messages-translations/ro.js');
|
|
98
|
+
case 'ru-RU':
|
|
99
|
+
return import('@lion/ui/validate-messages-translations/ru-RU.js');
|
|
100
|
+
case 'ru':
|
|
101
|
+
return import('@lion/ui/validate-messages-translations/ru.js');
|
|
102
|
+
case 'sk-SK':
|
|
103
|
+
return import('@lion/ui/validate-messages-translations/sk-SK.js');
|
|
104
|
+
case 'sk':
|
|
105
|
+
return import('@lion/ui/validate-messages-translations/sk.js');
|
|
106
|
+
case 'uk-UA':
|
|
107
|
+
return import('@lion/ui/validate-messages-translations/uk-UA.js');
|
|
108
|
+
case 'uk':
|
|
109
|
+
return import('@lion/ui/validate-messages-translations/uk.js');
|
|
110
|
+
case 'zh-CN':
|
|
111
|
+
case 'zh':
|
|
112
|
+
return import('@lion/ui/validate-messages-translations/zh.js');
|
|
113
|
+
default:
|
|
114
|
+
return import('@lion/ui/validate-messages-translations/en.js');
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
{ locale: localize.locale },
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @param {FeedbackMessageData} data
|
|
123
|
+
* @returns {Promise<string|Element>}
|
|
124
|
+
*/
|
|
125
|
+
const getLocalizedMessage = async data => {
|
|
126
|
+
await forMessagesToBeReady();
|
|
127
|
+
if (data) {
|
|
128
|
+
return localize.msg(`lion-validate:${data.type}.${data.name}`, data);
|
|
129
|
+
}
|
|
130
|
+
return '';
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/** @param {FeedbackMessageData} data */
|
|
134
|
+
Required.getMessage = async data => getLocalizedMessage(data);
|
|
135
|
+
/** @param {FeedbackMessageData} data */
|
|
136
|
+
EqualsLength.getMessage = async data => getLocalizedMessage(data);
|
|
137
|
+
/** @param {FeedbackMessageData} data */
|
|
138
|
+
MinLength.getMessage = async data => getLocalizedMessage(data);
|
|
139
|
+
/** @param {FeedbackMessageData} data */
|
|
140
|
+
MaxLength.getMessage = async data => getLocalizedMessage(data);
|
|
141
|
+
/** @param {FeedbackMessageData} data */
|
|
142
|
+
MinMaxLength.getMessage = async data => getLocalizedMessage(data);
|
|
143
|
+
/** @param {FeedbackMessageData} data */
|
|
144
|
+
Pattern.getMessage = async data => getLocalizedMessage(data);
|
|
145
|
+
/** @param {FeedbackMessageData} data */
|
|
146
|
+
IsEmail.getMessage = async data => getLocalizedMessage(data);
|
|
147
|
+
/** @param {FeedbackMessageData} data */
|
|
148
|
+
IsNumber.getMessage = async data => getLocalizedMessage(data);
|
|
149
|
+
/** @param {FeedbackMessageData} data */
|
|
150
|
+
MinNumber.getMessage = async data => getLocalizedMessage(data);
|
|
151
|
+
/** @param {FeedbackMessageData} data */
|
|
152
|
+
MaxNumber.getMessage = async data => getLocalizedMessage(data);
|
|
153
|
+
/** @param {FeedbackMessageData} data */
|
|
154
|
+
MinMaxNumber.getMessage = async data => getLocalizedMessage(data);
|
|
155
|
+
/** @param {FeedbackMessageData} data */
|
|
156
|
+
IsDate.getMessage = async data => getLocalizedMessage(data);
|
|
157
|
+
/** @param {FeedbackMessageData} data */
|
|
158
|
+
MinDate.getMessage = async data => getLocalizedMessage(data);
|
|
159
|
+
/** @param {FeedbackMessageData} data */
|
|
160
|
+
MaxDate.getMessage = async data => getLocalizedMessage(data);
|
|
161
|
+
/** @param {FeedbackMessageData} data */
|
|
162
|
+
MinMaxDate.getMessage = async data => getLocalizedMessage(data);
|
|
163
|
+
/** @param {FeedbackMessageData} data */
|
|
164
|
+
IsDateDisabled.getMessage = async data => getLocalizedMessage(data);
|
|
165
|
+
|
|
166
|
+
DefaultSuccess.getMessage = async data => {
|
|
167
|
+
await forMessagesToBeReady();
|
|
168
|
+
const randomKeys = localize.msg('lion-validate:success.RandomOk').split(',');
|
|
169
|
+
const key = randomKeys[Math.floor(Math.random() * randomKeys.length)].trim();
|
|
170
|
+
return localize.msg(`lion-validate:${key}`, data);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
/** @param {FeedbackMessageData} data */
|
|
174
|
+
// @ts-ignore
|
|
175
|
+
PhoneNumber.getMessage = async data => {
|
|
176
|
+
await forMessagesToBeReady();
|
|
177
|
+
const { type, outcome } = data;
|
|
178
|
+
if (outcome === 'too-long') {
|
|
179
|
+
// TODO: get max-length of country and use MaxLength validator
|
|
180
|
+
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
181
|
+
}
|
|
182
|
+
if (outcome === 'too-short') {
|
|
183
|
+
// TODO: get min-length of country and use MinLength validator
|
|
184
|
+
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
185
|
+
}
|
|
186
|
+
// TODO: add a more specific message here
|
|
187
|
+
if (outcome === 'invalid-country-code') {
|
|
188
|
+
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
189
|
+
}
|
|
190
|
+
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
loaded = true;
|
|
194
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-unused-vars, no-param-reassign */
|
|
2
2
|
import { expect } from '@open-wc/testing';
|
|
3
|
-
import { localize } from '@lion/ui/localize.js';
|
|
4
3
|
import { Required } from '@lion/ui/form-core.js';
|
|
5
4
|
import { loadDefaultFeedbackMessages } from '@lion/ui/validate-messages.js';
|
|
6
5
|
|
|
@@ -20,7 +19,7 @@ function getProtectedMembers(validatorEl) {
|
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
describe('loadDefaultFeedbackMessages', () => {
|
|
23
|
-
it('will
|
|
22
|
+
it('will work without providing a LocalizeManager instance', async () => {
|
|
24
23
|
const el = new Required();
|
|
25
24
|
const { getMessage } = getProtectedMembers(el);
|
|
26
25
|
expect(await getMessage()).to.equals(
|
|
@@ -30,20 +29,4 @@ describe('loadDefaultFeedbackMessages', () => {
|
|
|
30
29
|
loadDefaultFeedbackMessages();
|
|
31
30
|
expect(await getMessage({ fieldName: 'password' })).to.equal('Please enter a(n) password.');
|
|
32
31
|
});
|
|
33
|
-
|
|
34
|
-
it('will await loading of translations when switching locale', async () => {
|
|
35
|
-
const el = new Required();
|
|
36
|
-
const { getMessage } = getProtectedMembers(el);
|
|
37
|
-
loadDefaultFeedbackMessages();
|
|
38
|
-
expect(await getMessage({ fieldName: 'password' })).to.equal('Please enter a(n) password.');
|
|
39
|
-
expect(await getMessage({ fieldName: 'user name' })).to.equal('Please enter a(n) user name.');
|
|
40
|
-
|
|
41
|
-
localize.locale = 'de-DE';
|
|
42
|
-
expect(await getMessage({ fieldName: 'Password' })).to.equal(
|
|
43
|
-
'Password muss ausgefüllt werden.',
|
|
44
|
-
);
|
|
45
|
-
expect(await getMessage({ fieldName: 'Benutzername' })).to.equal(
|
|
46
|
-
'Benutzername muss ausgefüllt werden.',
|
|
47
|
-
);
|
|
48
|
-
});
|
|
49
32
|
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars, no-param-reassign */
|
|
2
|
+
import { expect } from '@open-wc/testing';
|
|
3
|
+
import { localize } from '@lion/ui/localize.js';
|
|
4
|
+
import { 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
|
+
describe('loadDefaultFeedbackMessagesNoSideEffects', () => {
|
|
23
|
+
it('will set default feedback message for Required', async () => {
|
|
24
|
+
const el = new Required();
|
|
25
|
+
const { getMessage } = getProtectedMembers(el);
|
|
26
|
+
expect(await getMessage()).to.equals(
|
|
27
|
+
'Please configure an error message for "Required" by overriding "static async getMessage()"',
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
loadDefaultFeedbackMessagesNoSideEffects({ localize });
|
|
31
|
+
expect(await getMessage({ fieldName: 'password' })).to.equal('Please enter a(n) password.');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('will await loading of translations when switching locale', async () => {
|
|
35
|
+
const el = new Required();
|
|
36
|
+
const { getMessage } = getProtectedMembers(el);
|
|
37
|
+
loadDefaultFeedbackMessagesNoSideEffects({ localize });
|
|
38
|
+
expect(await getMessage({ fieldName: 'password' })).to.equal('Please enter a(n) password.');
|
|
39
|
+
expect(await getMessage({ fieldName: 'user name' })).to.equal('Please enter a(n) user name.');
|
|
40
|
+
|
|
41
|
+
localize.locale = 'de-DE';
|
|
42
|
+
expect(await getMessage({ fieldName: 'Password' })).to.equal(
|
|
43
|
+
'Password muss ausgefüllt werden.',
|
|
44
|
+
);
|
|
45
|
+
expect(await getMessage({ fieldName: 'Benutzername' })).to.equal(
|
|
46
|
+
'Benutzername muss ausgefüllt werden.',
|
|
47
|
+
);
|
|
48
|
+
});
|
|
49
|
+
});
|
package/custom-elements.json
CHANGED
|
@@ -1787,6 +1787,21 @@
|
|
|
1787
1787
|
}
|
|
1788
1788
|
]
|
|
1789
1789
|
},
|
|
1790
|
+
{
|
|
1791
|
+
"kind": "javascript-module",
|
|
1792
|
+
"path": "exports/validate-messages-no-side-effects.js",
|
|
1793
|
+
"declarations": [],
|
|
1794
|
+
"exports": [
|
|
1795
|
+
{
|
|
1796
|
+
"kind": "js",
|
|
1797
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
1798
|
+
"declaration": {
|
|
1799
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
1800
|
+
"module": "../components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js"
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
]
|
|
1804
|
+
},
|
|
1790
1805
|
{
|
|
1791
1806
|
"kind": "javascript-module",
|
|
1792
1807
|
"path": "exports/validate-messages.js",
|
|
@@ -3593,6 +3608,21 @@
|
|
|
3593
3608
|
}
|
|
3594
3609
|
]
|
|
3595
3610
|
},
|
|
3611
|
+
{
|
|
3612
|
+
"kind": "javascript-module",
|
|
3613
|
+
"path": "dist-types/exports/validate-messages-no-side-effects.d.ts",
|
|
3614
|
+
"declarations": [],
|
|
3615
|
+
"exports": [
|
|
3616
|
+
{
|
|
3617
|
+
"kind": "js",
|
|
3618
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
3619
|
+
"declaration": {
|
|
3620
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
3621
|
+
"module": "\"../components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js\""
|
|
3622
|
+
}
|
|
3623
|
+
}
|
|
3624
|
+
]
|
|
3625
|
+
},
|
|
3596
3626
|
{
|
|
3597
3627
|
"kind": "javascript-module",
|
|
3598
3628
|
"path": "dist-types/exports/validate-messages.d.ts",
|
|
@@ -33007,6 +33037,49 @@
|
|
|
33007
33037
|
}
|
|
33008
33038
|
]
|
|
33009
33039
|
},
|
|
33040
|
+
{
|
|
33041
|
+
"kind": "javascript-module",
|
|
33042
|
+
"path": "components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js",
|
|
33043
|
+
"declarations": [
|
|
33044
|
+
{
|
|
33045
|
+
"kind": "function",
|
|
33046
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
33047
|
+
"parameters": [
|
|
33048
|
+
{
|
|
33049
|
+
"name": "{ localize }"
|
|
33050
|
+
},
|
|
33051
|
+
{
|
|
33052
|
+
"description": "allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager",
|
|
33053
|
+
"name": "opts",
|
|
33054
|
+
"type": {
|
|
33055
|
+
"text": "{localize: LocalizeManager}"
|
|
33056
|
+
}
|
|
33057
|
+
}
|
|
33058
|
+
],
|
|
33059
|
+
"return": {
|
|
33060
|
+
"type": {
|
|
33061
|
+
"text": ""
|
|
33062
|
+
}
|
|
33063
|
+
}
|
|
33064
|
+
}
|
|
33065
|
+
],
|
|
33066
|
+
"exports": [
|
|
33067
|
+
{
|
|
33068
|
+
"kind": "js",
|
|
33069
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
33070
|
+
"declaration": {
|
|
33071
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
33072
|
+
"module": "components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js"
|
|
33073
|
+
}
|
|
33074
|
+
}
|
|
33075
|
+
]
|
|
33076
|
+
},
|
|
33077
|
+
{
|
|
33078
|
+
"kind": "javascript-module",
|
|
33079
|
+
"path": "components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.js",
|
|
33080
|
+
"declarations": [],
|
|
33081
|
+
"exports": []
|
|
33082
|
+
},
|
|
33010
33083
|
{
|
|
33011
33084
|
"kind": "javascript-module",
|
|
33012
33085
|
"path": "components/validate-messages/translations/bg-BG.js",
|
|
@@ -67601,12 +67674,58 @@
|
|
|
67601
67674
|
}
|
|
67602
67675
|
]
|
|
67603
67676
|
},
|
|
67677
|
+
{
|
|
67678
|
+
"kind": "javascript-module",
|
|
67679
|
+
"path": "dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts",
|
|
67680
|
+
"declarations": [
|
|
67681
|
+
{
|
|
67682
|
+
"kind": "function",
|
|
67683
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
67684
|
+
"return": {
|
|
67685
|
+
"type": {
|
|
67686
|
+
"text": ""
|
|
67687
|
+
}
|
|
67688
|
+
},
|
|
67689
|
+
"parameters": [
|
|
67690
|
+
{
|
|
67691
|
+
"name": "{ localize }",
|
|
67692
|
+
"type": {
|
|
67693
|
+
"text": "{\n localize: LocalizeManager;\n}"
|
|
67694
|
+
}
|
|
67695
|
+
},
|
|
67696
|
+
{
|
|
67697
|
+
"description": "allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager",
|
|
67698
|
+
"name": "opts",
|
|
67699
|
+
"type": {
|
|
67700
|
+
"text": "{localize: LocalizeManager}"
|
|
67701
|
+
}
|
|
67702
|
+
}
|
|
67703
|
+
]
|
|
67704
|
+
}
|
|
67705
|
+
],
|
|
67706
|
+
"exports": [
|
|
67707
|
+
{
|
|
67708
|
+
"kind": "js",
|
|
67709
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
67710
|
+
"declaration": {
|
|
67711
|
+
"name": "loadDefaultFeedbackMessagesNoSideEffects",
|
|
67712
|
+
"module": "dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts"
|
|
67713
|
+
}
|
|
67714
|
+
}
|
|
67715
|
+
]
|
|
67716
|
+
},
|
|
67604
67717
|
{
|
|
67605
67718
|
"kind": "javascript-module",
|
|
67606
67719
|
"path": "dist-types/components/validate-messages/test/loadDefaultFeedbackMessages.test.d.ts",
|
|
67607
67720
|
"declarations": [],
|
|
67608
67721
|
"exports": []
|
|
67609
67722
|
},
|
|
67723
|
+
{
|
|
67724
|
+
"kind": "javascript-module",
|
|
67725
|
+
"path": "dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts",
|
|
67726
|
+
"declarations": [],
|
|
67727
|
+
"exports": []
|
|
67728
|
+
},
|
|
67610
67729
|
{
|
|
67611
67730
|
"kind": "javascript-module",
|
|
67612
67731
|
"path": "dist-types/components/validate-messages/translations/bg-BG.d.ts",
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('../../form-core/types/validate/validate.js').FeedbackMessageData} FeedbackMessageData
|
|
3
|
+
*/
|
|
1
4
|
export function loadDefaultFeedbackMessages(): void;
|
|
2
5
|
export type FeedbackMessageData = import('../../form-core/types/validate/validate.js').FeedbackMessageData;
|
|
3
6
|
//# sourceMappingURL=loadDefaultFeedbackMessages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadDefaultFeedbackMessages.d.ts","sourceRoot":"","sources":["../../../../components/validate-messages/src/loadDefaultFeedbackMessages.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loadDefaultFeedbackMessages.d.ts","sourceRoot":"","sources":["../../../../components/validate-messages/src/loadDefaultFeedbackMessages.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH,oDAEC;kCALY,OAAO,4CAA4C,EAAE,mBAAmB"}
|
package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{localize: LocalizeManager}} opts allow multiple lion/extension lib versions to provide their deduped instance of LocalizeManager
|
|
3
|
+
* @returns
|
|
4
|
+
*/
|
|
5
|
+
export function loadDefaultFeedbackMessagesNoSideEffects({ localize }: {
|
|
6
|
+
localize: LocalizeManager;
|
|
7
|
+
}): void;
|
|
8
|
+
export type FeedbackMessageData = import('../../form-core/types/validate/validate.js').FeedbackMessageData;
|
|
9
|
+
export type LocalizeManager = import('@lion/ui/localize.js').LocalizeManager;
|
|
10
|
+
//# sourceMappingURL=loadDefaultFeedbackMessagesNoSideEffects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadDefaultFeedbackMessagesNoSideEffects.d.ts","sourceRoot":"","sources":["../../../../components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,uEAHW;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAC,QAmKrC;kCA1KY,OAAO,4CAA4C,EAAE,mBAAmB;8BACxE,OAAO,sBAAsB,EAAE,eAAe"}
|
package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessages.test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadDefaultFeedbackMessages.test.d.ts","sourceRoot":"","sources":["../../../../components/validate-messages/test/loadDefaultFeedbackMessages.test.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loadDefaultFeedbackMessages.test.d.ts","sourceRoot":"","sources":["../../../../components/validate-messages/test/loadDefaultFeedbackMessages.test.js"],"names":[],"mappings":"wBAMa,OAAO,2CAA2C,EAAE,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadDefaultFeedbackMessagesNoSideEffects.d.ts","sourceRoot":"","sources":["../../../../components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.js"],"names":[],"mappings":"wBAOa,OAAO,2CAA2C,EAAE,SAAS"}
|