udp-react-enterprise-component-library 26.4.0-beta.7 → 26.4.0-beta.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/UI/inputs/textField/KeyValueTextField.d.ts.map +1 -1
- package/dist/UI/inputs/textField/KeyValueTextField.js +2 -1
- package/dist/UI/inputs/textField/KeyValueTextField.js.map +1 -1
- package/dist/UI/inputs/textField/KeyValueTextField.mjs +8 -9
- package/dist/UI/inputs/textField/KeyValueTextField.mjs.map +1 -1
- package/dist/index.mjs +50 -50
- package/dist/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
- package/dist/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts.map +1 -1
- package/dist/shell/ui/user/AddUser.d.ts.map +1 -1
- package/dist/shell/ui/user/AddUser.js +17 -5
- package/dist/shell/ui/user/AddUser.js.map +1 -1
- package/dist/shell/ui/user/AddUser.mjs +30 -14
- package/dist/shell/ui/user/AddUser.mjs.map +1 -1
- package/dist/shell/ui/user/form/UserFormFields.d.ts.map +1 -1
- package/dist/shell/ui/user/form/UserFormFields.js +20 -6
- package/dist/shell/ui/user/form/UserFormFields.js.map +1 -1
- package/dist/shell/ui/user/form/UserFormFields.mjs +214 -220
- package/dist/shell/ui/user/form/UserFormFields.mjs.map +1 -1
- package/dist/shell/ui/user/form/UserRoleAutoComplete.d.ts.map +1 -1
- package/dist/shell/ui/user/form/UserRoleAutoComplete.js +14 -14
- package/dist/shell/ui/user/form/UserRoleAutoComplete.js.map +1 -1
- package/dist/shell/ui/user/form/UserRoleAutoComplete.mjs +155 -68
- package/dist/shell/ui/user/form/UserRoleAutoComplete.mjs.map +1 -1
- package/dist/udp/fileImportMapping/FileImportConfigCard.mjs +1 -1
- package/dist/udp/fileImportMapping/FileImportMappingWizard.mjs +2 -2
- package/dist/udp/lookups/LookupCreationSheet.mjs +1 -1
- package/dist/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.mjs +1 -1
- package/dist/udp/utilities/useDateStringColumnDef.d.ts +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyValueTextField.d.ts","sourceRoot":"","sources":["../../../../src/UI/inputs/textField/KeyValueTextField.jsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyValueTextField.d.ts","sourceRoot":"","sources":["../../../../src/UI/inputs/textField/KeyValueTextField.jsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,eAAO,MAAM,iBAAiB,mCAmD7B,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { TextField } from '@material-ui/core';
|
|
|
3
3
|
import { IconButtonWithTooltip } from '../buttons/IconButtonWithToolTip';
|
|
4
4
|
import { AddIcon } from '@fluentui/react-icons';
|
|
5
5
|
import { Field } from '../../../utilities/form';
|
|
6
|
+
import { UdpTextInput } from '../../fluent-web-components';
|
|
6
7
|
export const KeyValueTextField = (props) => {
|
|
7
8
|
const { previousValues, fieldName } = props;
|
|
8
9
|
const [numFields, setNumFields] = useState(1);
|
|
@@ -15,6 +16,6 @@ export const KeyValueTextField = (props) => {
|
|
|
15
16
|
setNumFields(numPrevValues);
|
|
16
17
|
}
|
|
17
18
|
}, [previousValues]);
|
|
18
|
-
return (React.createElement("div", null, Array.from({ length: numFields }).map((_, index) => (React.createElement("div", { key: index, style: { display: 'flex', gap: 5 } }, React.createElement(Field, { component:
|
|
19
|
+
return (React.createElement("div", null, Array.from({ length: numFields }).map((_, index) => (React.createElement("div", { key: index, style: { display: 'flex', gap: 5 } }, React.createElement(Field, { component: UdpTextInput, id: `${fieldName}Key${index + 1}`, name: `${fieldName}Key${index + 1}`, label: `Parameter Name ${index + 1}`, appearance: "filled-darker", controlSize: "medium", required: false, initialValue: previousValues && Object.keys(previousValues)[index] }), React.createElement(Field, { component: UdpTextInput, id: `${fieldName}Value${index + 1}`, name: `${fieldName}Value${index + 1}`, label: `Value ${index + 1}`, appearance: "filled-darker", controlSize: "medium", required: false, initialValue: previousValues && Object.values(previousValues)[index] })))), React.createElement("div", { style: { display: 'flex', justifyContent: 'right' } }, React.createElement(IconButtonWithTooltip, { icon: AddIcon, onClick: addField, title: "Add field" }))));
|
|
19
20
|
};
|
|
20
21
|
//# sourceMappingURL=KeyValueTextField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyValueTextField.js","sourceRoot":"","sources":["../../../../src/UI/inputs/textField/KeyValueTextField.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyValueTextField.js","sourceRoot":"","sources":["../../../../src/UI/inputs/textField/KeyValueTextField.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,MAAM,EAAC,cAAc,EAAE,SAAS,EAAC,GAAG,KAAK,CAAA;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;QACrB,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAAA,CAC7B,CAAC;IAEF,SAAS,CAAC,GAAE,EAAE,CAAA;QACZ,IAAG,cAAc,EAAC,CAAC;YACjB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;YACxD,YAAY,CAAC,aAAa,CAAC,CAAA;QAC7B,CAAC;IAAA,CAEF,EAAC,CAAC,cAAc,CAAC,CAAC,CAAA;IAEnB,OAAO,CACL,iCACG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACnD,6BAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IACjD,oBAAC,KAAK,IACJ,SAAS,EAAE,YAAY,EACvB,EAAE,EAAE,GAAG,SAAS,MAAM,KAAK,GAAG,CAAC,EAAE,EACjC,IAAI,EAAE,GAAG,SAAS,MAAM,KAAK,GAAG,CAAC,EAAE,EACnC,KAAK,EAAE,kBAAkB,KAAK,GAAG,CAAC,EAAE,EACpC,UAAU,EAAC,eAAe,EAC1B,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,KAAK,EACf,YAAY,EAAE,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAClE,EACF,oBAAC,KAAK,IACJ,SAAS,EAAE,YAAY,EACvB,EAAE,EAAE,GAAG,SAAS,QAAQ,KAAK,GAAG,CAAC,EAAE,EACnC,IAAI,EAAE,GAAG,SAAS,QAAQ,KAAK,GAAG,CAAC,EAAE,EACrC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,EAAE,EAC3B,UAAU,EAAC,eAAe,EAC1B,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,KAAK,EACf,YAAY,EAAE,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GACpE,CACE,CACP,CAAC,EACF,6BAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAC,IACtD,oBAAC,qBAAqB,IACpB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAC,WAAW,GACjB,CACI,CACF,CACP,CAAC;AAAA,CACH,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Field } from "../../../utilities/form/Field.mjs";
|
|
2
2
|
import { IconButtonWithTooltip } from "../buttons/IconButtonWithToolTip.mjs";
|
|
3
|
+
import { UdpTextInput } from "../../fluent-web-components/UdpTextInput.mjs";
|
|
3
4
|
import { c } from "react-compiler-runtime";
|
|
4
5
|
import React, { useEffect, useState } from "react";
|
|
5
|
-
import
|
|
6
|
+
import "@material-ui/core";
|
|
6
7
|
import { AddIcon } from "@fluentui/react-icons";
|
|
7
8
|
//#region src/UI/inputs/textField/KeyValueTextField.jsx
|
|
8
9
|
const KeyValueTextField = (props) => {
|
|
@@ -51,24 +52,22 @@ const KeyValueTextField = (props) => {
|
|
|
51
52
|
gap: 5
|
|
52
53
|
}
|
|
53
54
|
}, /* @__PURE__ */ React.createElement(Field, {
|
|
54
|
-
component:
|
|
55
|
+
component: UdpTextInput,
|
|
55
56
|
id: `${fieldName}Key${index + 1}`,
|
|
56
57
|
name: `${fieldName}Key${index + 1}`,
|
|
57
58
|
label: `Parameter Name ${index + 1}`,
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
appearance: "filled-darker",
|
|
60
|
+
controlSize: "medium",
|
|
60
61
|
required: false,
|
|
61
|
-
fullWidth: true,
|
|
62
62
|
initialValue: previousValues && Object.keys(previousValues)[index]
|
|
63
63
|
}), /* @__PURE__ */ React.createElement(Field, {
|
|
64
|
-
component:
|
|
64
|
+
component: UdpTextInput,
|
|
65
65
|
id: `${fieldName}Value${index + 1}`,
|
|
66
66
|
name: `${fieldName}Value${index + 1}`,
|
|
67
67
|
label: `Value ${index + 1}`,
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
appearance: "filled-darker",
|
|
69
|
+
controlSize: "medium",
|
|
70
70
|
required: false,
|
|
71
|
-
fullWidth: true,
|
|
72
71
|
initialValue: previousValues && Object.values(previousValues)[index]
|
|
73
72
|
})));
|
|
74
73
|
$[7] = fieldName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyValueTextField.mjs","names":["React","useState","useEffect","TextField","IconButtonWithTooltip","AddIcon","Field","KeyValueTextField","props","$","_c","previousValues","fieldName","numFields","setNumFields","t0","addField","t1","t2","numPrevValues","Object","keys","length","t3","Array","from","t4","map","_","index","display","gap","values","t5","Symbol","for","justifyContent","t6","t7"],"sources":["../../../../src/UI/inputs/textField/KeyValueTextField.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { TextField } from '@material-ui/core';\nimport { IconButtonWithTooltip } from '../buttons/IconButtonWithToolTip';\nimport { AddIcon } from '@fluentui/react-icons';\nimport { Field } from '../../../utilities/form';\n\nexport const KeyValueTextField = (props) => {\n const {previousValues, fieldName} = props\n const [numFields, setNumFields] = useState(1);\n\n const addField = () => {\n setNumFields(numFields + 1);\n };\n\n useEffect(()=>{\n if(previousValues){\n const numPrevValues = Object.keys(previousValues).length\n setNumFields(numPrevValues)\n }\n
|
|
1
|
+
{"version":3,"file":"KeyValueTextField.mjs","names":["React","useState","useEffect","TextField","IconButtonWithTooltip","AddIcon","Field","UdpTextInput","KeyValueTextField","props","$","_c","previousValues","fieldName","numFields","setNumFields","t0","addField","t1","t2","numPrevValues","Object","keys","length","t3","Array","from","t4","map","_","index","display","gap","values","t5","Symbol","for","justifyContent","t6","t7"],"sources":["../../../../src/UI/inputs/textField/KeyValueTextField.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { TextField } from '@material-ui/core';\nimport { IconButtonWithTooltip } from '../buttons/IconButtonWithToolTip';\nimport { AddIcon } from '@fluentui/react-icons';\nimport { Field } from '../../../utilities/form';\nimport { UdpTextInput } from '../../fluent-web-components';\n\nexport const KeyValueTextField = (props) => {\n const {previousValues, fieldName} = props\n const [numFields, setNumFields] = useState(1);\n\n const addField = () => {\n setNumFields(numFields + 1);\n };\n\n useEffect(()=>{\n if(previousValues){\n const numPrevValues = Object.keys(previousValues).length\n setNumFields(numPrevValues)\n }\n\n },[previousValues])\n\n return (\n <div>\n {Array.from({ length: numFields }).map((_, index) => (\n <div key={index} style={{ display: 'flex', gap: 5 }}>\n <Field\n component={UdpTextInput}\n id={`${fieldName}Key${index + 1}`}\n name={`${fieldName}Key${index + 1}`}\n label={`Parameter Name ${index + 1}`}\n appearance='filled-darker'\n controlSize='medium'\n required={false}\n initialValue={previousValues && Object.keys(previousValues)[index]}\n />\n <Field\n component={UdpTextInput}\n id={`${fieldName}Value${index + 1}`}\n name={`${fieldName}Value${index + 1}`}\n label={`Value ${index + 1}`}\n appearance='filled-darker'\n controlSize='medium'\n required={false}\n initialValue={previousValues && Object.values(previousValues)[index]}\n />\n </div>\n ))}\n <div style={{display: 'flex', justifyContent: 'right'}}>\n <IconButtonWithTooltip\n icon={AddIcon}\n onClick={addField}\n title='Add field'\n />\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAOA,MAAaQ,qBAAoBC,UAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAC/B,MAAA,EAAAC,gBAAAC,cAAoCJ;CACpC,MAAA,CAAAK,WAAAC,gBAAkCd,SAAS,EAAE;CAAC,IAAAe;AAAA,KAAAN,EAAA,OAAAI,WAAA;AAE7BE,aAAA;AACfD,gBAAaD,YAAY,EAAE;;AAC5BJ,IAAA,KAAAI;AAAAJ,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAFD,MAAAO,WAAiBD;CAEf,IAAAE;CAAA,IAAAC;AAAA,KAAAT,EAAA,OAAAE,gBAAA;AAEQM,aAAA;AACR,OAAGN,gBAAc;IACf,MAAAQ,gBAAsBC,OAAMC,KAAMV,eAAe,CAAAW;AACjDR,iBAAaK,cAAc;;;AAG7BD,OAAA,CAACP,eAAe;AAAAF,IAAA,KAAAE;AAAAF,IAAA,KAAAQ;AAAAR,IAAA,KAAAS;QAAA;AAAAD,OAAAR,EAAA;AAAAS,OAAAT,EAAA;;AANlBR,WAAUgB,IAMRC,GAAiB;CAAA,IAAAK;AAAA,KAAAd,EAAA,OAAAI,WAAA;AAIdU,OAAAC,MAAKC,KAAM,EAAAH,QAAUT,WAAW,CAAC;AAAAJ,IAAA,KAAAI;AAAAJ,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,OAAAG,aAAAH,EAAA,OAAAE,kBAAAF,EAAA,OAAAc,IAAA;AAAjCG,OAAAH,GAAiCI,KAAKC,GAAAC,UACrC,sBAAA,cAAA,OAAA;GAAUA,KAAAA;GAAc,OAAA;IAAAC,SAAW;IAAMC,KAAO;IAAE;GAsBnD,EArBG,sBAAA,cAAC,OAAD;GACazB,WAAAA;GACP,IAAA,GAAGM,UAAS,KAAMiB,QAAQ;GACxB,MAAA,GAAGjB,UAAS,KAAMiB,QAAQ;GACzB,OAAA,kBAAkBA,QAAQ;GACtB,YAAA;GACC,aAAA;GACF,UAAA;GACI,cAAAlB,kBAAkBS,OAAMC,KAAMV,eAAe,CAACkB;GAE9D,CAAA,EAAA,sBAAA,cAAC,OAAD;GACavB,WAAAA;GACP,IAAA,GAAGM,UAAS,OAAQiB,QAAQ;GAC1B,MAAA,GAAGjB,UAAS,OAAQiB,QAAQ;GAC3B,OAAA,SAASA,QAAQ;GACb,YAAA;GACC,aAAA;GACF,UAAA;GACI,cAAAlB,kBAAkBS,OAAMY,OAAQrB,eAAe,CAACkB;GAElE,CAAA,CACD,CAAC;AAAApB,IAAA,KAAAG;AAAAH,IAAA,KAAAE;AAAAF,IAAA,KAAAc;AAAAd,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAyB,OAAAC,IAAA,4BAAA,EAAA;AACUF,OAAA;GAAAH,SAAU;GAAMM,gBAAkB;GAAQ;AAAA3B,IAAA,MAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAA4B;AAAA,KAAA5B,EAAA,QAAAO,UAAA;AAAtDqB,OAAA,sBAAA,cAAA,OAAA,EAAY,OAAAJ,IAMN,EALN,sBAAA,cAAC,uBAAD;GACQ7B,MAAAA;GACGY,SAAAA;GACH,OAAA;GAER,CAAA,CAAM;AAAAP,IAAA,MAAAO;AAAAP,IAAA,MAAA4B;OAAAA,MAAA5B,EAAA;CAAA,IAAA6B;AAAA,KAAA7B,EAAA,QAAAiB,MAAAjB,EAAA,QAAA4B,IAAA;AA/BRC,OAAA,sBAAA,cAAA,OAAA,MACGZ,IAwBDW,GAOI;AAAA5B,IAAA,MAAAiB;AAAAjB,IAAA,MAAA4B;AAAA5B,IAAA,MAAA6B;OAAAA,MAAA7B,EAAA;AAAA,QAhCN6B"}
|
package/dist/index.mjs
CHANGED
|
@@ -301,6 +301,56 @@ import { PaymentReversalForm } from "./UI/forms/PaymentReversalForm.mjs";
|
|
|
301
301
|
import { CrudForm } from "./UI/forms/CrudForm.mjs";
|
|
302
302
|
import { FluentTagField, FluentTagFieldComponent } from "./UI/inputs/textField/FluentTagField.mjs";
|
|
303
303
|
import { AmbientAutoComplete } from "./UI/inputs/textField/AmbientAutoComplete.mjs";
|
|
304
|
+
import { UdpAccordion } from "./UI/fluent-web-components/UdpAccordion.mjs";
|
|
305
|
+
import { UdpAvatar } from "./UI/fluent-web-components/UdpAvatar.mjs";
|
|
306
|
+
import { UdpBadge } from "./UI/fluent-web-components/UdpBadge.mjs";
|
|
307
|
+
import { UdpCard } from "./UI/fluent-web-components/UdpCard.mjs";
|
|
308
|
+
import { UdpCheckbox } from "./UI/fluent-web-components/UdpCheckbox.mjs";
|
|
309
|
+
import { UdpContainerQuery } from "./UI/fluent-web-components/UdpContainerQuery.mjs";
|
|
310
|
+
import { UdpContainerQueryGrid } from "./UI/fluent-web-components/UdpContainerQueryGrid.mjs";
|
|
311
|
+
import { UdpCompoundButton } from "./UI/fluent-web-components/UdpCompoundButton.mjs";
|
|
312
|
+
import { UdpCounterBadge } from "./UI/fluent-web-components/UdpCounterBadge.mjs";
|
|
313
|
+
import { UdpDateInput } from "./UI/fluent-web-components/UdpDateInput.mjs";
|
|
314
|
+
import { UdpDatePicker } from "./UI/fluent-web-components/UdpDatePicker.mjs";
|
|
315
|
+
import { UdpDateTimeInput } from "./UI/fluent-web-components/UdpDateTimeInput.mjs";
|
|
316
|
+
import { UdpDivider } from "./UI/fluent-web-components/UdpDivider.mjs";
|
|
317
|
+
import { UdpDrawer } from "./UI/fluent-web-components/UdpDrawer.mjs";
|
|
318
|
+
import { UdpDropdown } from "./UI/fluent-web-components/UdpDropdown.mjs";
|
|
319
|
+
import { UdpEmptyState } from "./UI/fluent-web-components/UdpEmptyState.mjs";
|
|
320
|
+
import { UdpFileInput } from "./UI/fluent-web-components/UdpFileInput.mjs";
|
|
321
|
+
import { UdpFlexbox } from "./UI/fluent-web-components/UdpFlexbox.mjs";
|
|
322
|
+
import { UdpIcon } from "./UI/fluent-web-components/UdpIcon.mjs";
|
|
323
|
+
import { UdpIconButton } from "./UI/fluent-web-components/UdpIconButton.mjs";
|
|
324
|
+
import { UdpImage } from "./UI/fluent-web-components/UdpImage.mjs";
|
|
325
|
+
import { UdpLink } from "./UI/fluent-web-components/UdpLink.mjs";
|
|
326
|
+
import { UdpLocationInput } from "./UI/fluent-web-components/UdpLocationInput.mjs";
|
|
327
|
+
import { UdpMenu } from "./UI/fluent-web-components/UdpMenu.mjs";
|
|
328
|
+
import { UdpMessageBar } from "./UI/fluent-web-components/UdpMessageBar.mjs";
|
|
329
|
+
import { UdpPopover } from "./UI/fluent-web-components/UdpPopover.mjs";
|
|
330
|
+
import { UdpProgressBar } from "./UI/fluent-web-components/UdpProgressBar.mjs";
|
|
331
|
+
import { UdpRadioGroup } from "./UI/fluent-web-components/UdpRadioGroup.mjs";
|
|
332
|
+
import { UdpSearchInput } from "./UI/fluent-web-components/UdpSearchInput.mjs";
|
|
333
|
+
import { UdpSignatureInput } from "./UI/fluent-web-components/UdpSignatureInput.mjs";
|
|
334
|
+
import { UdpSlider } from "./UI/fluent-web-components/UdpSlider.mjs";
|
|
335
|
+
import { UdpSpinner } from "./UI/fluent-web-components/UdpSpinner.mjs";
|
|
336
|
+
import { UdpSwatchPicker } from "./UI/fluent-web-components/UdpSwatchPicker.mjs";
|
|
337
|
+
import { UdpSwitch } from "./UI/fluent-web-components/UdpSwitch.mjs";
|
|
338
|
+
import { UdpText } from "./UI/fluent-web-components/UdpText.mjs";
|
|
339
|
+
import { UdpNumberInput } from "./UI/fluent-web-components/UdpNumberInput.mjs";
|
|
340
|
+
import { UdpTextInput } from "./UI/fluent-web-components/UdpTextInput.mjs";
|
|
341
|
+
import { UdpTextarea } from "./UI/fluent-web-components/UdpTextarea.mjs";
|
|
342
|
+
import { UdpTimeInput } from "./UI/fluent-web-components/UdpTimeInput.mjs";
|
|
343
|
+
import { UdpToggleButton } from "./UI/fluent-web-components/UdpToggleButton.mjs";
|
|
344
|
+
import { UdpTooltip } from "./UI/fluent-web-components/UdpTooltip.mjs";
|
|
345
|
+
import { UdpTree, UdpTreeContext } from "./UI/fluent-web-components/UdpTree.mjs";
|
|
346
|
+
import { UdpTreeItem } from "./UI/fluent-web-components/UdpTreeItem.mjs";
|
|
347
|
+
import { UdpDurationInput } from "./UI/fluent-web-components/UdpDurationInput.mjs";
|
|
348
|
+
import { UdpChip } from "./UI/fluent-web-components/UdpChip.mjs";
|
|
349
|
+
import { UdpVerticalSpacer } from "./UI/fluent-web-components/UdpVerticalSpacer.mjs";
|
|
350
|
+
import { UdpIconGrid } from "./UI/fluent-web-components/UdpIconGrid.mjs";
|
|
351
|
+
import { UdpList } from "./UI/fluent-web-components/UdpList.mjs";
|
|
352
|
+
import { UdpListItem } from "./UI/fluent-web-components/UdpListItem.mjs";
|
|
353
|
+
import { UdpPrimaryActionHeader } from "./UI/fluent-web-components/UdpPrimaryActionHeader.mjs";
|
|
304
354
|
import { KeyValueTextField } from "./UI/inputs/textField/KeyValueTextField.mjs";
|
|
305
355
|
import { UdpTransactionEmailForm } from "./UI/forms/UdpTransactionEmailForm.mjs";
|
|
306
356
|
import { ExtenderToggle } from "./UI/templates/ui/ExtenderToggle.mjs";
|
|
@@ -387,57 +437,7 @@ import { UdpPublicForm } from "./udp/pages/UdpFormsPublicForm/UdpPublicForm.mjs"
|
|
|
387
437
|
import { UdpPrivateForm } from "./udp/pages/UdpFormsPrivateForm/UdpPrivateForm.mjs";
|
|
388
438
|
import UdpFormsListPage from "./udp/pages/UdpFormsListPage/UdpFormsListPage.mjs";
|
|
389
439
|
import UdpFormsBuilderPage from "./udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.mjs";
|
|
390
|
-
import { UdpCard } from "./UI/fluent-web-components/UdpCard.mjs";
|
|
391
|
-
import { UdpDrawer } from "./UI/fluent-web-components/UdpDrawer.mjs";
|
|
392
|
-
import { UdpFileInput } from "./UI/fluent-web-components/UdpFileInput.mjs";
|
|
393
440
|
import { AmbientStepper } from "./UI/inputs/menus/AmbientStepper/AmbientStepper.mjs";
|
|
394
|
-
import { UdpAccordion } from "./UI/fluent-web-components/UdpAccordion.mjs";
|
|
395
|
-
import { UdpAvatar } from "./UI/fluent-web-components/UdpAvatar.mjs";
|
|
396
|
-
import { UdpBadge } from "./UI/fluent-web-components/UdpBadge.mjs";
|
|
397
|
-
import { UdpCheckbox } from "./UI/fluent-web-components/UdpCheckbox.mjs";
|
|
398
|
-
import { UdpContainerQuery } from "./UI/fluent-web-components/UdpContainerQuery.mjs";
|
|
399
|
-
import { UdpContainerQueryGrid } from "./UI/fluent-web-components/UdpContainerQueryGrid.mjs";
|
|
400
|
-
import { UdpCompoundButton } from "./UI/fluent-web-components/UdpCompoundButton.mjs";
|
|
401
|
-
import { UdpCounterBadge } from "./UI/fluent-web-components/UdpCounterBadge.mjs";
|
|
402
|
-
import { UdpDateInput } from "./UI/fluent-web-components/UdpDateInput.mjs";
|
|
403
|
-
import { UdpDatePicker } from "./UI/fluent-web-components/UdpDatePicker.mjs";
|
|
404
|
-
import { UdpDateTimeInput } from "./UI/fluent-web-components/UdpDateTimeInput.mjs";
|
|
405
|
-
import { UdpDivider } from "./UI/fluent-web-components/UdpDivider.mjs";
|
|
406
|
-
import { UdpDropdown } from "./UI/fluent-web-components/UdpDropdown.mjs";
|
|
407
|
-
import { UdpEmptyState } from "./UI/fluent-web-components/UdpEmptyState.mjs";
|
|
408
|
-
import { UdpFlexbox } from "./UI/fluent-web-components/UdpFlexbox.mjs";
|
|
409
|
-
import { UdpIcon } from "./UI/fluent-web-components/UdpIcon.mjs";
|
|
410
|
-
import { UdpIconButton } from "./UI/fluent-web-components/UdpIconButton.mjs";
|
|
411
|
-
import { UdpImage } from "./UI/fluent-web-components/UdpImage.mjs";
|
|
412
|
-
import { UdpLink } from "./UI/fluent-web-components/UdpLink.mjs";
|
|
413
|
-
import { UdpLocationInput } from "./UI/fluent-web-components/UdpLocationInput.mjs";
|
|
414
|
-
import { UdpMenu } from "./UI/fluent-web-components/UdpMenu.mjs";
|
|
415
|
-
import { UdpMessageBar } from "./UI/fluent-web-components/UdpMessageBar.mjs";
|
|
416
|
-
import { UdpPopover } from "./UI/fluent-web-components/UdpPopover.mjs";
|
|
417
|
-
import { UdpProgressBar } from "./UI/fluent-web-components/UdpProgressBar.mjs";
|
|
418
|
-
import { UdpRadioGroup } from "./UI/fluent-web-components/UdpRadioGroup.mjs";
|
|
419
|
-
import { UdpSearchInput } from "./UI/fluent-web-components/UdpSearchInput.mjs";
|
|
420
|
-
import { UdpSignatureInput } from "./UI/fluent-web-components/UdpSignatureInput.mjs";
|
|
421
|
-
import { UdpSlider } from "./UI/fluent-web-components/UdpSlider.mjs";
|
|
422
|
-
import { UdpSpinner } from "./UI/fluent-web-components/UdpSpinner.mjs";
|
|
423
|
-
import { UdpSwatchPicker } from "./UI/fluent-web-components/UdpSwatchPicker.mjs";
|
|
424
|
-
import { UdpSwitch } from "./UI/fluent-web-components/UdpSwitch.mjs";
|
|
425
|
-
import { UdpText } from "./UI/fluent-web-components/UdpText.mjs";
|
|
426
|
-
import { UdpNumberInput } from "./UI/fluent-web-components/UdpNumberInput.mjs";
|
|
427
|
-
import { UdpTextInput } from "./UI/fluent-web-components/UdpTextInput.mjs";
|
|
428
|
-
import { UdpTextarea } from "./UI/fluent-web-components/UdpTextarea.mjs";
|
|
429
|
-
import { UdpTimeInput } from "./UI/fluent-web-components/UdpTimeInput.mjs";
|
|
430
|
-
import { UdpToggleButton } from "./UI/fluent-web-components/UdpToggleButton.mjs";
|
|
431
|
-
import { UdpTooltip } from "./UI/fluent-web-components/UdpTooltip.mjs";
|
|
432
|
-
import { UdpTree, UdpTreeContext } from "./UI/fluent-web-components/UdpTree.mjs";
|
|
433
|
-
import { UdpTreeItem } from "./UI/fluent-web-components/UdpTreeItem.mjs";
|
|
434
|
-
import { UdpDurationInput } from "./UI/fluent-web-components/UdpDurationInput.mjs";
|
|
435
|
-
import { UdpChip } from "./UI/fluent-web-components/UdpChip.mjs";
|
|
436
|
-
import { UdpVerticalSpacer } from "./UI/fluent-web-components/UdpVerticalSpacer.mjs";
|
|
437
|
-
import { UdpIconGrid } from "./UI/fluent-web-components/UdpIconGrid.mjs";
|
|
438
|
-
import { UdpList } from "./UI/fluent-web-components/UdpList.mjs";
|
|
439
|
-
import { UdpListItem } from "./UI/fluent-web-components/UdpListItem.mjs";
|
|
440
|
-
import { UdpPrimaryActionHeader } from "./UI/fluent-web-components/UdpPrimaryActionHeader.mjs";
|
|
441
441
|
import { ImportDataFromFileMapping } from "./udp/fileImportMapping/ImportDataFromFileMapping.mjs";
|
|
442
442
|
import { useDateLocale } from "./hooks/useDateLocale.mjs";
|
|
443
443
|
import { FluentMenuListButton } from "./UI/inputs/buttons/FluentMenuListButton.mjs";
|
|
@@ -5,6 +5,7 @@ export declare const TableColumnDefs: (actionList: any) => ({
|
|
|
5
5
|
wrapText: boolean;
|
|
6
6
|
autoHeight: boolean;
|
|
7
7
|
sortable: boolean;
|
|
8
|
+
filter?: undefined;
|
|
8
9
|
pinned?: undefined;
|
|
9
10
|
cellRenderer?: undefined;
|
|
10
11
|
// minWidth: 50,
|
|
@@ -13,7 +14,6 @@ export declare const TableColumnDefs: (actionList: any) => ({
|
|
|
13
14
|
maxWidth?: undefined;
|
|
14
15
|
suppressMenu?: undefined;
|
|
15
16
|
cellStyle?: undefined;
|
|
16
|
-
filter?: undefined;
|
|
17
17
|
} | {
|
|
18
18
|
field?: undefined;
|
|
19
19
|
wrapText?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumnDefs.d.ts","sourceRoot":"","sources":["../../../src/maintenanceEngine/tableBrowser/TableColumnDefs.js"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"TableColumnDefs.d.ts","sourceRoot":"","sources":["../../../src/maintenanceEngine/tableBrowser/TableColumnDefs.js"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;;;;;;;;;;IAsBtB,gBAAgB;;;;;;;;;;;;;;IAAhB,gBAAgB;;;;;;;;;;;;;IAarB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;CAOnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddUser.d.ts","sourceRoot":"","sources":["../../../../src/shell/ui/user/AddUser.jsx"],"names":[],"mappings":"AACA,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AddUser.d.ts","sourceRoot":"","sources":["../../../../src/shell/ui/user/AddUser.jsx"],"names":[],"mappings":"AACA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAYjF,eAAO,MAAM,OAAO,mCAsRnB,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { UserFormFields } from './form/UserFormFields';
|
|
|
5
5
|
import { Field, Form } from '../../../utilities/form';
|
|
6
6
|
import { FluentTextField } from '../../../UI/inputs/textField';
|
|
7
7
|
import { UdpStepper } from '../../../UI';
|
|
8
|
+
import { UdpTextInput } from '../../../UI/fluent-web-components';
|
|
8
9
|
const USER_EMAIL_STEP = 0;
|
|
9
10
|
const USER_INFO_STEP = 1;
|
|
10
11
|
export const AddUser = props => {
|
|
@@ -29,10 +30,12 @@ export const AddUser = props => {
|
|
|
29
30
|
const [activeStep, setActiveStep] = useState(USER_EMAIL_STEP);
|
|
30
31
|
const [completed, setCompleted] = useState({});
|
|
31
32
|
const [existingUser, setExistingUser] = useState(null);
|
|
33
|
+
const [email, setEmail] = useState('');
|
|
32
34
|
const [passwordType, setPasswordType] = useState('autoGeneratePassword'); // 'autoGeneratePassword' | 'createPassword'
|
|
33
35
|
const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'
|
|
34
36
|
const handleSubmitRef = useRef(null);
|
|
35
37
|
const emailFieldRef = useRef(null);
|
|
38
|
+
const [isValidEmail, setIsValidEmail] = useState(false);
|
|
36
39
|
const handlePasswordTypeChange = useCallback(event => {
|
|
37
40
|
setPasswordType(event.target.value);
|
|
38
41
|
}, []);
|
|
@@ -69,9 +72,11 @@ export const AddUser = props => {
|
|
|
69
72
|
setActiveStep(USER_EMAIL_STEP);
|
|
70
73
|
}, []);
|
|
71
74
|
const goToInfoStep = useCallback(async () => {
|
|
72
|
-
const email = emailFieldRef.current.value;
|
|
73
75
|
setExistingUser(null);
|
|
74
76
|
setSidesheetLoading(true);
|
|
77
|
+
if (!(email === null || email === void 0 ? void 0 : email.trim())) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
75
80
|
const existingUserResponse = await getUserByEmail(email);
|
|
76
81
|
const user = existingUserResponse.data;
|
|
77
82
|
if (user) {
|
|
@@ -80,7 +85,7 @@ export const AddUser = props => {
|
|
|
80
85
|
setSidesheetLoading(false);
|
|
81
86
|
setCompleted(prev => (Object.assign(Object.assign({}, prev), { [USER_EMAIL_STEP]: true })));
|
|
82
87
|
setActiveStep(USER_INFO_STEP);
|
|
83
|
-
}, [getUserByEmail, setSidesheetLoading]);
|
|
88
|
+
}, [getUserByEmail, setSidesheetLoading, email]);
|
|
84
89
|
const onSubmit = useCallback(async values => {
|
|
85
90
|
setSidesheetLoading(true);
|
|
86
91
|
if (creationMethod === 'invite') {
|
|
@@ -95,6 +100,7 @@ export const AddUser = props => {
|
|
|
95
100
|
if (values.email) {
|
|
96
101
|
values.email = values.email.toLowerCase().trim();
|
|
97
102
|
}
|
|
103
|
+
values = Object.assign(Object.assign({}, values), { accountEnabled: !values.locked });
|
|
98
104
|
try {
|
|
99
105
|
if (existingUser) {
|
|
100
106
|
// Set the new values onto the existing user values
|
|
@@ -142,6 +148,7 @@ export const AddUser = props => {
|
|
|
142
148
|
title: t('Next'),
|
|
143
149
|
action: 2,
|
|
144
150
|
variant: 'outline',
|
|
151
|
+
disabled: !isValidEmail,
|
|
145
152
|
customAction: goToInfoStep,
|
|
146
153
|
},
|
|
147
154
|
];
|
|
@@ -151,6 +158,7 @@ export const AddUser = props => {
|
|
|
151
158
|
action: 1,
|
|
152
159
|
variant: 'outline',
|
|
153
160
|
customAction: goToEmailStep,
|
|
161
|
+
disabled: sidesheetLoading
|
|
154
162
|
},
|
|
155
163
|
{
|
|
156
164
|
title: t('Create user'),
|
|
@@ -162,7 +170,7 @@ export const AddUser = props => {
|
|
|
162
170
|
];
|
|
163
171
|
return updated;
|
|
164
172
|
});
|
|
165
|
-
}, [goToInfoStep, goToEmailStep, submitForm, t, sidesheetLoading]);
|
|
173
|
+
}, [goToInfoStep, goToEmailStep, submitForm, t, sidesheetLoading, isValidEmail]);
|
|
166
174
|
useEffect(() => {
|
|
167
175
|
if (existingUser) {
|
|
168
176
|
setSteps(prev => {
|
|
@@ -183,12 +191,16 @@ export const AddUser = props => {
|
|
|
183
191
|
}, [existingUser, t]);
|
|
184
192
|
return (React.createElement(Form, { onSubmit: onSubmit, render: ({ handleSubmit }) => {
|
|
185
193
|
handleSubmitRef.current = handleSubmit;
|
|
186
|
-
return (React.createElement(UdpStepper, { steps: steps, activeStep: activeStep, completed: completed, orientation: "vertical", labelDisplay: "all", labelPosition: "right" }, activeStep === 0 && (React.createElement(Field, { ref: emailFieldRef, component:
|
|
194
|
+
return (React.createElement(UdpStepper, { steps: steps, activeStep: activeStep, completed: completed, orientation: "vertical", labelDisplay: "all", labelPosition: "right" }, activeStep === 0 && (React.createElement(Field, { ref: emailFieldRef, component: UdpTextInput, label: t('Email'), id: "email", name: "email", appearance: "outline", controlSize: "medium", required: true, value: email, validate: value => {
|
|
187
195
|
if (!/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value) ||
|
|
188
196
|
64 < value.split('@')[0].length) {
|
|
197
|
+
setIsValidEmail(false);
|
|
189
198
|
return t('Invalid email address');
|
|
190
199
|
}
|
|
191
|
-
|
|
200
|
+
else {
|
|
201
|
+
setIsValidEmail(true);
|
|
202
|
+
}
|
|
203
|
+
}, onChange: e => setEmail(e.target.value), onKeyDown: e => {
|
|
192
204
|
if (e.key === 'Enter') {
|
|
193
205
|
e.preventDefault();
|
|
194
206
|
goToInfoStep();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddUser.js","sourceRoot":"","sources":["../../../../src/shell/ui/user/AddUser.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AddUser.js","sourceRoot":"","sources":["../../../../src/shell/ui/user/AddUser.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IAC9B,MAAM,EACJ,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC1B,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,iDAAiD;YACjD,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,WAAW;gBACtB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,yBAAyB;aACjC,CAAA;QACH,CAAC;IAAA,CACF,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/B,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;IAE1C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,4CAA4C;IACtH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB;IAE1F,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,wBAAwB,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAA,CACrC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,0BAA0B,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAA,CACvC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC;QACjC;YACE,WAAW,EAAE;gBACX,aAAa,EAAE,GAAG;gBAClB,YAAY,EAAE,KAAG;gBACjB,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;gBACvB,QAAQ,EAAE,CAAC,CAAC,wCAAwC,CAAC;aACtD;YACD,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,EAAE;SACZ;QACD;YACE,WAAW,EAAE;gBACX,aAAa,EAAE,GAAG;gBAClB,YAAY,EAAE,KAAG;gBACjB,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC;gBACrB,QAAQ,EAAE,CAAC,CAAC,0CAA0C,CAAC;aACxD;YACD,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,EAAE;SACZ;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACtC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,iCAAM,IAAI,KAAE,CAAC,cAAc,CAAC,EAAE,KAAK,IAAG,CAAC,CAAC;QAC7D,aAAa,CAAC,eAAe,CAAC,CAAC;IAAA,CAChC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,CAAA,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QACD,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAE3B,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,iCAAM,IAAI,KAAE,CAAC,eAAe,CAAC,EAAE,IAAI,IAAG,CAAC,CAAC;QAC7D,aAAa,CAAC,cAAc,CAAC,CAAC;IAAA,CAC/B,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACd,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,YAAY,KAAK,sBAAsB,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACnD,CAAC;QACD,MAAM,mCAAQ,MAAM,KAAE,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,GAAE,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,YAAY,EAAE,CAAC;gBACjB,mDAAmD;gBACnD,oDAAoD;gBACpD,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACpE,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAClE,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAE5D,MAAM,0BAA0B,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE;oBACZ,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,QAAQ;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAAA,CAC5B,EACD;QACE,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,0BAA0B;QAC1B,mBAAmB;QACnB,cAAc;QACd,YAAY;QACZ,WAAW;KACZ,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;IAAA,CACF,EAAE,EAAE,CAAC,CAAC;IAEP,0FAA0F;IAC1F,SAAS,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1B,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,GAAG;gBACjC;oBACE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,SAAS;oBAClB,QAAQ,EAAE,CAAC,YAAY;oBACvB,YAAY,EAAE,YAAY;iBAC3B;aACF,CAAC;YACF,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG;gBAChC;oBACE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,SAAS;oBAClB,YAAY,EAAE,aAAa;oBAC3B,QAAQ,EAAE,gBAAgB;iBAC3B;gBACD;oBACE,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;oBACvB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,SAAS;oBAClB,YAAY,EAAE,UAAU;oBACxB,QAAQ,EAAE,gBAAgB;iBAC3B;aACF,CAAC;YACF,OAAO,OAAO,CAAC;QAAA,CAChB,CAAC,CAAC;IAAA,CACJ,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEjF,SAAS,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1B,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAC9C,gFAAgF,CACjF,CAAC;gBACF,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACnE,OAAO,OAAO,CAAC;YAAA,CAChB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1B,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAC9C,0CAA0C,CAC3C,CAAC;gBACF,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;gBAC5D,OAAO,OAAO,CAAC;YAAA,CAChB,CAAC,CAAC;QACL,CAAC;IAAA,CACF,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtB,OAAO,CACL,oBAAC,IAAI,IACH,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;YAC5B,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;YACvC,OAAO,CACL,oBAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAC,UAAU,EACtB,YAAY,EAAC,KAAK,EAClB,aAAa,EAAC,OAAO,IAEpB,UAAU,KAAK,CAAC,IAAI,CACnB,oBAAC,KAAK,IACJ,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EACjB,EAAE,EAAC,OAAO,EACV,IAAI,EAAC,OAAO,EACZ,UAAU,EAAC,SAAS,EACpB,WAAW,EAAC,QAAQ,EACpB,QAAQ,QACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;oBACjB,IACE,CAAC,uJAAuJ,CAAC,IAAI,CAC3J,KAAK,CACN;wBACD,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAC/B,CAAC;wBACD,eAAe,CAAC,KAAK,CAAC,CAAC;wBACvB,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC;oBACpC,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,IAAI,CAAC,CAAA;oBACvB,CAAC;gBAAA,CACF,EACD,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;oBACd,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,YAAY,EAAE,CAAC;oBACjB,CAAC;gBAAA,CACF,GACD,CACH,EACA,UAAU,KAAK,CAAC,IAAI,CACnB,oBAAC,cAAc,IACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,YAAY,EACxB,wBAAwB,EAAE,wBAAwB,EAClD,YAAY,EAAE,YAAY,EAC1B,0BAA0B,EAAE,0BAA0B,EACtD,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,IAAI,EACpB,eAAe,EAAE,eAAe,GAChC,CACH,CACU,CACd,CAAC;QAAA,CACH,GACD,CACH,CAAC;AAAA,CACH,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Form } from "../../../utilities/form/Form.mjs";
|
|
2
2
|
import { Field } from "../../../utilities/form/Field.mjs";
|
|
3
|
-
import { FluentTextField } from "../../../UI/inputs/textField/FluentTextField.mjs";
|
|
4
3
|
import { UdpStepper } from "../../../UI/stepper/udp-stepper.mjs";
|
|
4
|
+
import { UdpTextInput } from "../../../UI/fluent-web-components/UdpTextInput.mjs";
|
|
5
5
|
import { UserFormFields } from "./form/UserFormFields.mjs";
|
|
6
6
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
7
7
|
import { useSnackbar } from "notistack";
|
|
@@ -26,10 +26,12 @@ const AddUser = (props) => {
|
|
|
26
26
|
const [activeStep, setActiveStep] = useState(USER_EMAIL_STEP);
|
|
27
27
|
const [completed, setCompleted] = useState({});
|
|
28
28
|
const [existingUser, setExistingUser] = useState(null);
|
|
29
|
+
const [email, setEmail] = useState("");
|
|
29
30
|
const [passwordType, setPasswordType] = useState("autoGeneratePassword");
|
|
30
31
|
const [creationMethod, setCreationMethod] = useState("standard");
|
|
31
32
|
const handleSubmitRef = useRef(null);
|
|
32
33
|
const emailFieldRef = useRef(null);
|
|
34
|
+
const [isValidEmail, setIsValidEmail] = useState(false);
|
|
33
35
|
const handlePasswordTypeChange = useCallback((event) => {
|
|
34
36
|
setPasswordType(event.target.value);
|
|
35
37
|
}, []);
|
|
@@ -66,9 +68,9 @@ const AddUser = (props) => {
|
|
|
66
68
|
setActiveStep(USER_EMAIL_STEP);
|
|
67
69
|
}, []);
|
|
68
70
|
const goToInfoStep = useCallback(async () => {
|
|
69
|
-
const email = emailFieldRef.current.value;
|
|
70
71
|
setExistingUser(null);
|
|
71
72
|
setSidesheetLoading(true);
|
|
73
|
+
if (!email?.trim()) return;
|
|
72
74
|
const user = (await getUserByEmail(email)).data;
|
|
73
75
|
if (user) setExistingUser(user);
|
|
74
76
|
setSidesheetLoading(false);
|
|
@@ -77,13 +79,21 @@ const AddUser = (props) => {
|
|
|
77
79
|
[USER_EMAIL_STEP]: true
|
|
78
80
|
}));
|
|
79
81
|
setActiveStep(USER_INFO_STEP);
|
|
80
|
-
}, [
|
|
82
|
+
}, [
|
|
83
|
+
getUserByEmail,
|
|
84
|
+
setSidesheetLoading,
|
|
85
|
+
email
|
|
86
|
+
]);
|
|
81
87
|
const onSubmit = useCallback(async (values) => {
|
|
82
88
|
setSidesheetLoading(true);
|
|
83
89
|
if (creationMethod === "invite") values.isInvite = true;
|
|
84
90
|
else values.isInvite = false;
|
|
85
91
|
if (passwordType === "autoGeneratePassword") values.passwordProfile = null;
|
|
86
92
|
if (values.email) values.email = values.email.toLowerCase().trim();
|
|
93
|
+
values = {
|
|
94
|
+
...values,
|
|
95
|
+
accountEnabled: !values.locked
|
|
96
|
+
};
|
|
87
97
|
try {
|
|
88
98
|
if (existingUser) {
|
|
89
99
|
existingUser[userMapping.firstName] = values[userMapping.firstName];
|
|
@@ -121,13 +131,15 @@ const AddUser = (props) => {
|
|
|
121
131
|
title: t("Next"),
|
|
122
132
|
action: 2,
|
|
123
133
|
variant: "outline",
|
|
134
|
+
disabled: !isValidEmail,
|
|
124
135
|
customAction: goToInfoStep
|
|
125
136
|
}];
|
|
126
137
|
updated[USER_INFO_STEP].buttons = [{
|
|
127
138
|
title: t("Back"),
|
|
128
139
|
action: 1,
|
|
129
140
|
variant: "outline",
|
|
130
|
-
customAction: goToEmailStep
|
|
141
|
+
customAction: goToEmailStep,
|
|
142
|
+
disabled: sidesheetLoading
|
|
131
143
|
}, {
|
|
132
144
|
title: t("Create user"),
|
|
133
145
|
action: 3,
|
|
@@ -142,7 +154,8 @@ const AddUser = (props) => {
|
|
|
142
154
|
goToEmailStep,
|
|
143
155
|
submitForm,
|
|
144
156
|
t,
|
|
145
|
-
sidesheetLoading
|
|
157
|
+
sidesheetLoading,
|
|
158
|
+
isValidEmail
|
|
146
159
|
]);
|
|
147
160
|
useEffect(() => {
|
|
148
161
|
if (existingUser) setSteps((prev_2) => {
|
|
@@ -171,21 +184,24 @@ const AddUser = (props) => {
|
|
|
171
184
|
labelPosition: "right"
|
|
172
185
|
}, activeStep === 0 && /* @__PURE__ */ React.createElement(Field, {
|
|
173
186
|
ref: emailFieldRef,
|
|
174
|
-
component:
|
|
187
|
+
component: UdpTextInput,
|
|
175
188
|
label: t("Email"),
|
|
176
189
|
id: "email",
|
|
177
190
|
name: "email",
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
margin: "normal",
|
|
181
|
-
size: "small",
|
|
191
|
+
appearance: "outline",
|
|
192
|
+
controlSize: "medium",
|
|
182
193
|
required: true,
|
|
194
|
+
value: email,
|
|
183
195
|
validate: (value) => {
|
|
184
|
-
if (!/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value) || 64 < value.split("@")[0].length)
|
|
196
|
+
if (!/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value) || 64 < value.split("@")[0].length) {
|
|
197
|
+
setIsValidEmail(false);
|
|
198
|
+
return t("Invalid email address");
|
|
199
|
+
} else setIsValidEmail(true);
|
|
185
200
|
},
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
201
|
+
onChange: (e) => setEmail(e.target.value),
|
|
202
|
+
onKeyDown: (e_0) => {
|
|
203
|
+
if (e_0.key === "Enter") {
|
|
204
|
+
e_0.preventDefault();
|
|
189
205
|
goToInfoStep();
|
|
190
206
|
}
|
|
191
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddUser.mjs","names":["useSnackbar","React","useCallback","useEffect","useRef","useState","useMemo","useTranslation","UserFormFields","Field","Form","FluentTextField","UdpStepper","USER_EMAIL_STEP","USER_INFO_STEP","AddUser","props","getUserByEmail","handleCreateUser","handleUpdateAndAddToTenant","rolesData","setSidesheetLoading","sidesheetLoading","altFieldMapping","userMapping","userId","firstName","lastName","email","roles","t","enqueueSnackbar","activeStep","setActiveStep","completed","setCompleted","existingUser","setExistingUser","passwordType","setPasswordType","creationMethod","setCreationMethod","handleSubmitRef","emailFieldRef","handlePasswordTypeChange","event","target","value","handleCreationMethodChange","steps","setSteps","stepDisplay","inProcessIcon","completeIcon","title","subTitle","stepTitle","showTitle","buttons","goToEmailStep","prev","goToInfoStep","current","existingUserResponse","user","data","onSubmit","values","isInvite","passwordProfile","toLowerCase","trim","err","message","variant","anchorOrigin","vertical","horizontal","submitForm","updated","action","customAction","disabled","handleSubmit","test","split","length","e","key","preventDefault"],"sources":["../../../../src/shell/ui/user/AddUser.jsx"],"sourcesContent":["import { useSnackbar } from 'notistack';\nimport React, { useCallback, useEffect, useRef, useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { UserFormFields } from './form/UserFormFields';\nimport { Field, Form } from '../../../utilities/form';\nimport { FluentTextField } from '../../../UI/inputs/textField';\nimport { UdpStepper } from '../../../UI';\n\n\nconst USER_EMAIL_STEP = 0;\nconst USER_INFO_STEP = 1;\n\nexport const AddUser = props => {\n const {\n getUserByEmail,\n handleCreateUser,\n handleUpdateAndAddToTenant,\n rolesData,\n setSidesheetLoading,\n sidesheetLoading,\n altFieldMapping,\n } = props;\n\n const userMapping = useMemo(() => {\n if (altFieldMapping) {\n return altFieldMapping;\n } else {\n // Default mapping for code generated User object\n return {\n userId: 'userId',\n firstName: 'firstName',\n lastName: 'lastName',\n email: 'email',\n roles: 'systemWideSecurityRoles',\n }\n }\n }, [altFieldMapping]);\n\n const { t } = useTranslation();\n\n const { enqueueSnackbar } = useSnackbar();\n\n const [activeStep, setActiveStep] = useState(USER_EMAIL_STEP);\n const [completed, setCompleted] = useState({});\n const [existingUser, setExistingUser] = useState(null);\n\n const [passwordType, setPasswordType] = useState('autoGeneratePassword'); // 'autoGeneratePassword' | 'createPassword'\n const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'\n\n const handleSubmitRef = useRef(null);\n const emailFieldRef = useRef(null);\n\n const handlePasswordTypeChange = useCallback(event => {\n setPasswordType(event.target.value);\n }, []);\n\n const handleCreationMethodChange = useCallback(event => {\n setCreationMethod(event.target.value);\n }, []);\n\n const [steps, setSteps] = useState([\n {\n stepDisplay: {\n inProcessIcon: '1',\n completeIcon: '✓',\n title: t('Enter Email'),\n subTitle: t('Enter the email you will use to log in'),\n },\n stepTitle: 'Step 1',\n showTitle: 'true',\n buttons: [],\n },\n {\n stepDisplay: {\n inProcessIcon: '2',\n completeIcon: '✓',\n title: t('User Info'),\n subTitle: t('Fill in additional info for the new user'),\n },\n stepTitle: 'Step 2',\n showTitle: 'true',\n buttons: [],\n },\n ]);\n\n const goToEmailStep = useCallback(() => {\n setExistingUser(null);\n setCompleted(prev => ({ ...prev, [USER_INFO_STEP]: false }));\n setActiveStep(USER_EMAIL_STEP);\n }, []);\n\n const goToInfoStep = useCallback(async () => {\n const email = emailFieldRef.current.value;\n\n setExistingUser(null);\n setSidesheetLoading(true);\n\n const existingUserResponse = await getUserByEmail(email);\n const user = existingUserResponse.data;\n if (user) {\n setExistingUser(user);\n }\n\n setSidesheetLoading(false);\n\n setCompleted(prev => ({ ...prev, [USER_EMAIL_STEP]: true }));\n setActiveStep(USER_INFO_STEP);\n }, [getUserByEmail, setSidesheetLoading]);\n\n const onSubmit = useCallback(\n async values => {\n setSidesheetLoading(true);\n\n if (creationMethod === 'invite') {\n values.isInvite = true;\n } else {\n values.isInvite = false;\n }\n\n if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n\n if (values.email) {\n values.email = values.email.toLowerCase().trim();\n }\n\n try {\n if (existingUser) {\n // Set the new values onto the existing user values\n // eslint-disable-next-line react-hooks/immutability\n existingUser[userMapping.firstName] = values[userMapping.firstName];\n existingUser[userMapping.lastName] = values[userMapping.lastName];\n existingUser[userMapping.roles] = values[userMapping.roles];\n\n await handleUpdateAndAddToTenant(existingUser[userMapping.userId], existingUser);\n } else {\n await handleCreateUser(values);\n }\n } catch (err) {\n enqueueSnackbar(err.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center',\n },\n });\n }\n\n setSidesheetLoading(false);\n },\n [\n existingUser,\n enqueueSnackbar,\n handleCreateUser,\n handleUpdateAndAddToTenant,\n setSidesheetLoading,\n creationMethod,\n passwordType,\n userMapping\n ]\n );\n\n const submitForm = useCallback(() => {\n if (handleSubmitRef.current) {\n handleSubmitRef.current();\n }\n }, []);\n\n // Inject the button definitions to prevent constant re-creation of customAction callbacks\n useEffect(() => {\n setSteps(prev => {\n const updated = [...prev];\n updated[USER_EMAIL_STEP].buttons = [\n {\n title: t('Next'),\n action: 2,\n variant: 'outline',\n customAction: goToInfoStep,\n },\n ];\n updated[USER_INFO_STEP].buttons = [\n {\n title: t('Back'),\n action: 1,\n variant: 'outline',\n customAction: goToEmailStep,\n },\n {\n title: t('Create user'),\n action: 3,\n variant: 'outline',\n customAction: submitForm,\n disabled: sidesheetLoading,\n },\n ];\n return updated;\n });\n }, [goToInfoStep, goToEmailStep, submitForm, t, sidesheetLoading]);\n\n useEffect(() => {\n if (existingUser) {\n setSteps(prev => {\n const updated = [...prev];\n updated[USER_INFO_STEP].stepDisplay.subTitle = t(\n 'A user with that email already exists. Edit values before adding to the tenant'\n );\n updated[USER_INFO_STEP].buttons[1].title = t('Add user to tenant');\n return updated;\n });\n } else {\n setSteps(prev => {\n const updated = [...prev];\n updated[USER_INFO_STEP].stepDisplay.subTitle = t(\n 'Fill in additional info for the new user'\n );\n updated[USER_INFO_STEP].buttons[1].title = t('Create user');\n return updated;\n });\n }\n }, [existingUser, t]);\n\n return (\n <Form\n onSubmit={onSubmit}\n render={({ handleSubmit }) => {\n handleSubmitRef.current = handleSubmit;\n return (\n <UdpStepper\n steps={steps}\n activeStep={activeStep}\n completed={completed}\n orientation=\"vertical\"\n labelDisplay=\"all\"\n labelPosition=\"right\"\n >\n {activeStep === 0 && (\n <Field\n ref={emailFieldRef}\n component={FluentTextField}\n label={t('Email')}\n id=\"email\"\n name=\"email\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n validate={value => {\n if (\n !/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value\n ) ||\n 64 < value.split('@')[0].length\n ) {\n return t('Invalid email address');\n }\n }}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n goToInfoStep();\n }\n }}\n />\n )}\n {activeStep === 1 && (\n <UserFormFields\n rolesData={rolesData}\n editedUser={existingUser}\n handlePasswordTypeChange={handlePasswordTypeChange}\n passwordType={passwordType}\n handleCreationMethodChange={handleCreationMethodChange}\n creationMethod={creationMethod}\n hideEmailField={true}\n altFieldMapping={altFieldMapping}\n />\n )}\n </UdpStepper>\n );\n }}\n />\n );\n};\n\nexport default AddUser;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddUser.mjs","names":["useSnackbar","React","useCallback","useEffect","useRef","useState","useMemo","useTranslation","UserFormFields","Field","Form","FluentTextField","UdpStepper","UdpTextInput","USER_EMAIL_STEP","USER_INFO_STEP","AddUser","props","getUserByEmail","handleCreateUser","handleUpdateAndAddToTenant","rolesData","setSidesheetLoading","sidesheetLoading","altFieldMapping","userMapping","userId","firstName","lastName","email","roles","t","enqueueSnackbar","activeStep","setActiveStep","completed","setCompleted","existingUser","setExistingUser","setEmail","passwordType","setPasswordType","creationMethod","setCreationMethod","handleSubmitRef","emailFieldRef","isValidEmail","setIsValidEmail","handlePasswordTypeChange","event","target","value","handleCreationMethodChange","steps","setSteps","stepDisplay","inProcessIcon","completeIcon","title","subTitle","stepTitle","showTitle","buttons","goToEmailStep","prev","goToInfoStep","trim","existingUserResponse","user","data","onSubmit","values","isInvite","passwordProfile","toLowerCase","accountEnabled","locked","err","message","variant","anchorOrigin","vertical","horizontal","submitForm","current","updated","action","disabled","customAction","handleSubmit","test","split","length","e","key","preventDefault"],"sources":["../../../../src/shell/ui/user/AddUser.jsx"],"sourcesContent":["import { useSnackbar } from 'notistack';\nimport React, { useCallback, useEffect, useRef, useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { UserFormFields } from './form/UserFormFields';\nimport { Field, Form } from '../../../utilities/form';\nimport { FluentTextField } from '../../../UI/inputs/textField';\nimport { UdpStepper } from '../../../UI';\nimport { UdpTextInput } from '../../../UI/fluent-web-components';\n\n\nconst USER_EMAIL_STEP = 0;\nconst USER_INFO_STEP = 1;\n\nexport const AddUser = props => {\n const {\n getUserByEmail,\n handleCreateUser,\n handleUpdateAndAddToTenant,\n rolesData,\n setSidesheetLoading,\n sidesheetLoading,\n altFieldMapping,\n } = props;\n\n const userMapping = useMemo(() => {\n if (altFieldMapping) {\n return altFieldMapping;\n } else {\n // Default mapping for code generated User object\n return {\n userId: 'userId',\n firstName: 'firstName',\n lastName: 'lastName',\n email: 'email',\n roles: 'systemWideSecurityRoles',\n }\n }\n }, [altFieldMapping]);\n\n const { t } = useTranslation();\n\n const { enqueueSnackbar } = useSnackbar();\n\n const [activeStep, setActiveStep] = useState(USER_EMAIL_STEP);\n const [completed, setCompleted] = useState({});\n const [existingUser, setExistingUser] = useState(null);\n const [email, setEmail] = useState('');\n\n const [passwordType, setPasswordType] = useState('autoGeneratePassword'); // 'autoGeneratePassword' | 'createPassword'\n const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'\n\n const handleSubmitRef = useRef(null);\n const emailFieldRef = useRef(null);\n const [isValidEmail, setIsValidEmail] = useState(false);\n\n const handlePasswordTypeChange = useCallback(event => {\n setPasswordType(event.target.value);\n }, []);\n\n const handleCreationMethodChange = useCallback(event => {\n setCreationMethod(event.target.value);\n }, []);\n\n const [steps, setSteps] = useState([\n {\n stepDisplay: {\n inProcessIcon: '1',\n completeIcon: '✓',\n title: t('Enter Email'),\n subTitle: t('Enter the email you will use to log in'),\n },\n stepTitle: 'Step 1',\n showTitle: 'true',\n buttons: [],\n },\n {\n stepDisplay: {\n inProcessIcon: '2',\n completeIcon: '✓',\n title: t('User Info'),\n subTitle: t('Fill in additional info for the new user'),\n },\n stepTitle: 'Step 2',\n showTitle: 'true',\n buttons: [],\n },\n ]);\n\n const goToEmailStep = useCallback(() => {\n setExistingUser(null);\n setCompleted(prev => ({ ...prev, [USER_INFO_STEP]: false }));\n setActiveStep(USER_EMAIL_STEP);\n }, []);\n\n const goToInfoStep = useCallback(async () => {\n setExistingUser(null);\n setSidesheetLoading(true);\n if (!email?.trim()) {\n return\n }\n const existingUserResponse = await getUserByEmail(email);\n const user = existingUserResponse.data;\n if (user) {\n setExistingUser(user);\n }\n\n setSidesheetLoading(false);\n\n setCompleted(prev => ({ ...prev, [USER_EMAIL_STEP]: true }));\n setActiveStep(USER_INFO_STEP);\n }, [getUserByEmail, setSidesheetLoading, email]);\n\n const onSubmit = useCallback(\n async values => {\n setSidesheetLoading(true);\n\n if (creationMethod === 'invite') {\n values.isInvite = true;\n } else {\n values.isInvite = false;\n }\n\n if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n\n if (values.email) {\n values.email = values.email.toLowerCase().trim();\n }\n values = { ...values, accountEnabled: !values.locked };\n try {\n if (existingUser) {\n // Set the new values onto the existing user values\n // eslint-disable-next-line react-hooks/immutability\n existingUser[userMapping.firstName] = values[userMapping.firstName];\n existingUser[userMapping.lastName] = values[userMapping.lastName];\n existingUser[userMapping.roles] = values[userMapping.roles];\n\n await handleUpdateAndAddToTenant(existingUser[userMapping.userId], existingUser);\n } else {\n await handleCreateUser(values);\n }\n } catch (err) {\n enqueueSnackbar(err.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center',\n },\n });\n }\n\n setSidesheetLoading(false);\n },\n [\n existingUser,\n enqueueSnackbar,\n handleCreateUser,\n handleUpdateAndAddToTenant,\n setSidesheetLoading,\n creationMethod,\n passwordType,\n userMapping\n ]\n );\n\n const submitForm = useCallback(() => {\n if (handleSubmitRef.current) {\n handleSubmitRef.current();\n }\n }, []);\n\n // Inject the button definitions to prevent constant re-creation of customAction callbacks\n useEffect(() => {\n setSteps(prev => {\n const updated = [...prev];\n updated[USER_EMAIL_STEP].buttons = [\n {\n title: t('Next'),\n action: 2,\n variant: 'outline',\n disabled: !isValidEmail,\n customAction: goToInfoStep,\n },\n ];\n updated[USER_INFO_STEP].buttons = [\n {\n title: t('Back'),\n action: 1,\n variant: 'outline',\n customAction: goToEmailStep,\n disabled: sidesheetLoading\n },\n {\n title: t('Create user'),\n action: 3,\n variant: 'outline',\n customAction: submitForm,\n disabled: sidesheetLoading,\n },\n ];\n return updated;\n });\n }, [goToInfoStep, goToEmailStep, submitForm, t, sidesheetLoading, isValidEmail]);\n\n useEffect(() => {\n if (existingUser) {\n setSteps(prev => {\n const updated = [...prev];\n updated[USER_INFO_STEP].stepDisplay.subTitle = t(\n 'A user with that email already exists. Edit values before adding to the tenant'\n );\n updated[USER_INFO_STEP].buttons[1].title = t('Add user to tenant');\n return updated;\n });\n } else {\n setSteps(prev => {\n const updated = [...prev];\n updated[USER_INFO_STEP].stepDisplay.subTitle = t(\n 'Fill in additional info for the new user'\n );\n updated[USER_INFO_STEP].buttons[1].title = t('Create user');\n return updated;\n });\n }\n }, [existingUser, t]);\n\n return (\n <Form\n onSubmit={onSubmit}\n render={({ handleSubmit }) => {\n handleSubmitRef.current = handleSubmit;\n return (\n <UdpStepper\n steps={steps}\n activeStep={activeStep}\n completed={completed}\n orientation=\"vertical\"\n labelDisplay=\"all\"\n labelPosition=\"right\"\n >\n {activeStep === 0 && (\n <Field\n ref={emailFieldRef}\n component={UdpTextInput}\n label={t('Email')}\n id=\"email\"\n name=\"email\"\n appearance=\"outline\"\n controlSize=\"medium\"\n required\n value={email}\n validate={value => {\n if (\n !/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value\n ) ||\n 64 < value.split('@')[0].length\n ) {\n setIsValidEmail(false);\n return t('Invalid email address');\n } else {\n setIsValidEmail(true)\n }\n }}\n onChange={e => setEmail(e.target.value)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n goToInfoStep();\n }\n }}\n />\n )}\n {activeStep === 1 && (\n <UserFormFields\n rolesData={rolesData}\n editedUser={existingUser}\n handlePasswordTypeChange={handlePasswordTypeChange}\n passwordType={passwordType}\n handleCreationMethodChange={handleCreationMethodChange}\n creationMethod={creationMethod}\n hideEmailField={true}\n altFieldMapping={altFieldMapping}\n />\n )}\n </UdpStepper>\n );\n }}\n />\n );\n};\n\nexport default AddUser;\n"],"mappings":";;;;;;;;;AAUA,MAAMc,kBAAkB;AACxB,MAAMC,iBAAiB;AAEvB,MAAaC,WAAUC,UAAS;CAC9B,MAAM,EACJC,gBACAC,kBACAC,4BACAC,WACAC,qBACAC,kBACAC,oBACEP;CAEJ,MAAMQ,cAAcnB,cAAc;AAChC,MAAIkB,gBACF,QAAOA;MAGP,QAAO;GACLE,QAAQ;GACRC,WAAW;GACXC,UAAU;GACVC,OAAO;GACPC,OAAO;GACR;IAEF,CAACN,gBAAgB,CAAC;CAErB,MAAM,EAAEO,MAAMxB,gBAAgB;CAE9B,MAAM,EAAEyB,oBAAoBhC,aAAa;CAEzC,MAAM,CAACiC,YAAYC,iBAAiB7B,SAASS,gBAAgB;CAC7D,MAAM,CAACqB,WAAWC,gBAAgB/B,SAAS,EAAE,CAAC;CAC9C,MAAM,CAACgC,cAAcC,mBAAmBjC,SAAS,KAAK;CACtD,MAAM,CAACwB,OAAOU,YAAYlC,SAAS,GAAG;CAEtC,MAAM,CAACmC,cAAcC,mBAAmBpC,SAAS,uBAAuB;CACxE,MAAM,CAACqC,gBAAgBC,qBAAqBtC,SAAS,WAAW;CAEhE,MAAMuC,kBAAkBxC,OAAO,KAAK;CACpC,MAAMyC,gBAAgBzC,OAAO,KAAK;CAClC,MAAM,CAAC0C,cAAcC,mBAAmB1C,SAAS,MAAM;CAEvD,MAAM2C,2BAA2B9C,aAAY+C,UAAS;AACpDR,kBAAgBQ,MAAMC,OAAOC,MAAM;IAClC,EAAE,CAAC;CAEN,MAAMC,6BAA6BlD,aAAY+C,YAAS;AACtDN,oBAAkBM,QAAMC,OAAOC,MAAM;IACpC,EAAE,CAAC;CAEN,MAAM,CAACE,OAAOC,YAAYjD,SAAS,CACjC;EACEkD,aAAa;GACXC,eAAe;GACfC,cAAc;GACdC,OAAO3B,EAAE,cAAc;GACvB4B,UAAU5B,EAAE,yCAAwC;GACrD;EACD6B,WAAW;EACXC,WAAW;EACXC,SAAS,EAAA;EACV,EACD;EACEP,aAAa;GACXC,eAAe;GACfC,cAAc;GACdC,OAAO3B,EAAE,YAAY;GACrB4B,UAAU5B,EAAE,2CAA0C;GACvD;EACD6B,WAAW;EACXC,WAAW;EACXC,SAAS,EAAA;EACV,CACF,CAAC;CAEF,MAAMC,gBAAgB7D,kBAAkB;AACtCoC,kBAAgB,KAAK;AACrBF,gBAAa4B,UAAS;GAAE,GAAGA;IAAOjD,iBAAiB;GAAO,EAAE;AAC5DmB,gBAAcpB,gBAAgB;IAC7B,EAAE,CAAC;CAEN,MAAMmD,eAAe/D,YAAY,YAAY;AAC3CoC,kBAAgB,KAAK;AACrBhB,sBAAoB,KAAK;AACzB,MAAI,CAACO,OAAOqC,MAAM,CAChB;EAGF,MAAME,QADuB,MAAMlD,eAAeW,MAAM,EACtBwC;AAClC,MAAID,KACF9B,iBAAgB8B,KAAK;AAGvB9C,sBAAoB,MAAM;AAE1Bc,gBAAa4B,YAAS;GAAE,GAAGA;IAAOlD,kBAAkB;GAAM,EAAE;AAC5DoB,gBAAcnB,eAAe;IAC5B;EAACG;EAAgBI;EAAqBO;EAAM,CAAC;CAEhD,MAAMyC,WAAWpE,YACf,OAAMqE,WAAU;AACdjD,sBAAoB,KAAK;AAEzB,MAAIoB,mBAAmB,SACrB6B,QAAOC,WAAW;MAElBD,QAAOC,WAAW;AAGpB,MAAIhC,iBAAiB,uBACnB+B,QAAOE,kBAAkB;AAG3B,MAAIF,OAAO1C,MACT0C,QAAO1C,QAAQ0C,OAAO1C,MAAM6C,aAAa,CAACR,MAAM;AAElDK,WAAS;GAAE,GAAGA;GAAQI,gBAAgB,CAACJ,OAAOK;GAAQ;AACtD,MAAI;AACF,OAAIvC,cAAc;AAGhBA,iBAAaZ,YAAYE,aAAa4C,OAAO9C,YAAYE;AACzDU,iBAAaZ,YAAYG,YAAY2C,OAAO9C,YAAYG;AACxDS,iBAAaZ,YAAYK,SAASyC,OAAO9C,YAAYK;AAErD,UAAMV,2BAA2BiB,aAAaZ,YAAYC,SAASW,aAAa;SAEhF,OAAMlB,iBAAiBoD,OAAO;WAEzBM,KAAK;AACZ7C,mBAAgB6C,IAAIC,SAAS;IAC3BC,SAAS;IACTC,cAAc;KACZC,UAAU;KACVC,YAAY;KACd;IACD,CAAC;;AAGJ5D,sBAAoB,MAAM;IAE5B;EACEe;EACAL;EACAb;EACAC;EACAE;EACAoB;EACAF;EACAf;EAEJ,CAAC;CAED,MAAM0D,aAAajF,kBAAkB;AACnC,MAAI0C,gBAAgBwC,QAClBxC,iBAAgBwC,SAAS;IAE1B,EAAE,CAAC;AAGNjF,iBAAgB;AACdmD,YAASU,WAAQ;GACf,MAAMqB,UAAU,CAAC,GAAGrB,OAAK;AACzBqB,WAAQvE,iBAAiBgD,UAAU,CACjC;IACEJ,OAAO3B,EAAE,OAAO;IAChBuD,QAAQ;IACRP,SAAS;IACTQ,UAAU,CAACzC;IACX0C,cAAcvB;IACf,CACF;AACDoB,WAAQtE,gBAAgB+C,UAAU,CAChC;IACEJ,OAAO3B,EAAE,OAAO;IAChBuD,QAAQ;IACRP,SAAS;IACTS,cAAczB;IACdwB,UAAUhE;IACX,EACD;IACEmC,OAAO3B,EAAE,cAAc;IACvBuD,QAAQ;IACRP,SAAS;IACTS,cAAcL;IACdI,UAAUhE;IACX,CACF;AACD,UAAO8D;IACP;IACD;EAACpB;EAAcF;EAAeoB;EAAYpD;EAAGR;EAAkBuB;EAAa,CAAC;AAEhF3C,iBAAgB;AACd,MAAIkC,aACFiB,WAASU,WAAQ;GACf,MAAMqB,YAAU,CAAC,GAAGrB,OAAK;AACzBqB,aAAQtE,gBAAgBwC,YAAYI,WAAW5B,EAC7C,iFACD;AACDsD,aAAQtE,gBAAgB+C,QAAQ,GAAGJ,QAAQ3B,EAAE,qBAAqB;AAClE,UAAOsD;IACP;MAEF/B,WAASU,WAAQ;GACf,MAAMqB,YAAU,CAAC,GAAGrB,OAAK;AACzBqB,aAAQtE,gBAAgBwC,YAAYI,WAAW5B,EAC7C,2CACD;AACDsD,aAAQtE,gBAAgB+C,QAAQ,GAAGJ,QAAQ3B,EAAE,cAAc;AAC3D,UAAOsD;IACP;IAEH,CAAChD,cAAcN,EAAE,CAAC;AAErB,QACE,sBAAA,cAAC,MAAD;EACYuC;EACV,SAAS,EAAEmB,mBAAmB;AAC5B7C,mBAAgBwC,UAAUK;AAC1B,UACE,sBAAA,cAAC,YAAD;IACSpC;IACKpB;IACDE;IACX,aAAY;IACZ,cAAa;IACb,eAAc;IA+CH,EA7CVF,eAAe,KACd,sBAAA,cAAC,OAAD;IACE,KAAKY;IACL,WAAWhC;IACX,OAAOkB,EAAE,QAAQ;IACjB,IAAG;IACH,MAAK;IACL,YAAW;IACX,aAAY;IACZ,UAAA;IACA,OAAOF;IACP,WAAUsB,UAAS;AACjB,SACE,CAAC,wJAAwJuC,KACvJvC,MACD,IACD,KAAKA,MAAMwC,MAAM,IAAI,CAAC,GAAGC,QACzB;AACA7C,sBAAgB,MAAM;AACtB,aAAOhB,EAAE,wBAAwB;WAEjCgB,iBAAgB,KAAK;;IAGzB,WAAU8C,MAAKtD,SAASsD,EAAE3C,OAAOC,MAAM;IACvC,YAAW0C,QAAK;AACd,SAAIA,IAAEC,QAAQ,SAAS;AACrBD,UAAEE,gBAAgB;AAClB9B,oBAAc;;;IAIrB,CAAA,EACAhC,eAAe,KACd,sBAAA,cAAC,gBAAD;IACaZ;IACX,YAAYgB;IACcW;IACZR;IACcY;IACZV;IAChB,gBAAgB;IACClB;IAEpB,CAAA,CACU;;EAGjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFormFields.d.ts","sourceRoot":"","sources":["../../../../../src/shell/ui/user/form/UserFormFields.jsx"],"names":[],"mappings":"AAQA,OAAO,KAAyC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"UserFormFields.d.ts","sourceRoot":"","sources":["../../../../../src/shell/ui/user/form/UserFormFields.jsx"],"names":[],"mappings":"AAQA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAiC9D,eAAO,MAAM,cAAc,mCAwP1B,CAAC"}
|