@abgov/jsonforms-components 2.52.6 → 2.53.0

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/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as runtime from 'react/jsx-runtime';
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
- import React, { createContext, useContext, useReducer, useMemo, useEffect, useCallback, useRef, useState, useLayoutEffect } from 'react';
3
+ import React, { useContext, useReducer, useMemo, useEffect, createContext, useCallback, useRef, useState, useLayoutEffect } from 'react';
4
4
  import { GoabFormItem, GoabDropdown, GoabDropdownItem, GoabInput, GoabTextArea, GoabCallout, GoabRadioGroup, GoabRadioItem, GoabCheckbox, GoabIcon, GoabButton, GoabGrid, GoabIconButton, GoabTable, GoabModal, GoabButtonGroup, GoabContainer, GoabDetails, GoabFormStepper, GoabFormStep, GoabPages, GoabBadge, GoabText, GoabFileUploadInput, GoabCircularProgress, GoabSpinner } from '@abgov/react-components';
5
5
  import styled from 'styled-components';
6
6
  import axios from 'axios';
@@ -3596,6 +3596,7 @@ const Visible = styled.div(_t2$6 || (_t2$6 = _$a`
3596
3596
  const ADD_REGISTER_DATA_ACTION = 'jsonforms/register/data/add';
3597
3597
  const ADD_NO_ANONYMOUS_ACTION = 'jsonforms/register/no_anonymous';
3598
3598
  const ADD_DATALIST_ACTION = 'jsonforms/register/add_datalist_action';
3599
+ const ADD_USER_ACTION = 'jsonforms/register/add_user_action';
3599
3600
  const ADD_REGISTER_DATA_ERROR = 'jsonforms/register/add_register_data_error';
3600
3601
 
3601
3602
  var classof$5 = classofRaw$2;
@@ -3715,6 +3716,12 @@ function registerReducer(state, action) {
3715
3716
  nonExistent: action.payload.nonExistent || []
3716
3717
  });
3717
3718
  }
3719
+ case ADD_USER_ACTION:
3720
+ {
3721
+ return Object.assign({}, state, {
3722
+ user: action.payload.user
3723
+ });
3724
+ }
3718
3725
  }
3719
3726
  return state;
3720
3727
  }
@@ -5078,12 +5085,14 @@ const JsonFormRegisterProvider = ({
5078
5085
  registerData: [],
5079
5086
  nonAnonymous: [],
5080
5087
  nonExistent: [],
5088
+ user: defaultRegisters == null ? void 0 : defaultRegisters.user,
5081
5089
  errors: {}
5082
5090
  });
5083
5091
  const context = useMemo(() => {
5084
5092
  return {
5085
5093
  isProvided: true,
5086
5094
  registerDispatch: dispatch,
5095
+ user: registers.user,
5087
5096
  selectRegisterData: criteria => {
5088
5097
  if (criteria != null && criteria.url) {
5089
5098
  var _registers$registerDa;
@@ -5196,6 +5205,14 @@ const JsonFormRegisterProvider = ({
5196
5205
  }
5197
5206
  });
5198
5207
  }
5208
+ if (defaultRegisters != null && defaultRegisters.user) {
5209
+ dispatch({
5210
+ type: ADD_USER_ACTION,
5211
+ payload: {
5212
+ user: defaultRegisters == null ? void 0 : defaultRegisters.user
5213
+ }
5214
+ });
5215
+ }
5199
5216
  }
5200
5217
  }, [dispatch, defaultRegisters]);
5201
5218
  /* The client might use the context outside of the Jsonform to provide custom register data */
@@ -5210,6 +5227,13 @@ const JsonFormRegisterProvider = ({
5210
5227
  children: children
5211
5228
  });
5212
5229
  };
5230
+ const useRegisterUser = () => {
5231
+ const ctx = useContext(JsonFormsRegisterContext);
5232
+ if (!ctx) {
5233
+ throw new Error('useRegisterUser must be used inside JsonFormRegisterProvider');
5234
+ }
5235
+ return ctx.user;
5236
+ };
5213
5237
 
5214
5238
  let _$9 = t => t,
5215
5239
  _t$a,
@@ -7088,6 +7112,82 @@ function useDebounce(value, delay) {
7088
7112
  return debouncedValue;
7089
7113
  }
7090
7114
 
7115
+ const defineFields = fields => fields;
7116
+ const autoLabel = name => `${name} (auto from user profile)`;
7117
+ const buildInsertText = (key, schema) => `${key}": ${JSON.stringify(schema, null, 2)}`;
7118
+ const USER_FIELD_DEFINITIONS = defineFields({
7119
+ fullName: {
7120
+ schema: {
7121
+ type: 'string',
7122
+ minLength: 3,
7123
+ description: 'Please enter your full name'
7124
+ },
7125
+ getValue: user => user == null ? void 0 : user.name
7126
+ },
7127
+ name: {
7128
+ schema: {
7129
+ type: 'string',
7130
+ minLength: 3,
7131
+ description: 'Please enter your full name'
7132
+ },
7133
+ getValue: user => user == null ? void 0 : user.name
7134
+ },
7135
+ firstName: {
7136
+ schema: {
7137
+ type: 'string',
7138
+ minLength: 3,
7139
+ description: 'Please enter your first name'
7140
+ },
7141
+ getValue: user => getNameParts(user).first
7142
+ },
7143
+ lastName: {
7144
+ schema: {
7145
+ type: 'string',
7146
+ minLength: 3,
7147
+ description: 'Please enter your last name'
7148
+ },
7149
+ getValue: user => getNameParts(user).last
7150
+ },
7151
+ userName: {
7152
+ schema: {
7153
+ type: 'string',
7154
+ minLength: 3,
7155
+ description: 'Please enter your username'
7156
+ },
7157
+ getValue: user => (user == null ? void 0 : user.preferredUsername) || (user == null ? void 0 : user.email) || ''
7158
+ },
7159
+ email: {
7160
+ schema: {
7161
+ type: 'string',
7162
+ format: 'email',
7163
+ maxLength: 100,
7164
+ pattern: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$',
7165
+ description: 'Please enter a valid email address (e.g., name@example.com).',
7166
+ errorMessage: {
7167
+ pattern: '(e.g., name@example.com).',
7168
+ maxLength: 'Email must be less than 100 characters.'
7169
+ }
7170
+ },
7171
+ getValue: user => (user == null ? void 0 : user.email) || ''
7172
+ }
7173
+ });
7174
+ const autoPopulateValue = (user, props) => {
7175
+ const field = USER_FIELD_DEFINITIONS[props.path];
7176
+ if (!field) return undefined;
7177
+ return field.getValue(user);
7178
+ };
7179
+ Object.entries(USER_FIELD_DEFINITIONS).map(([key, field]) => ({
7180
+ label: autoLabel(key),
7181
+ insertText: buildInsertText(key, field.schema)
7182
+ }));
7183
+ const getNameParts = user => {
7184
+ const [first = '', last = ''] = ((user == null ? void 0 : user.name) || '').split(' ');
7185
+ return {
7186
+ first,
7187
+ last
7188
+ };
7189
+ };
7190
+
7091
7191
  function fetchRegisterConfigFromOptions$1(options) {
7092
7192
  if (!(options != null && options.url) && !(options != null && options.urn)) return undefined;
7093
7193
  const config = Object.assign({}, options);
@@ -7108,7 +7208,13 @@ const formatSin = value => {
7108
7208
  return formatVal;
7109
7209
  };
7110
7210
  const GoAInputText = props => {
7111
- var _uischema$options$com, _uischema$options, _props$uischema, _props$uischema2, _uischema$options2, _uischema$options3, _uischema$options$com2, _uischema$options4, _uischema$options5, _uischema$options6;
7211
+ return jsxs(JsonFormRegisterProvider, {
7212
+ defaultRegisters: undefined,
7213
+ children: [jsx(InnerGoAInputText, Object.assign({}, props)), ' ']
7214
+ });
7215
+ };
7216
+ const InnerGoAInputText = props => {
7217
+ var _ref, _ref2, _uischema$options$com, _uischema$options, _props$uischema, _props$uischema2, _uischema$options2, _uischema$options3, _uischema$options$com2, _uischema$options4, _uischema$options5, _uischema$options6;
7112
7218
  const {
7113
7219
  data,
7114
7220
  config,
@@ -7123,11 +7229,20 @@ const GoAInputText = props => {
7123
7229
  isVisited,
7124
7230
  setIsVisited
7125
7231
  } = props;
7126
- const [localValue, setLocalValue] = useState(data != null ? data : '');
7232
+ const user = useRegisterUser();
7233
+ const initialValue = (_ref = (_ref2 = user && autoPopulateValue(user, props)) != null ? _ref2 : data) != null ? _ref : '';
7234
+ const [localValue, setLocalValue] = useState(initialValue);
7127
7235
  const debouncedValue = useDebounce(localValue, 300);
7128
7236
  useEffect(() => {
7129
- setLocalValue(data != null ? data : '');
7237
+ setLocalValue(initialValue);
7130
7238
  }, [data]);
7239
+ useEffect(() => {
7240
+ const autoPopulatedValue = schema.default || user && autoPopulateValue(user, props);
7241
+ if (autoPopulatedValue && autoPopulatedValue !== data) {
7242
+ handleChange(props.path, autoPopulatedValue);
7243
+ }
7244
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7245
+ }, [schema, data, user]);
7131
7246
  /* istanbul ignore next */
7132
7247
  useEffect(() => {
7133
7248
  // Only sync if debouncedValue differs from data and is not initial empty state
@@ -10024,12 +10139,14 @@ const GoAEmailInput = props => {
10024
10139
  errors,
10025
10140
  schema,
10026
10141
  required,
10027
- label
10142
+ label,
10143
+ handleChange
10028
10144
  } = props;
10029
10145
  const defaultSchema = schema;
10030
10146
  const appliedUiSchemaOptions = Object.assign({}, config, uischema == null ? void 0 : uischema.options);
10031
10147
  const readOnly = (_uischema$options$com = uischema == null || (_uischema$options = uischema.options) == null || (_uischema$options = _uischema$options.componentProps) == null ? void 0 : _uischema$options.readOnly) != null ? _uischema$options$com : false;
10032
10148
  const width = (_uischema$options$com2 = uischema == null || (_uischema$options2 = uischema.options) == null || (_uischema$options2 = _uischema$options2.componentProps) == null ? void 0 : _uischema$options2.width) != null ? _uischema$options$com2 : '100%';
10149
+ const user = useRegisterUser();
10033
10150
  const formStepperCtx = useContext(JsonFormsStepperContext);
10034
10151
  const stepperState = formStepperCtx == null || formStepperCtx.selectStepperState == null ? void 0 : formStepperCtx.selectStepperState();
10035
10152
  const currentCategory = stepperState == null || (_stepperState$categor = stepperState.categories) == null ? void 0 : _stepperState$categor[stepperState == null ? void 0 : stepperState.activeId];
@@ -10045,43 +10162,53 @@ const GoAEmailInput = props => {
10045
10162
  const splintIndex = splitErrors.findIndex(e => e === REQUIRED_PROPERTY_ERROR);
10046
10163
  splitErrors[splintIndex] = `${primaryLabel} is required`;
10047
10164
  const finalErrors = splitErrors.join('\n');
10165
+ useEffect(() => {
10166
+ const autoPopulatedValue = schema.default || user && autoPopulateValue(user, props);
10167
+ if (autoPopulatedValue && autoPopulatedValue !== data) {
10168
+ handleChange(props.path, autoPopulatedValue);
10169
+ }
10170
+ // eslint-disable-next-line react-hooks/exhaustive-deps
10171
+ }, [schema, data, user]);
10048
10172
  return jsx(Visible, {
10049
10173
  visible: visible,
10050
- children: jsx(FormFieldWrapper, {
10051
- children: jsx(GoabFormItem, {
10052
- error: isVisited && finalErrors,
10053
- testId: "form-email-input-wrapper",
10054
- requirement: required ? 'required' : undefined,
10055
- label: primaryLabel,
10056
- children: jsx(GoabInput, {
10057
- error: isVisited && finalErrors.length > 0,
10058
- type: 'email',
10059
- width: width,
10060
- name: "Email address",
10061
- value: data,
10062
- testId: (appliedUiSchemaOptions == null ? void 0 : appliedUiSchemaOptions.testId) || `${id}-input`,
10063
- disabled: !enabled,
10064
- readonly: readOnly,
10065
- onChange: detail => {
10066
- if (!isVisited) {
10067
- setIsVisited(true);
10068
- }
10069
- onChangeForInputControl({
10070
- name: detail.name,
10071
- value: detail.value,
10072
- controlProps: props
10073
- });
10074
- },
10075
- onBlur: detail => {
10076
- if (!isVisited) {
10077
- setIsVisited(true);
10174
+ children: jsx(JsonFormRegisterProvider, {
10175
+ defaultRegisters: undefined,
10176
+ children: jsx(FormFieldWrapper, {
10177
+ children: jsx(GoabFormItem, {
10178
+ error: isVisited && finalErrors,
10179
+ testId: "form-email-input-wrapper",
10180
+ requirement: required ? 'required' : undefined,
10181
+ label: primaryLabel,
10182
+ children: jsx(GoabInput, {
10183
+ error: isVisited && finalErrors.length > 0,
10184
+ type: 'email',
10185
+ width: width,
10186
+ name: "Email address",
10187
+ value: data,
10188
+ testId: (appliedUiSchemaOptions == null ? void 0 : appliedUiSchemaOptions.testId) || `${id}-input`,
10189
+ disabled: !enabled,
10190
+ readonly: readOnly,
10191
+ onChange: detail => {
10192
+ if (!isVisited) {
10193
+ setIsVisited(true);
10194
+ }
10195
+ onChangeForInputControl({
10196
+ name: detail.name,
10197
+ value: detail.value,
10198
+ controlProps: props
10199
+ });
10200
+ },
10201
+ onBlur: detail => {
10202
+ if (!isVisited) {
10203
+ setIsVisited(true);
10204
+ }
10205
+ onBlurForTextControl({
10206
+ name: detail.name,
10207
+ value: detail.value,
10208
+ controlProps: props
10209
+ });
10078
10210
  }
10079
- onBlurForTextControl({
10080
- name: detail.name,
10081
- value: detail.value,
10082
- controlProps: props
10083
- });
10084
- }
10211
+ })
10085
10212
  })
10086
10213
  })
10087
10214
  })
@@ -17390,7 +17517,7 @@ function evaluateExpression(expression, data, opts) {
17390
17517
  const sumScope = sumMatch[1];
17391
17518
  return evaluateSum(sumScope, data, opts);
17392
17519
  }
17393
- const scopeRegex = /#\/(?:properties\/)?[^\s"'()]+/g;
17520
+ const scopeRegex = /#\/(?:properties\/)?[^\s"'(),]+/g;
17394
17521
  const matches = trimmed.match(scopeRegex) || [];
17395
17522
  const uniqueScopes = Array.from(new Set(matches));
17396
17523
  const normalizedScopes = uniqueScopes.map(s => s.replace(/^#\/(properties\/)?/, '#/properties/'));
@@ -18069,4 +18196,4 @@ const GoARenderers = [...GoABaseRenderers, {
18069
18196
  }];
18070
18197
  const GoACells = [...InputCells];
18071
18198
 
18072
- export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, AddressLookUpControl, AddressLookUpControlReview, AddressLookUpTester, AddressLoopUpControlTableReview, ArrayControl, ArrayControlBase, ArrayControlReview, BooleanComponent, BooleanControl, BooleanRadioComponent, BooleanRadioControl, CategorizationPagesRendererTester, CategorizationStepperRendererTester, CheckboxGroup, ContextProviderC, ContextProviderClass, ContextProviderFactory, EnumCheckboxControl, EnumRadioControl, EnumSelect, FileUploader, FileUploaderReview, FileUploaderTester, FormPageStepper, FormPagesView, FormStepper, FormStepperControl, FormStepperPagesControl, FormStepperReviewControl, FormStepperReviewer, FormStepperView, FullNameControl, FullNameControlReview, FullNameDobControl, FullNameDobReviewControl, FullNameDobTester, FullNameReviewControl, FullNameTester, GoAArrayControlRenderer, GoAArrayControlReviewRenderer, GoAArrayControlTester, GoABaseInputReviewComponent, GoABaseRenderers, GoABaseReviewRenderers, GoABaseTableReviewRenderers, GoABooleanControl, GoABooleanControlTester, GoABooleanRadioControl, GoABooleanRadioControlTester, GoACalculationControl, GoACalculationControlTester, GoACells, GoACheckoutGroupControlTester, GoADateControl, GoADateControlTester, GoADateInput, GoADateTimeControl, GoADateTimeControlTester, GoADateTimeInput, GoAEmailControl, GoAEmailControlTester, GoAEmailInput, GoAEnumCheckboxGroupControl, GoAEnumControl, GoAEnumControlTester, GoAEnumRadioGroupControl, GoAInputBaseControl, GoAInputBaseFullNameControlReview, GoAInputBaseFullNameDobControlReview, GoAInputBaseReviewControl, GoAInputBaseTableReview, GoAInputBaseTableReviewControl, GoAInputDateControl, GoAInputDateTimeControl, GoAInputEmailControl, GoAInputIntegerControl, GoAInputNumberControl, GoAInputText, GoAInputTextControl, GoAInputTimeControl, GoAIntegerControl, GoAIntegerControlTester, GoAListWithDetailsControlRenderer, GoAListWithDetailsTester, GoANumberControl, GoANumberControlTester, GoANumberInput, GoAPhoneNumberControl, GoAPhoneNumberWithTypeControl, GoAPrimitiveArrayRenderer, GoAPrimitiveArrayTester, GoARadioGroupControlTester, GoARenderers, GoAReviewRenderers, GoATextControl, GoATextControlTester, GoATimeControl, GoATimeControlTester, GoATimeInput, GoInputBaseReview, GoabInputBasePhoneNumberReviewControl, GoabInputBasePhoneNumberWithTypeReviewControl, GoabInputInteger, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, ListWithDetailsControl, MultiLineText, MultiLineTextControl, MultiLineTextControlInput, MultiLineTextControlTester, PHONE_REGEX, PhoneGrid, PhoneNumberControl, PhoneNumberReviewControl, PhoneNumberTester, PhoneNumberWithTypeControl, PhoneNumberWithTypeReviewControl, PhoneNumberWithTypeTester, PrimitiveArrayControl, RadioGroup, categoriesAreValid, createDefaultAjv, enumControl, errMalformedDate, formatSin, getByJsonPointer, getCategoryScopes, hasDataInScopes, hasDataValue, isAddressLookup, isFullName, isFullNameDoB, isPhoneNumber, isPhoneNumberWithType, registerReducer, resolveRefs, tryResolveRefs };
18199
+ export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, ADD_USER_ACTION, AddressLookUpControl, AddressLookUpControlReview, AddressLookUpTester, AddressLoopUpControlTableReview, ArrayControl, ArrayControlBase, ArrayControlReview, BooleanComponent, BooleanControl, BooleanRadioComponent, BooleanRadioControl, CategorizationPagesRendererTester, CategorizationStepperRendererTester, CheckboxGroup, ContextProviderC, ContextProviderClass, ContextProviderFactory, EnumCheckboxControl, EnumRadioControl, EnumSelect, FileUploader, FileUploaderReview, FileUploaderTester, FormPageStepper, FormPagesView, FormStepper, FormStepperControl, FormStepperPagesControl, FormStepperReviewControl, FormStepperReviewer, FormStepperView, FullNameControl, FullNameControlReview, FullNameDobControl, FullNameDobReviewControl, FullNameDobTester, FullNameReviewControl, FullNameTester, GoAArrayControlRenderer, GoAArrayControlReviewRenderer, GoAArrayControlTester, GoABaseInputReviewComponent, GoABaseRenderers, GoABaseReviewRenderers, GoABaseTableReviewRenderers, GoABooleanControl, GoABooleanControlTester, GoABooleanRadioControl, GoABooleanRadioControlTester, GoACalculationControl, GoACalculationControlTester, GoACells, GoACheckoutGroupControlTester, GoADateControl, GoADateControlTester, GoADateInput, GoADateTimeControl, GoADateTimeControlTester, GoADateTimeInput, GoAEmailControl, GoAEmailControlTester, GoAEmailInput, GoAEnumCheckboxGroupControl, GoAEnumControl, GoAEnumControlTester, GoAEnumRadioGroupControl, GoAInputBaseControl, GoAInputBaseFullNameControlReview, GoAInputBaseFullNameDobControlReview, GoAInputBaseReviewControl, GoAInputBaseTableReview, GoAInputBaseTableReviewControl, GoAInputDateControl, GoAInputDateTimeControl, GoAInputEmailControl, GoAInputIntegerControl, GoAInputNumberControl, GoAInputText, GoAInputTextControl, GoAInputTimeControl, GoAIntegerControl, GoAIntegerControlTester, GoAListWithDetailsControlRenderer, GoAListWithDetailsTester, GoANumberControl, GoANumberControlTester, GoANumberInput, GoAPhoneNumberControl, GoAPhoneNumberWithTypeControl, GoAPrimitiveArrayRenderer, GoAPrimitiveArrayTester, GoARadioGroupControlTester, GoARenderers, GoAReviewRenderers, GoATextControl, GoATextControlTester, GoATimeControl, GoATimeControlTester, GoATimeInput, GoInputBaseReview, GoabInputBasePhoneNumberReviewControl, GoabInputBasePhoneNumberWithTypeReviewControl, GoabInputInteger, InnerGoAInputText, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, ListWithDetailsControl, MultiLineText, MultiLineTextControl, MultiLineTextControlInput, MultiLineTextControlTester, PHONE_REGEX, PhoneGrid, PhoneNumberControl, PhoneNumberReviewControl, PhoneNumberTester, PhoneNumberWithTypeControl, PhoneNumberWithTypeReviewControl, PhoneNumberWithTypeTester, PrimitiveArrayControl, RadioGroup, categoriesAreValid, createDefaultAjv, enumControl, errMalformedDate, fetchRegisterConfigFromOptions$1 as fetchRegisterConfigFromOptions, formatSin, getByJsonPointer, getCategoryScopes, hasDataInScopes, hasDataValue, isAddressLookup, isFullName, isFullNameDoB, isPhoneNumber, isPhoneNumberWithType, registerReducer, resolveRefs, tryResolveRefs, useRegisterUser };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/jsonforms-components",
3
- "version": "2.52.6",
3
+ "version": "2.53.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Government of Alberta - React renderers for JSON Forms based on the design system.",
6
6
  "repository": "https://github.com/GovAlta/adsp-monorepo",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-03-12T17:06:12.099Z",
4
- "sourceCommit": "8e70c36cadefa29ed84a8d37cfaab8454a468304",
3
+ "generatedAt": "2026-03-13T17:54:45.947Z",
4
+ "sourceCommit": "ca0777fa0c83dbc8906d95bd24deecc82c540820",
5
5
  "sourcePath": "libs/jsonforms-components/src/index.ts",
6
6
  "rendererCount": 32,
7
7
  "renderers": [
@@ -1,7 +1,9 @@
1
1
  import { Dispatch } from 'react';
2
+ import { User } from './registerContext';
2
3
  export declare const ADD_REGISTER_DATA_ACTION = "jsonforms/register/data/add";
3
4
  export declare const ADD_NO_ANONYMOUS_ACTION = "jsonforms/register/no_anonymous";
4
5
  export declare const ADD_DATALIST_ACTION = "jsonforms/register/add_datalist_action";
6
+ export declare const ADD_USER_ACTION = "jsonforms/register/add_user_action";
5
7
  export declare const ADD_REGISTER_DATA_ERROR = "jsonforms/register/add_register_data_error";
6
8
  export interface RegisterConfig {
7
9
  urn?: string;
@@ -27,6 +29,7 @@ export interface RegisterConfigData extends RegisterConfig {
27
29
  errors?: Record<string, Errors>;
28
30
  nonAnonymous?: string[];
29
31
  nonExistent?: string[];
32
+ user?: User;
30
33
  }
31
34
  export type RegisterData = RegisterConfigData[];
32
35
  export type RegisterDataResponse = {
@@ -34,6 +37,7 @@ export type RegisterDataResponse = {
34
37
  nonExistent: string[];
35
38
  nonAnonymous: string[];
36
39
  errors: Record<string, Errors>;
40
+ user?: User;
37
41
  };
38
42
  type AddDataAction = {
39
43
  type: string;
@@ -1,7 +1,9 @@
1
1
  import { RegisterActions, RegisterData, RegisterDataResponse, Errors } from './actions';
2
+ import { User } from './registerContext';
2
3
  export declare function registerReducer(state: {
3
4
  registerData: RegisterData;
4
5
  nonExistent: string[];
5
6
  nonAnonymous: string[];
6
7
  errors: Record<string, Errors>;
8
+ user?: User;
7
9
  }, action: RegisterActions): RegisterDataResponse;
@@ -1,11 +1,19 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { RegisterConfig, RegisterData, JsonFormRegisterDispatch, RegisterDataType } from './actions';
3
+ export interface User {
4
+ id: string;
5
+ name: string;
6
+ email: string;
7
+ roles: string[];
8
+ preferredUsername: string;
9
+ }
3
10
  interface JsonFormsRegisterContextProps {
4
11
  registerDispatch: JsonFormRegisterDispatch;
5
12
  fetchRegisterByUrl: (registerConfig: RegisterConfig) => Promise<void>;
6
13
  selectRegisterData: (registerConfig: RegisterConfig) => RegisterDataType;
7
14
  fetchErrors: (registerConfig: RegisterConfig) => string;
8
15
  isProvided: boolean;
16
+ user?: User;
9
17
  }
10
18
  export declare const JsonFormsRegisterContext: import("react").Context<JsonFormsRegisterContextProps | undefined>;
11
19
  interface JsonFormsRegisterProviderProps {
@@ -14,7 +22,9 @@ interface JsonFormsRegisterProviderProps {
14
22
  registerData: RegisterData;
15
23
  dataList: string[];
16
24
  nonAnonymous: string[];
25
+ user?: User;
17
26
  } | undefined;
18
27
  }
19
28
  export declare const JsonFormRegisterProvider: ({ children, defaultRegisters, }: JsonFormsRegisterProviderProps) => JSX.Element;
29
+ export declare const useRegisterUser: () => User | undefined;
20
30
  export {};
@@ -1,9 +1,12 @@
1
1
  import React from 'react';
2
2
  import { CellProps, WithClassname, ControlProps, RankedTester } from '@jsonforms/core';
3
3
  import { WithInputProps } from './type';
4
+ import { RegisterConfig } from '../../Context/register';
4
5
  export type GoAInputTextProps = CellProps & WithClassname & WithInputProps;
6
+ export declare function fetchRegisterConfigFromOptions(options: Record<string, unknown> | undefined): RegisterConfig | undefined;
5
7
  export declare const formatSin: (value: string) => string;
6
8
  export declare const GoAInputText: (props: GoAInputTextProps) => JSX.Element;
9
+ export declare const InnerGoAInputText: (props: GoAInputTextProps) => JSX.Element;
7
10
  export declare const GoATextControl: (props: ControlProps) => import("react/jsx-runtime").JSX.Element;
8
11
  export declare const GoATextControlTester: RankedTester;
9
12
  export declare const GoAInputTextControl: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;
@@ -0,0 +1,65 @@
1
+ import { User } from '../Context/register';
2
+ export declare const USER_FIELD_DEFINITIONS: {
3
+ fullName: {
4
+ schema: {
5
+ type: string;
6
+ minLength: number;
7
+ description: string;
8
+ };
9
+ getValue: (user: User) => string;
10
+ };
11
+ name: {
12
+ schema: {
13
+ type: string;
14
+ minLength: number;
15
+ description: string;
16
+ };
17
+ getValue: (user: User) => string;
18
+ };
19
+ firstName: {
20
+ schema: {
21
+ type: string;
22
+ minLength: number;
23
+ description: string;
24
+ };
25
+ getValue: (user: User) => string;
26
+ };
27
+ lastName: {
28
+ schema: {
29
+ type: string;
30
+ minLength: number;
31
+ description: string;
32
+ };
33
+ getValue: (user: User) => string;
34
+ };
35
+ userName: {
36
+ schema: {
37
+ type: string;
38
+ minLength: number;
39
+ description: string;
40
+ };
41
+ getValue: (user: User) => string;
42
+ };
43
+ email: {
44
+ schema: {
45
+ type: string;
46
+ format: string;
47
+ maxLength: number;
48
+ pattern: string;
49
+ description: string;
50
+ errorMessage: {
51
+ pattern: string;
52
+ maxLength: string;
53
+ };
54
+ };
55
+ getValue: (user: User) => string;
56
+ };
57
+ };
58
+ export type UserField = keyof typeof USER_FIELD_DEFINITIONS;
59
+ export declare const autoPopulateValue: (user: User, props: {
60
+ path: string;
61
+ }) => string | undefined;
62
+ export declare const autoPopulatePropertiesMonaco: {
63
+ label: string;
64
+ insertText: string;
65
+ }[];