keycloakify 6.12.6 → 6.12.7

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.
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
1
+ import "../../tools/Array.prototype.every";
2
+ import React from "react";
2
3
  import type { KcProps } from "../../KcProps";
3
- import type { Attribute } from "../../getKcContext/KcContextBase";
4
- import { useFormValidationSlice } from "../../useFormValidationSlice";
4
+ import type { KcContextBase, Validators, Attribute } from "../../getKcContext";
5
5
  import type { I18nBase } from "../../i18n";
6
6
  export type UserProfileFormFieldsProps = {
7
- kcContext: Parameters<typeof useFormValidationSlice>[0]["kcContext"];
7
+ kcContext: Parameters<typeof useFormValidation>[0]["kcContext"];
8
8
  i18n: I18nBase;
9
9
  } & KcProps & Partial<Record<"BeforeField" | "AfterField", (props: {
10
10
  attribute: Attribute;
@@ -12,3 +12,45 @@ export type UserProfileFormFieldsProps = {
12
12
  onIsFormSubmittableValueChange: (isFormSubmittable: boolean) => void;
13
13
  };
14
14
  export declare function UserProfileFormFields({ kcContext, onIsFormSubmittableValueChange, i18n, BeforeField, AfterField, ...props }: UserProfileFormFieldsProps): JSX.Element;
15
+ /**
16
+ * NOTE: The attributesWithPassword returned is actually augmented with
17
+ * artificial password related attributes only if kcContext.passwordRequired === true
18
+ */
19
+ export declare function useFormValidation(params: {
20
+ kcContext: {
21
+ messagesPerField: Pick<KcContextBase.Common["messagesPerField"], "existsError" | "get">;
22
+ profile: {
23
+ attributes: Attribute[];
24
+ };
25
+ passwordRequired?: boolean;
26
+ realm: {
27
+ registrationEmailAsUsername: boolean;
28
+ };
29
+ };
30
+ /** NOTE: Try to avoid passing a new ref every render for better performances. */
31
+ passwordValidators?: Validators;
32
+ i18n: I18nBase;
33
+ }): {
34
+ formValidationState: {
35
+ fieldStateByAttributeName: {
36
+ [k: string]: {
37
+ value: string;
38
+ displayableErrors: {
39
+ errorMessage: JSX.Element;
40
+ errorMessageStr: string;
41
+ validatorName: "double" | "pattern" | "length" | "email" | "integer" | "up-immutable-attribute" | "up-attribute-required-by-metadata-value" | "up-username-has-value" | "up-duplicate-username" | "up-username-mutation" | "up-email-exists-as-username" | "up-blank-attribute-value" | "up-duplicate-email" | "local-date" | "person-name-prohibited-characters" | "uri" | "username-prohibited-characters" | "_compareToOther" | "options" | undefined;
42
+ }[];
43
+ };
44
+ };
45
+ isFormSubmittable: boolean;
46
+ };
47
+ formValidationDispatch: React.Dispatch<{
48
+ action: "update value";
49
+ name: string;
50
+ newValue: string;
51
+ } | {
52
+ action: "focus lost";
53
+ name: string;
54
+ }>;
55
+ attributesWithPassword: Attribute[];
56
+ };
@@ -9,29 +9,22 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { useEffect, Fragment } from "react";
12
+ import "../../tools/Array.prototype.every";
13
+ import React, { useEffect, useMemo, useReducer, Fragment } from "react";
13
14
  import { clsx } from "../../tools/clsx";
14
- import { useCallbackFactory } from "../../tools/useCallbackFactory";
15
- import { useFormValidationSlice } from "../../useFormValidationSlice";
15
+ import { useConstCallback } from "../../tools/useConstCallback";
16
+ import { emailRegexp } from "../../tools/emailRegExp";
17
+ import { id } from "tsafe/id";
16
18
  export function UserProfileFormFields(_a) {
17
19
  var { kcContext, onIsFormSubmittableValueChange, i18n, BeforeField, AfterField } = _a, props = __rest(_a, ["kcContext", "onIsFormSubmittableValueChange", "i18n", "BeforeField", "AfterField"]);
18
20
  const { advancedMsg } = i18n;
19
- const { formValidationState: { fieldStateByAttributeName, isFormSubmittable }, formValidationReducer, attributesWithPassword } = useFormValidationSlice({
21
+ const { formValidationState: { fieldStateByAttributeName, isFormSubmittable }, formValidationDispatch, attributesWithPassword } = useFormValidation({
20
22
  kcContext,
21
23
  i18n
22
24
  });
23
25
  useEffect(() => {
24
26
  onIsFormSubmittableValueChange(isFormSubmittable);
25
27
  }, [isFormSubmittable]);
26
- const onChangeFactory = useCallbackFactory(([name], [{ target: { value } }]) => formValidationReducer({
27
- "action": "update value",
28
- name,
29
- "newValue": value
30
- }));
31
- const onBlurFactory = useCallbackFactory(([name]) => formValidationReducer({
32
- "action": "focus lost",
33
- name
34
- }));
35
28
  let currentGroup = "";
36
29
  return (React.createElement(React.Fragment, null, attributesWithPassword.map((attribute, i) => {
37
30
  var _a;
@@ -53,7 +46,14 @@ export function UserProfileFormFields(_a) {
53
46
  (() => {
54
47
  const { options } = attribute.validators;
55
48
  if (options !== undefined) {
56
- return (React.createElement("select", { id: attribute.name, name: attribute.name, onChange: onChangeFactory(attribute.name), onBlur: onBlurFactory(attribute.name), value: value }, options.options.map(option => (React.createElement("option", { key: option, value: option }, option)))));
49
+ return (React.createElement("select", { id: attribute.name, name: attribute.name, onChange: event => formValidationDispatch({
50
+ "action": "update value",
51
+ "name": attribute.name,
52
+ "newValue": event.target.value
53
+ }), onBlur: () => formValidationDispatch({
54
+ "action": "focus lost",
55
+ "name": attribute.name
56
+ }), value: value }, options.options.map(option => (React.createElement("option", { key: option, value: option }, option)))));
57
57
  }
58
58
  return (React.createElement("input", { type: (() => {
59
59
  switch (attribute.name) {
@@ -63,7 +63,14 @@ export function UserProfileFormFields(_a) {
63
63
  default:
64
64
  return "text";
65
65
  }
66
- })(), id: attribute.name, name: attribute.name, value: value, onChange: onChangeFactory(attribute.name), className: clsx(props.kcInputClass), "aria-invalid": displayableErrors.length !== 0, disabled: attribute.readOnly, autoComplete: attribute.autocomplete, onBlur: onBlurFactory(attribute.name) }));
66
+ })(), id: attribute.name, name: attribute.name, value: value, onChange: event => formValidationDispatch({
67
+ "action": "update value",
68
+ "name": attribute.name,
69
+ "newValue": event.target.value
70
+ }), onBlur: () => formValidationDispatch({
71
+ "action": "focus lost",
72
+ "name": attribute.name
73
+ }), className: clsx(props.kcInputClass), "aria-invalid": displayableErrors.length !== 0, disabled: attribute.readOnly, autoComplete: attribute.autocomplete }));
67
74
  })(),
68
75
  displayableErrors.length !== 0 &&
69
76
  (() => {
@@ -77,4 +84,318 @@ export function UserProfileFormFields(_a) {
77
84
  AfterField && React.createElement(AfterField, { attribute: attribute })));
78
85
  })));
79
86
  }
87
+ /**
88
+ * NOTE: The attributesWithPassword returned is actually augmented with
89
+ * artificial password related attributes only if kcContext.passwordRequired === true
90
+ */
91
+ export function useFormValidation(params) {
92
+ const { kcContext, passwordValidators = {
93
+ "length": {
94
+ "ignore.empty.value": true,
95
+ "min": "4"
96
+ }
97
+ }, i18n } = params;
98
+ const attributesWithPassword = useMemo(() => !kcContext.passwordRequired
99
+ ? kcContext.profile.attributes
100
+ : (() => {
101
+ const name = kcContext.realm.registrationEmailAsUsername ? "email" : "username";
102
+ return kcContext.profile.attributes.reduce((prev, curr) => [
103
+ ...prev,
104
+ ...(curr.name !== name
105
+ ? [curr]
106
+ : [
107
+ curr,
108
+ id({
109
+ "name": "password",
110
+ "displayName": id("${password}"),
111
+ "required": true,
112
+ "readOnly": false,
113
+ "validators": passwordValidators,
114
+ "annotations": {},
115
+ "groupAnnotations": {},
116
+ "autocomplete": "new-password"
117
+ }),
118
+ id({
119
+ "name": "password-confirm",
120
+ "displayName": id("${passwordConfirm}"),
121
+ "required": true,
122
+ "readOnly": false,
123
+ "validators": {
124
+ "_compareToOther": {
125
+ "name": "password",
126
+ "ignore.empty.value": true,
127
+ "shouldBe": "equal",
128
+ "error-message": id("${invalidPasswordConfirmMessage}")
129
+ }
130
+ },
131
+ "annotations": {},
132
+ "groupAnnotations": {},
133
+ "autocomplete": "new-password"
134
+ })
135
+ ])
136
+ ], []);
137
+ })(), [kcContext, passwordValidators]);
138
+ const { getErrors } = useGetErrors({
139
+ "kcContext": {
140
+ "messagesPerField": kcContext.messagesPerField,
141
+ "profile": {
142
+ "attributes": attributesWithPassword
143
+ }
144
+ },
145
+ i18n
146
+ });
147
+ const initialInternalState = useMemo(() => Object.fromEntries(attributesWithPassword
148
+ .map(attribute => ({
149
+ attribute,
150
+ "errors": getErrors({
151
+ "name": attribute.name,
152
+ "fieldValueByAttributeName": Object.fromEntries(attributesWithPassword.map(({ name, value }) => [name, { "value": value !== null && value !== void 0 ? value : "" }]))
153
+ })
154
+ }))
155
+ .map(({ attribute, errors }) => {
156
+ var _a;
157
+ return [
158
+ attribute.name,
159
+ {
160
+ "value": (_a = attribute.value) !== null && _a !== void 0 ? _a : "",
161
+ errors,
162
+ "doDisplayPotentialErrorMessages": errors.length !== 0
163
+ }
164
+ ];
165
+ })), [attributesWithPassword]);
166
+ const [formValidationInternalState, formValidationDispatch] = useReducer((state, params) => (Object.assign(Object.assign({}, state), { [params.name]: Object.assign(Object.assign({}, state[params.name]), (() => {
167
+ switch (params.action) {
168
+ case "focus lost":
169
+ return { "doDisplayPotentialErrorMessages": true };
170
+ case "update value":
171
+ return {
172
+ "value": params.newValue,
173
+ "errors": getErrors({
174
+ "name": params.name,
175
+ "fieldValueByAttributeName": Object.assign(Object.assign({}, state), { [params.name]: { "value": params.newValue } })
176
+ })
177
+ };
178
+ }
179
+ })()) })), initialInternalState);
180
+ const formValidationState = useMemo(() => ({
181
+ "fieldStateByAttributeName": Object.fromEntries(Object.entries(formValidationInternalState).map(([name, { value, errors, doDisplayPotentialErrorMessages }]) => [
182
+ name,
183
+ { value, "displayableErrors": doDisplayPotentialErrorMessages ? errors : [] }
184
+ ])),
185
+ "isFormSubmittable": Object.entries(formValidationInternalState).every(([name, { value, errors }]) => errors.length === 0 && (value !== "" || !attributesWithPassword.find(attribute => attribute.name === name).required))
186
+ }), [formValidationInternalState, attributesWithPassword]);
187
+ return {
188
+ formValidationState,
189
+ formValidationDispatch,
190
+ attributesWithPassword
191
+ };
192
+ }
193
+ /** Expect to be used in a component wrapped within a <I18nProvider> */
194
+ function useGetErrors(params) {
195
+ const { kcContext, i18n } = params;
196
+ const { messagesPerField, profile: { attributes } } = kcContext;
197
+ const { msg, msgStr, advancedMsg, advancedMsgStr } = i18n;
198
+ const getErrors = useConstCallback((params) => {
199
+ var _a;
200
+ const { name, fieldValueByAttributeName } = params;
201
+ const { value } = fieldValueByAttributeName[name];
202
+ const { value: defaultValue, validators } = attributes.find(attribute => attribute.name === name);
203
+ block: {
204
+ if (defaultValue !== value) {
205
+ break block;
206
+ }
207
+ let doesErrorExist;
208
+ try {
209
+ doesErrorExist = messagesPerField.existsError(name);
210
+ }
211
+ catch (_b) {
212
+ break block;
213
+ }
214
+ if (!doesErrorExist) {
215
+ break block;
216
+ }
217
+ const errorMessageStr = messagesPerField.get(name);
218
+ return [
219
+ {
220
+ "validatorName": undefined,
221
+ errorMessageStr,
222
+ "errorMessage": React.createElement("span", { key: 0 }, errorMessageStr)
223
+ }
224
+ ];
225
+ }
226
+ const errors = [];
227
+ scope: {
228
+ const validatorName = "length";
229
+ const validator = validators[validatorName];
230
+ if (validator === undefined) {
231
+ break scope;
232
+ }
233
+ const { "ignore.empty.value": ignoreEmptyValue = false, max, min } = validator;
234
+ if (ignoreEmptyValue && value === "") {
235
+ break scope;
236
+ }
237
+ if (max !== undefined && value.length > parseInt(max)) {
238
+ const msgArgs = ["error-invalid-length-too-long", max];
239
+ errors.push({
240
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, msg(...msgArgs)),
241
+ "errorMessageStr": msgStr(...msgArgs),
242
+ validatorName
243
+ });
244
+ }
245
+ if (min !== undefined && value.length < parseInt(min)) {
246
+ const msgArgs = ["error-invalid-length-too-short", min];
247
+ errors.push({
248
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, msg(...msgArgs)),
249
+ "errorMessageStr": msgStr(...msgArgs),
250
+ validatorName
251
+ });
252
+ }
253
+ }
254
+ scope: {
255
+ const validatorName = "_compareToOther";
256
+ const validator = validators[validatorName];
257
+ if (validator === undefined) {
258
+ break scope;
259
+ }
260
+ const { "ignore.empty.value": ignoreEmptyValue = false, name: otherName, shouldBe, "error-message": errorMessageKey } = validator;
261
+ if (ignoreEmptyValue && value === "") {
262
+ break scope;
263
+ }
264
+ const { value: otherValue } = fieldValueByAttributeName[otherName];
265
+ const isValid = (() => {
266
+ switch (shouldBe) {
267
+ case "different":
268
+ return otherValue !== value;
269
+ case "equal":
270
+ return otherValue === value;
271
+ }
272
+ })();
273
+ if (isValid) {
274
+ break scope;
275
+ }
276
+ const msgArg = [
277
+ errorMessageKey !== null && errorMessageKey !== void 0 ? errorMessageKey : id((() => {
278
+ switch (shouldBe) {
279
+ case "equal":
280
+ return "shouldBeEqual";
281
+ case "different":
282
+ return "shouldBeDifferent";
283
+ }
284
+ })()),
285
+ otherName,
286
+ name,
287
+ shouldBe
288
+ ];
289
+ errors.push({
290
+ validatorName,
291
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, advancedMsg(...msgArg)),
292
+ "errorMessageStr": advancedMsgStr(...msgArg)
293
+ });
294
+ }
295
+ scope: {
296
+ const validatorName = "pattern";
297
+ const validator = validators[validatorName];
298
+ if (validator === undefined) {
299
+ break scope;
300
+ }
301
+ const { "ignore.empty.value": ignoreEmptyValue = false, pattern, "error-message": errorMessageKey } = validator;
302
+ if (ignoreEmptyValue && value === "") {
303
+ break scope;
304
+ }
305
+ if (new RegExp(pattern).test(value)) {
306
+ break scope;
307
+ }
308
+ const msgArgs = [errorMessageKey !== null && errorMessageKey !== void 0 ? errorMessageKey : id("shouldMatchPattern"), pattern];
309
+ errors.push({
310
+ validatorName,
311
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, advancedMsg(...msgArgs)),
312
+ "errorMessageStr": advancedMsgStr(...msgArgs)
313
+ });
314
+ }
315
+ scope: {
316
+ if (((_a = [...errors].reverse()[0]) === null || _a === void 0 ? void 0 : _a.validatorName) === "pattern") {
317
+ break scope;
318
+ }
319
+ const validatorName = "email";
320
+ const validator = validators[validatorName];
321
+ if (validator === undefined) {
322
+ break scope;
323
+ }
324
+ const { "ignore.empty.value": ignoreEmptyValue = false } = validator;
325
+ if (ignoreEmptyValue && value === "") {
326
+ break scope;
327
+ }
328
+ if (emailRegexp.test(value)) {
329
+ break scope;
330
+ }
331
+ const msgArgs = [id("invalidEmailMessage")];
332
+ errors.push({
333
+ validatorName,
334
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, msg(...msgArgs)),
335
+ "errorMessageStr": msgStr(...msgArgs)
336
+ });
337
+ }
338
+ scope: {
339
+ const validatorName = "integer";
340
+ const validator = validators[validatorName];
341
+ if (validator === undefined) {
342
+ break scope;
343
+ }
344
+ const { "ignore.empty.value": ignoreEmptyValue = false, max, min } = validator;
345
+ if (ignoreEmptyValue && value === "") {
346
+ break scope;
347
+ }
348
+ const intValue = parseInt(value);
349
+ if (isNaN(intValue)) {
350
+ const msgArgs = ["mustBeAnInteger"];
351
+ errors.push({
352
+ validatorName,
353
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, msg(...msgArgs)),
354
+ "errorMessageStr": msgStr(...msgArgs)
355
+ });
356
+ break scope;
357
+ }
358
+ if (max !== undefined && intValue > parseInt(max)) {
359
+ const msgArgs = ["error-number-out-of-range-too-big", max];
360
+ errors.push({
361
+ validatorName,
362
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, msg(...msgArgs)),
363
+ "errorMessageStr": msgStr(...msgArgs)
364
+ });
365
+ break scope;
366
+ }
367
+ if (min !== undefined && intValue < parseInt(min)) {
368
+ const msgArgs = ["error-number-out-of-range-too-small", min];
369
+ errors.push({
370
+ validatorName,
371
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, msg(...msgArgs)),
372
+ "errorMessageStr": msgStr(...msgArgs)
373
+ });
374
+ break scope;
375
+ }
376
+ }
377
+ scope: {
378
+ const validatorName = "options";
379
+ const validator = validators[validatorName];
380
+ if (validator === undefined) {
381
+ break scope;
382
+ }
383
+ if (value === "") {
384
+ break scope;
385
+ }
386
+ if (validator.options.indexOf(value) >= 0) {
387
+ break scope;
388
+ }
389
+ const msgArgs = [id("notAValidOption")];
390
+ errors.push({
391
+ validatorName,
392
+ "errorMessage": React.createElement(Fragment, { key: errors.length }, advancedMsg(...msgArgs)),
393
+ "errorMessageStr": advancedMsgStr(...msgArgs)
394
+ });
395
+ }
396
+ //TODO: Implement missing validators.
397
+ return errors;
398
+ });
399
+ return { getErrors };
400
+ }
80
401
  //# sourceMappingURL=UserProfileCommons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfileCommons.js","sourceRoot":"","sources":["../../../src/lib/pages/shared/UserProfileCommons.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserProfileCommons.js","sourceRoot":"","sources":["../../../src/lib/pages/shared/UserProfileCommons.tsx"],"names":[],"mappings":"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"}