keycloakify 6.12.7-rc.0 → 6.12.8

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