@verii/components-organizations-registrar 1.0.0 → 1.0.2

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.
Files changed (73) hide show
  1. package/dist/chunks/HolderWalletSelection.BYj3foq0.js +167 -0
  2. package/dist/chunks/HolderWalletSelection.BYj3foq0.js.map +1 -0
  3. package/dist/chunks/HolderWalletSelection.BvPFTrTh.js +166 -0
  4. package/dist/chunks/HolderWalletSelection.BvPFTrTh.js.map +1 -0
  5. package/dist/chunks/{ServicesEdit.BnnqC203.js → ServicesEdit.CrmS66vz.js} +75 -50
  6. package/dist/chunks/ServicesEdit.CrmS66vz.js.map +1 -0
  7. package/dist/chunks/{ServicesEdit.DDgjS5kU.js → ServicesEdit.DFxcohIF.js} +75 -50
  8. package/dist/chunks/ServicesEdit.DFxcohIF.js.map +1 -0
  9. package/dist/chunks/{SetInvitationService.PxAGwk-I.js → SetInvitationService.BeU7-IBo.js} +3 -3
  10. package/dist/chunks/{SetInvitationService.PxAGwk-I.js.map → SetInvitationService.BeU7-IBo.js.map} +1 -1
  11. package/dist/chunks/{SetInvitationService.ZT5lP003.js → SetInvitationService.DtVH6OkH.js} +3 -3
  12. package/dist/chunks/{SetInvitationService.ZT5lP003.js.map → SetInvitationService.DtVH6OkH.js.map} +1 -1
  13. package/dist/chunks/{ValidateTextInput.D5kgjulG.js → ValidateTextInput.1Fv1GPyZ.js} +2 -2
  14. package/dist/chunks/{ValidateTextInput.D5kgjulG.js.map → ValidateTextInput.1Fv1GPyZ.js.map} +1 -1
  15. package/dist/chunks/{ValidateTextInput.DEBaVB1L.js → ValidateTextInput.DPruGgff.js} +2 -2
  16. package/dist/chunks/{ValidateTextInput.DEBaVB1L.js.map → ValidateTextInput.DPruGgff.js.map} +1 -1
  17. package/dist/chunks/{index.Cmn4FlUL.js → index.BDTIIDNe.js} +251 -114
  18. package/dist/chunks/index.BDTIIDNe.js.map +1 -0
  19. package/dist/chunks/{index.YjnxLFjk.js → index.CaxYybSL.js} +115 -56
  20. package/dist/chunks/index.CaxYybSL.js.map +1 -0
  21. package/dist/chunks/{index.DIizFYFZ.js → index.Cjk52g3G.js} +115 -56
  22. package/dist/chunks/index.Cjk52g3G.js.map +1 -0
  23. package/dist/chunks/{index.DMWKdmxs.js → index.DFMQZMWE.js} +12 -2
  24. package/dist/chunks/index.DFMQZMWE.js.map +1 -0
  25. package/dist/chunks/{index.DND10PiY.js → index.DTlm8AhC.js} +11 -1
  26. package/dist/chunks/index.DTlm8AhC.js.map +1 -0
  27. package/dist/chunks/{index.CYCWawJT.js → index.DmF-wFBs.js} +249 -112
  28. package/dist/chunks/index.DmF-wFBs.js.map +1 -0
  29. package/dist/chunks/{serviceTypes.D7c4G5GY.js → serviceTypes.BWVBK33e.js} +52 -31
  30. package/dist/chunks/serviceTypes.BWVBK33e.js.map +1 -0
  31. package/dist/chunks/{serviceTypes.CxLXtDIT.js → serviceTypes.BbBTNXB9.js} +52 -31
  32. package/dist/chunks/serviceTypes.BbBTNXB9.js.map +1 -0
  33. package/dist/components/common.cjs +1 -1
  34. package/dist/components/common.js +1 -1
  35. package/dist/components/invitations.cjs +1 -1
  36. package/dist/components/invitations.js +1 -1
  37. package/dist/components/organizations.cjs +1 -1
  38. package/dist/components/organizations.js +1 -1
  39. package/dist/components/services.cjs +1 -1
  40. package/dist/components/services.js +1 -1
  41. package/dist/index.cjs +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/pages/invitations.cjs +5 -6
  44. package/dist/pages/invitations.cjs.map +1 -1
  45. package/dist/pages/invitations.js +4 -5
  46. package/dist/pages/invitations.js.map +1 -1
  47. package/dist/pages/organizations.cjs +11 -16
  48. package/dist/pages/organizations.cjs.map +1 -1
  49. package/dist/pages/organizations.js +10 -15
  50. package/dist/pages/organizations.js.map +1 -1
  51. package/dist/pages/services.cjs +27 -30
  52. package/dist/pages/services.cjs.map +1 -1
  53. package/dist/pages/services.js +26 -29
  54. package/dist/pages/services.js.map +1 -1
  55. package/package.json +3 -3
  56. package/dist/chunks/ServicesEdit.BnnqC203.js.map +0 -1
  57. package/dist/chunks/ServicesEdit.DDgjS5kU.js.map +0 -1
  58. package/dist/chunks/index.CYCWawJT.js.map +0 -1
  59. package/dist/chunks/index.Cmn4FlUL.js.map +0 -1
  60. package/dist/chunks/index.DIizFYFZ.js.map +0 -1
  61. package/dist/chunks/index.DMWKdmxs.js.map +0 -1
  62. package/dist/chunks/index.DND10PiY.js.map +0 -1
  63. package/dist/chunks/index.YjnxLFjk.js.map +0 -1
  64. package/dist/chunks/invitations.BI_Qo5Ca.js +0 -10
  65. package/dist/chunks/invitations.BI_Qo5Ca.js.map +0 -1
  66. package/dist/chunks/invitations.BbK6WSY8.js +0 -11
  67. package/dist/chunks/invitations.BbK6WSY8.js.map +0 -1
  68. package/dist/chunks/serviceTypes.CxLXtDIT.js.map +0 -1
  69. package/dist/chunks/serviceTypes.D7c4G5GY.js.map +0 -1
  70. package/dist/chunks/useIsIssuingInspection.C76mY_wb.js +0 -14
  71. package/dist/chunks/useIsIssuingInspection.C76mY_wb.js.map +0 -1
  72. package/dist/chunks/useIsIssuingInspection.DavhBs5B.js +0 -13
  73. package/dist/chunks/useIsIssuingInspection.DavhBs5B.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateTextInput.D5kgjulG.js","sources":["../../src/components/organizations/OrganizationSubmitButton.jsx","../../src/utils/hooks/useDebounceValue.js","../../src/components/organizations/AutoCompleteOrganizationName.jsx","../../src/components/organizations/CreateInvitationForOrganization.jsx","../../src/components/organizations/CreateOrganization.jsx","../../src/components/organizations/ValidateTextInput.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from 'react-admin';\nimport { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport Loading from '../Loading.jsx';\n\nconst OrganizationSubmitButton = ({ title, isLoading, endIcon, styles, handleState, enabled }) => {\n const form = useFormContext();\n\n useEffect(() => {\n if (handleState) {\n handleState(form.formState.isValid);\n }\n }, [form.formState.isValid, handleState]);\n\n return (\n <Button\n disabled={!form.formState.isValid && !enabled}\n variant=\"outlined\"\n color=\"primary\"\n type=\"submit\"\n size=\"large\"\n label={isLoading ? '' : title}\n endIcon={endIcon}\n sx={styles}\n >\n {isLoading && <Loading color=\"error\" sx={{ pl: '10px' }} size={26} />}\n </Button>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nOrganizationSubmitButton.propTypes = {\n title: PropTypes.string.isRequired,\n isLoading: PropTypes.bool,\n endIcon: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n styles: PropTypes.object,\n handleState: PropTypes.func,\n enabled: PropTypes.bool,\n};\n\nexport default OrganizationSubmitButton;\n","import { useEffect, useState } from 'react';\n\nconst useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { useCallback, useState, useEffect } from 'react';\nimport { Box, Autocomplete, Typography, useTheme, TextField, Button } from '@mui/material';\nimport { useDataProvider } from 'react-admin';\nimport { useFormContext } from 'react-hook-form';\n// eslint-disable-next-line import/extensions\nimport parse from 'autosuggest-highlight/parse/index.js';\n// eslint-disable-next-line import/extensions\nimport match from 'autosuggest-highlight/match/index.js';\nimport { Add as AddIcon } from '@mui/icons-material';\nimport PropTypes from 'prop-types';\nimport { dataResources } from '@/utils/remoteDataProvider.js';\nimport useDebounce from '@/utils/hooks/useDebounceValue.js';\n\nconst DID_START = 'did:';\nconst ERRORS = {\n DID_NOT_FOUND: 'DID not found',\n REQUIRED: 'Required',\n};\n\nconst AutoCompleteOrganizationName = ({ defaultValue }) => {\n const form = useFormContext();\n const [value, setValue] = useState(defaultValue);\n const [text, setText] = useState(defaultValue?.name || '');\n const [options, setOptions] = useState([]);\n const [isOpen, setIsOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const dataProvider = useDataProvider();\n const debouncedText = useDebounce(text, 500);\n const theme = useTheme();\n const [stopSearch, setStopSearch] = useState(false);\n\n form.register('org.name', { required: true });\n\n useEffect(() => {\n form.setValue('org', value, { shouldValidate: true });\n }, [form, value]);\n\n useEffect(() => {\n const searchProfiles = async () => {\n if (stopSearch) {\n return;\n }\n\n setLoading(true);\n try {\n if (debouncedText.includes(DID_START)) {\n const result = await dataProvider.getOne(dataResources.VERIFIED_PROFILE, {\n id: debouncedText,\n });\n setError('');\n setText(result.data.credentialSubject.name);\n setValue(result.data.credentialSubject);\n setIsOpen(false);\n return;\n }\n\n if (!debouncedText) {\n setOptions([]);\n\n return;\n }\n\n const result = await dataProvider.getList(dataResources.SEARCH_PROFILES, {\n search: debouncedText,\n });\n\n setOptions(result.data.slice(0, 5));\n } catch {\n setOptions([]);\n\n if (debouncedText.includes(DID_START)) {\n setError(ERRORS.DID_NOT_FOUND);\n }\n } finally {\n setLoading(false);\n }\n };\n\n if (debouncedText) {\n searchProfiles();\n }\n }, [dataProvider, debouncedText, stopSearch]);\n\n useEffect(() => {\n if (!isOpen) {\n setOptions([]);\n }\n }, [isOpen]);\n\n const handleChangeText = useCallback((event) => {\n setText(event?.target?.value);\n setValue({ name: event?.target?.value });\n }, []);\n\n const handleBlur = useCallback(() => {\n if (!text) {\n setValue(null);\n setError(ERRORS.REQUIRED);\n }\n\n if (text && !options.length) {\n setValue({ name: text });\n }\n }, [options, text]);\n\n const handleFocus = useCallback(() => {\n setError('');\n }, []);\n\n const handleStopSearch = useCallback(() => {\n setStopSearch(true);\n setOptions([]);\n\n setTimeout(() => {\n setStopSearch(false);\n }, 10000);\n }, []);\n\n return (\n <Box marginBottom={5}>\n <Autocomplete\n fullWidth\n options={text?.length && !loading ? options : []}\n inputValue={text || ''}\n open={isOpen}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n onInputChange={handleChangeText}\n getOptionLabel={(params) => params?.name?.toString()}\n getOptionKey={(params) => params.id}\n loading={loading}\n freeSolo\n disableClearable\n blurOnSelect\n value={value}\n filterOptions={(x) => x}\n onChange={(_event, newValue) => {\n if (typeof newValue === 'string') {\n setText(text);\n setValue({ name: text });\n setOptions([]);\n\n return;\n }\n\n setValue(newValue);\n setText(newValue.name);\n }}\n renderOption={(props, option, { inputValue }) => {\n const matches = match(option.name, inputValue, { insideWords: true });\n const parts = parse(option.name, matches);\n // eslint-disable-next-line react/prop-types\n const isLastItem = props['data-option-index'] === options.length - 1;\n\n return (\n <>\n <li {...props} style={isLastItem ? styles.lastItem : styles.item}>\n <div>\n <div>\n {parts.map((part, index) => (\n <Typography\n /* eslint-disable-next-line react/no-array-index-key */\n key={index}\n style={{ fontWeight: part.highlight ? 700 : 400 }}\n variant=\"pl\"\n >\n {part.text}\n </Typography>\n ))}\n </div>\n <Typography variant=\"ps\" color={theme.palette.secondary.light}>\n {option.id}\n </Typography>\n </div>\n </li>\n\n {isLastItem ? (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n onClick={handleStopSearch}\n sx={styles.inviteButton}\n >\n <AddIcon sx={styles.plus} />\n Invite New Organization\n </Button>\n ) : null}\n </>\n );\n }}\n renderInput={(params) => (\n <Box style={styles.inputBox}>\n <TextField\n label=\"Legal Name\"\n {...params}\n value={params.inputProps.value.name}\n onBlur={handleBlur}\n onFocus={handleFocus}\n error={error}\n />\n {value?.id ? (\n <Typography\n style={styles.did}\n variant=\"ps\"\n color={theme.palette.secondary.light}\n sx={styles.inviteButton}\n >\n {value.id}\n </Typography>\n ) : null}\n </Box>\n )}\n />\n {error ? (\n <Typography variant=\"ps\" color={theme.palette.error.light}>\n {error}\n </Typography>\n ) : null}\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nAutoCompleteOrganizationName.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n defaultValue: PropTypes.object,\n};\n\nconst styles = {\n inputBox: { position: 'relative' },\n item: {\n padding: '8px 12px',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: '#D1D4D8',\n },\n lastItem: {\n padding: '8px 12px',\n },\n did: {\n position: 'absolute',\n left: '0px',\n bottom: '-12px',\n },\n inviteButton: {\n color: (theme) => theme.customColors.grey2,\n marginBottom: '16px',\n marginLeft: '12px',\n marginTop: '16px',\n fontSize: '12px',\n },\n plus: {\n width: '16px',\n height: '16px',\n marginRight: '6px',\n },\n};\n\nexport default AutoCompleteOrganizationName;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Button, Stack, Tooltip, Typography } from '@mui/material';\nimport { AutocompleteInput, Form, TextInput, FormDataConsumer, useDataProvider } from 'react-admin';\nimport { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { WEBSITE_HINT, SUPPORT_EMAIL_HINT, TECHNICAL_EMAIL_HINT } from '../../utils/index.jsx';\nimport {\n validateEmail,\n validateWebsite,\n validateName,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { dataResources } from '../../utils/remoteDataProvider.js';\n\nconst CreateInvitationForOrganization = ({ onSubmit, countryCodes, onCancel, defaultValues }) => {\n const dataProvider = useDataProvider();\n\n const timeout = useRef(null);\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const inputNormalized = value.replace(/\\s\\s+/g, ' ').trim().toLowerCase();\n const { data: searchedProfiles } = await dataProvider.getList(\n dataResources.SEARCH_PROFILES,\n {\n search: inputNormalized,\n },\n );\n if (searchedProfiles?.some((org) => org.name.toLowerCase() === inputNormalized)) {\n resolve({ message: 'Organization already exists' });\n } else {\n resolve(undefined);\n }\n }, 500);\n });\n };\n\n const orgNamevalidation = [...validateName, debouncedValidation];\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box>\n <Typography variant=\"h1\" mb={2}>\n Invite Organization\n </Typography>\n <Typography mb={3}>\n To invite an organization to join Velocity Network™, fill in that organization&apos;s\n information below.\n </Typography>\n\n <Form onSubmit={handleSubmit} noValidate mode=\"onChange\" defaultValues={defaultValues}>\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={orgNamevalidation}\n pb={1}\n />\n {/* Uncomment when the flow is ready */}\n {/* <AutoCompleteOrganizationName defaultValue={defaultValues?.org} /> */}\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <CustomImageInput\n label={false}\n labelText=\"\"\n editMode\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '200px' }}\n addTo=\"\"\n isRequired={false}\n />\n </Stack>\n <TextInput fullWidth multiline label=\"Short Description\" source=\"description\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Website\" source=\"website\" validate={validateWebsite} />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <TextInput fullWidth label=\"Address\" source=\"physicalAddress.line1\" />\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n />\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={validateWebsiteStrict}\n />\n <LinkedInRegistrationInput formData={formData} source=\"registrationNumbers\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <AuthorityRegistrationNumbersInput orientation=\"vertical\" isRequired={false} />\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[sxStyles.button, sxStyles.cancelButton]}\n onClick={onCancel}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n styles={sxStyles.button}\n title=\"Next\"\n endIcon={<KeyboardArrowRightIcon />}\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateInvitationForOrganization.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n};\n\nexport default CreateInvitationForOrganization;\n\nconst sxStyles = {\n section: {\n display: 'block',\n pt: 1,\n pb: '12px',\n fontWeight: 500,\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n cancelButton: { marginRight: '20px' },\n fullWidth: { width: '100%' },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Stack, Tooltip, Typography, Button, Grid } from '@mui/material';\nimport {\n AutocompleteInput,\n Form,\n maxLength,\n required,\n TextInput,\n FormDataConsumer,\n} from 'react-admin';\nimport { useCallback } from 'react';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport { FOOTER_HEIGHT } from '../../theme/theme.js';\nimport {\n validateEmail,\n validateName,\n validateWebsite,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SUPPORT_EMAIL_HINT,\n TECHNICAL_EMAIL_HINT,\n WEBSITE_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext.js';\n\nconst CreateOrganization = ({\n children,\n title,\n subTitle,\n buttonTitle,\n onSubmit,\n defaultValues,\n countryCodes,\n isLoading,\n hasOrganisations,\n userData,\n}) => {\n const { logout } = useAuth();\n const navigate = useNavigate();\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box sx={sxStyles.root}>\n <Stack sx={sxStyles.content}>\n <Typography variant=\"h1\" mb={2}>\n {title}\n </Typography>\n <Typography variant=\"pl\" mb={6.5} textAlign=\"center\">\n {subTitle}\n </Typography>\n <Form defaultValues={defaultValues} onSubmit={handleSubmit} noValidate mode=\"all\">\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <Grid container spacing={4} rowSpacing={1}>\n <Grid size={{ xs: 6 }}>\n <Stack container flex={1} flexDirection=\"column\">\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={validateName}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Website\"\n source=\"website\"\n validate={[required(), ...validateWebsiteStrict]}\n />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Address\"\n source=\"physicalAddress.line1\"\n validate={[required(), maxLength(1024)]}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n validate={required()}\n />\n </Grid>\n </Stack>\n </Grid>\n\n <Grid size={{ xs: 6 }} pb={1}>\n <CustomImageInput\n label={false}\n editMode={!defaultValues.logo}\n source=\"logo\"\n imgSrc={defaultValues?.logo}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={[...validateWebsite, required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <LinkedInRegistrationInput formData={{ ...formData, ...defaultValues }} />\n </Grid>\n\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <AuthorityRegistrationNumbersInput\n source=\"registrationNumbers\"\n orientation=\"horizontal\"\n />\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n multiline\n label=\"Short Description\"\n placeholder=\"Description (a boilerplate for other Network participants to read about the organization)\"\n source=\"description\"\n validate={required()}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Administrator’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.givenName : ''}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.familyName : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"adminTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n defaultValue={userData ? userData.email : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"signatoryEmail\"\n validate={[...validateEmail, required()]}\n />\n <Box mt={2}>\n <Tooltip title={SIGNATORY_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n </Grid>\n {children}\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"large\"\n sx={sxStyles.cancelButton}\n onClick={() => (hasOrganisations ? navigate('/') : logout())}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n title={buttonTitle}\n isLoading={isLoading}\n styles={sxStyles.saveButton}\n enabled\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Stack>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateOrganization.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n children: PropTypes.node,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n hasOrganisations: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n userData: PropTypes.object,\n};\n\nexport default CreateOrganization;\n\nconst sxStyles = {\n root: {\n pt: 7.5,\n pl: 1,\n pb: `calc(35px + ${FOOTER_HEIGHT})`,\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center',\n },\n content: {\n maxWidth: 886,\n alignItems: 'center',\n },\n saveButton: {\n minWidth: 160,\n },\n cancelButton: {\n minWidth: 160,\n mr: 2,\n },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n fullWidth: {\n width: '100%',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useDataProvider, TextInput, regex, maxLength } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport { useRef, useState } from 'react';\nimport { Typography, Box } from '@mui/material';\nimport { secureUrlRegexp, ERRORS } from '../../utils/index.jsx';\n\nconst ValidateTextInput = ({ source, resource, ...props }) => {\n const { debounce: debounceTime = 250, ...rest } = props;\n const errorobj = { message: ' ' };\n const dataProvider = useDataProvider();\n const [isError, setIsError] = useState(false);\n\n const timeout = useRef(null);\n\n const validateSecureUrl = [\n regex(secureUrlRegexp, (res) => {\n setIsError(false);\n return res ? 'Secure webhook should be a HTTPS URL' : undefined;\n }),\n maxLength(1024),\n ];\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n setIsError(false);\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const { data } = await dataProvider.create(resource, { data: { secureWebhookUrl: value } });\n if (data && data.status === 400) {\n setIsError(true);\n resolve(errorobj);\n } else {\n resolve(undefined);\n setIsError(false);\n }\n }, debounceTime);\n });\n };\n\n const validate = [...validateSecureUrl, debouncedValidation];\n\n return (\n <Box sx={sx.constainer}>\n <TextInput source={source} validate={validate} {...rest} />\n {isError && (\n <Typography variant=\"caption\" component=\"div\" sx={sx.errorMessage}>\n {ERRORS.secureWebHook}\n </Typography>\n )}\n </Box>\n );\n};\n\nexport default ValidateTextInput;\n\nconst sx = {\n constainer: {\n width: '100%',\n position: 'relative',\n },\n errorMessage: {\n color: 'primary.main',\n mt: 0,\n mb: 0.5,\n ml: 1.5,\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nValidateTextInput.propTypes = {\n source: PropTypes.string,\n resource: PropTypes.string,\n errortext: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n validate: PropTypes.array,\n debounce: PropTypes.number,\n};\n"],"names":["styles","result","Button","AddIcon","AuthorityRegistrationNumbersInput","sxStyles","ERRORS"],"mappings":"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"}
1
+ {"version":3,"file":"ValidateTextInput.1Fv1GPyZ.js","sources":["../../src/components/organizations/OrganizationSubmitButton.jsx","../../src/utils/hooks/useDebounceValue.js","../../src/components/organizations/AutoCompleteOrganizationName.jsx","../../src/components/organizations/CreateInvitationForOrganization.jsx","../../src/components/organizations/CreateOrganization.jsx","../../src/components/organizations/ValidateTextInput.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from 'react-admin';\nimport { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport Loading from '../Loading.jsx';\n\nconst OrganizationSubmitButton = ({ title, isLoading, endIcon, styles, handleState, enabled }) => {\n const form = useFormContext();\n\n useEffect(() => {\n if (handleState) {\n handleState(form.formState.isValid);\n }\n }, [form.formState.isValid, handleState]);\n\n return (\n <Button\n disabled={!form.formState.isValid && !enabled}\n variant=\"outlined\"\n color=\"primary\"\n type=\"submit\"\n size=\"large\"\n label={isLoading ? '' : title}\n endIcon={endIcon}\n sx={styles}\n >\n {isLoading && <Loading color=\"error\" sx={{ pl: '10px' }} size={26} />}\n </Button>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nOrganizationSubmitButton.propTypes = {\n title: PropTypes.string.isRequired,\n isLoading: PropTypes.bool,\n endIcon: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n styles: PropTypes.object,\n handleState: PropTypes.func,\n enabled: PropTypes.bool,\n};\n\nexport default OrganizationSubmitButton;\n","import { useEffect, useState } from 'react';\n\nconst useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { useCallback, useState, useEffect } from 'react';\nimport { Box, Autocomplete, Typography, useTheme, TextField, Button } from '@mui/material';\nimport { useDataProvider } from 'react-admin';\nimport { useFormContext } from 'react-hook-form';\n// eslint-disable-next-line import/extensions\nimport parse from 'autosuggest-highlight/parse/index.js';\n// eslint-disable-next-line import/extensions\nimport match from 'autosuggest-highlight/match/index.js';\nimport { Add as AddIcon } from '@mui/icons-material';\nimport PropTypes from 'prop-types';\nimport { dataResources } from '@/utils/remoteDataProvider.js';\nimport useDebounce from '@/utils/hooks/useDebounceValue.js';\n\nconst DID_START = 'did:';\nconst ERRORS = {\n DID_NOT_FOUND: 'DID not found',\n REQUIRED: 'Required',\n};\n\nconst AutoCompleteOrganizationName = ({ defaultValue }) => {\n const form = useFormContext();\n const [value, setValue] = useState(defaultValue);\n const [text, setText] = useState(defaultValue?.name || '');\n const [options, setOptions] = useState([]);\n const [isOpen, setIsOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const dataProvider = useDataProvider();\n const debouncedText = useDebounce(text, 500);\n const theme = useTheme();\n const [stopSearch, setStopSearch] = useState(false);\n\n form.register('org.name', { required: true });\n\n useEffect(() => {\n form.setValue('org', value, { shouldValidate: true });\n }, [form, value]);\n\n useEffect(() => {\n const searchProfiles = async () => {\n if (stopSearch) {\n return;\n }\n\n setLoading(true);\n try {\n if (debouncedText.includes(DID_START)) {\n const result = await dataProvider.getOne(dataResources.VERIFIED_PROFILE, {\n id: debouncedText,\n });\n setError('');\n setText(result.data.credentialSubject.name);\n setValue(result.data.credentialSubject);\n setIsOpen(false);\n return;\n }\n\n if (!debouncedText) {\n setOptions([]);\n\n return;\n }\n\n const result = await dataProvider.getList(dataResources.SEARCH_PROFILES, {\n search: debouncedText,\n });\n\n setOptions(result.data.slice(0, 5));\n } catch {\n setOptions([]);\n\n if (debouncedText.includes(DID_START)) {\n setError(ERRORS.DID_NOT_FOUND);\n }\n } finally {\n setLoading(false);\n }\n };\n\n if (debouncedText) {\n searchProfiles();\n }\n }, [dataProvider, debouncedText, stopSearch]);\n\n useEffect(() => {\n if (!isOpen) {\n setOptions([]);\n }\n }, [isOpen]);\n\n const handleChangeText = useCallback((event) => {\n setText(event?.target?.value);\n setValue({ name: event?.target?.value });\n }, []);\n\n const handleBlur = useCallback(() => {\n if (!text) {\n setValue(null);\n setError(ERRORS.REQUIRED);\n }\n\n if (text && !options.length) {\n setValue({ name: text });\n }\n }, [options, text]);\n\n const handleFocus = useCallback(() => {\n setError('');\n }, []);\n\n const handleStopSearch = useCallback(() => {\n setStopSearch(true);\n setOptions([]);\n\n setTimeout(() => {\n setStopSearch(false);\n }, 10000);\n }, []);\n\n return (\n <Box marginBottom={5}>\n <Autocomplete\n fullWidth\n options={text?.length && !loading ? options : []}\n inputValue={text || ''}\n open={isOpen}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n onInputChange={handleChangeText}\n getOptionLabel={(params) => params?.name?.toString()}\n getOptionKey={(params) => params.id}\n loading={loading}\n freeSolo\n disableClearable\n blurOnSelect\n value={value}\n filterOptions={(x) => x}\n onChange={(_event, newValue) => {\n if (typeof newValue === 'string') {\n setText(text);\n setValue({ name: text });\n setOptions([]);\n\n return;\n }\n\n setValue(newValue);\n setText(newValue.name);\n }}\n renderOption={(props, option, { inputValue }) => {\n const matches = match(option.name, inputValue, { insideWords: true });\n const parts = parse(option.name, matches);\n // eslint-disable-next-line react/prop-types\n const isLastItem = props['data-option-index'] === options.length - 1;\n\n return (\n <>\n <li {...props} style={isLastItem ? styles.lastItem : styles.item}>\n <div>\n <div>\n {parts.map((part, index) => (\n <Typography\n /* eslint-disable-next-line react/no-array-index-key */\n key={index}\n style={{ fontWeight: part.highlight ? 700 : 400 }}\n variant=\"pl\"\n >\n {part.text}\n </Typography>\n ))}\n </div>\n <Typography variant=\"ps\" color={theme.palette.secondary.light}>\n {option.id}\n </Typography>\n </div>\n </li>\n\n {isLastItem ? (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n onClick={handleStopSearch}\n sx={styles.inviteButton}\n >\n <AddIcon sx={styles.plus} />\n Invite New Organization\n </Button>\n ) : null}\n </>\n );\n }}\n renderInput={(params) => (\n <Box style={styles.inputBox}>\n <TextField\n label=\"Legal Name\"\n {...params}\n value={params.inputProps.value.name}\n onBlur={handleBlur}\n onFocus={handleFocus}\n error={error}\n />\n {value?.id ? (\n <Typography\n style={styles.did}\n variant=\"ps\"\n color={theme.palette.secondary.light}\n sx={styles.inviteButton}\n >\n {value.id}\n </Typography>\n ) : null}\n </Box>\n )}\n />\n {error ? (\n <Typography variant=\"ps\" color={theme.palette.error.light}>\n {error}\n </Typography>\n ) : null}\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nAutoCompleteOrganizationName.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n defaultValue: PropTypes.object,\n};\n\nconst styles = {\n inputBox: { position: 'relative' },\n item: {\n padding: '8px 12px',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: '#D1D4D8',\n },\n lastItem: {\n padding: '8px 12px',\n },\n did: {\n position: 'absolute',\n left: '0px',\n bottom: '-12px',\n },\n inviteButton: {\n color: (theme) => theme.customColors.grey2,\n marginBottom: '16px',\n marginLeft: '12px',\n marginTop: '16px',\n fontSize: '12px',\n },\n plus: {\n width: '16px',\n height: '16px',\n marginRight: '6px',\n },\n};\n\nexport default AutoCompleteOrganizationName;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Button, Stack, Tooltip, Typography } from '@mui/material';\nimport { AutocompleteInput, Form, TextInput, FormDataConsumer, useDataProvider } from 'react-admin';\nimport { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { WEBSITE_HINT, SUPPORT_EMAIL_HINT, TECHNICAL_EMAIL_HINT } from '../../utils/index.jsx';\nimport {\n validateEmail,\n validateWebsite,\n validateName,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { dataResources } from '../../utils/remoteDataProvider.js';\n\nconst CreateInvitationForOrganization = ({ onSubmit, countryCodes, onCancel, defaultValues }) => {\n const dataProvider = useDataProvider();\n\n const timeout = useRef(null);\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const inputNormalized = value.replace(/\\s\\s+/g, ' ').trim().toLowerCase();\n const { data: searchedProfiles } = await dataProvider.getList(\n dataResources.SEARCH_PROFILES,\n {\n search: inputNormalized,\n },\n );\n if (searchedProfiles?.some((org) => org.name.toLowerCase() === inputNormalized)) {\n resolve({ message: 'Organization already exists' });\n } else {\n resolve(undefined);\n }\n }, 500);\n });\n };\n\n const orgNamevalidation = [...validateName, debouncedValidation];\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box>\n <Typography variant=\"h1\" mb={2}>\n Invite Organization\n </Typography>\n <Typography mb={3}>\n To invite an organization to join Velocity Network™, fill in that organization&apos;s\n information below.\n </Typography>\n\n <Form onSubmit={handleSubmit} noValidate mode=\"onChange\" defaultValues={defaultValues}>\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={orgNamevalidation}\n pb={1}\n />\n {/* Uncomment when the flow is ready */}\n {/* <AutoCompleteOrganizationName defaultValue={defaultValues?.org} /> */}\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <CustomImageInput\n label={false}\n labelText=\"\"\n editMode\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '200px' }}\n addTo=\"\"\n isRequired={false}\n />\n </Stack>\n <TextInput fullWidth multiline label=\"Short Description\" source=\"description\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Website\" source=\"website\" validate={validateWebsite} />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <TextInput fullWidth label=\"Address\" source=\"physicalAddress.line1\" />\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n />\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={validateWebsiteStrict}\n />\n <LinkedInRegistrationInput formData={formData} source=\"registrationNumbers\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <AuthorityRegistrationNumbersInput orientation=\"vertical\" isRequired={false} />\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[sxStyles.button, sxStyles.cancelButton]}\n onClick={onCancel}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n styles={sxStyles.button}\n title=\"Next\"\n endIcon={<KeyboardArrowRightIcon />}\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateInvitationForOrganization.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n};\n\nexport default CreateInvitationForOrganization;\n\nconst sxStyles = {\n section: {\n display: 'block',\n pt: 1,\n pb: '12px',\n fontWeight: 500,\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n cancelButton: { marginRight: '20px' },\n fullWidth: { width: '100%' },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Stack, Tooltip, Typography, Button, Grid } from '@mui/material';\nimport {\n AutocompleteInput,\n Form,\n maxLength,\n required,\n TextInput,\n FormDataConsumer,\n} from 'react-admin';\nimport { useCallback } from 'react';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport { FOOTER_HEIGHT } from '../../theme/theme.js';\nimport {\n validateEmail,\n validateName,\n validateWebsite,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SUPPORT_EMAIL_HINT,\n TECHNICAL_EMAIL_HINT,\n WEBSITE_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext.js';\n\nconst CreateOrganization = ({\n children,\n title,\n subTitle,\n buttonTitle,\n onSubmit,\n defaultValues,\n countryCodes,\n isLoading,\n hasOrganisations,\n userData,\n}) => {\n const { logout } = useAuth();\n const navigate = useNavigate();\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box sx={sxStyles.root}>\n <Stack sx={sxStyles.content}>\n <Typography variant=\"h1\" mb={2}>\n {title}\n </Typography>\n <Typography variant=\"pl\" mb={6.5} textAlign=\"center\">\n {subTitle}\n </Typography>\n <Form defaultValues={defaultValues} onSubmit={handleSubmit} noValidate mode=\"all\">\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <Grid container spacing={4} rowSpacing={1}>\n <Grid size={{ xs: 6 }}>\n <Stack container flex={1} flexDirection=\"column\">\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={validateName}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Website\"\n source=\"website\"\n validate={[required(), ...validateWebsiteStrict]}\n />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Address\"\n source=\"physicalAddress.line1\"\n validate={[required(), maxLength(1024)]}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n validate={required()}\n />\n </Grid>\n </Stack>\n </Grid>\n\n <Grid size={{ xs: 6 }} pb={1}>\n <CustomImageInput\n label={false}\n editMode={!defaultValues.logo}\n source=\"logo\"\n imgSrc={defaultValues?.logo}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={[...validateWebsite, required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <LinkedInRegistrationInput formData={{ ...formData, ...defaultValues }} />\n </Grid>\n\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <AuthorityRegistrationNumbersInput\n source=\"registrationNumbers\"\n orientation=\"horizontal\"\n />\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n multiline\n label=\"Short Description\"\n placeholder=\"Description (a boilerplate for other Network participants to read about the organization)\"\n source=\"description\"\n validate={required()}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Administrator’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.givenName : ''}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.familyName : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"adminTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n defaultValue={userData ? userData.email : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"signatoryEmail\"\n validate={[...validateEmail, required()]}\n />\n <Box mt={2}>\n <Tooltip title={SIGNATORY_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n </Grid>\n {children}\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"large\"\n sx={sxStyles.cancelButton}\n onClick={() => (hasOrganisations ? navigate('/') : logout())}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n title={buttonTitle}\n isLoading={isLoading}\n styles={sxStyles.saveButton}\n enabled\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Stack>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateOrganization.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n children: PropTypes.node,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n hasOrganisations: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n userData: PropTypes.object,\n};\n\nexport default CreateOrganization;\n\nconst sxStyles = {\n root: {\n pt: 7.5,\n pl: 1,\n pb: `calc(35px + ${FOOTER_HEIGHT})`,\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center',\n },\n content: {\n maxWidth: 886,\n alignItems: 'center',\n },\n saveButton: {\n minWidth: 160,\n },\n cancelButton: {\n minWidth: 160,\n mr: 2,\n },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n fullWidth: {\n width: '100%',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useDataProvider, TextInput, regex, maxLength } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport { useRef, useState } from 'react';\nimport { Typography, Box } from '@mui/material';\nimport { secureUrlRegexp, ERRORS } from '../../utils/index.jsx';\n\nconst ValidateTextInput = ({ source, resource, ...props }) => {\n const { debounce: debounceTime = 250, ...rest } = props;\n const errorobj = { message: ' ' };\n const dataProvider = useDataProvider();\n const [isError, setIsError] = useState(false);\n\n const timeout = useRef(null);\n\n const validateSecureUrl = [\n regex(secureUrlRegexp, (res) => {\n setIsError(false);\n return res ? 'Secure webhook should be a HTTPS URL' : undefined;\n }),\n maxLength(1024),\n ];\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n setIsError(false);\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const { data } = await dataProvider.create(resource, { data: { secureWebhookUrl: value } });\n if (data && data.status === 400) {\n setIsError(true);\n resolve(errorobj);\n } else {\n resolve(undefined);\n setIsError(false);\n }\n }, debounceTime);\n });\n };\n\n const validate = [...validateSecureUrl, debouncedValidation];\n\n return (\n <Box sx={sx.constainer}>\n <TextInput source={source} validate={validate} {...rest} />\n {isError && (\n <Typography variant=\"caption\" component=\"div\" sx={sx.errorMessage}>\n {ERRORS.secureWebHook}\n </Typography>\n )}\n </Box>\n );\n};\n\nexport default ValidateTextInput;\n\nconst sx = {\n constainer: {\n width: '100%',\n position: 'relative',\n },\n errorMessage: {\n color: 'primary.main',\n mt: 0,\n mb: 0.5,\n ml: 1.5,\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nValidateTextInput.propTypes = {\n source: PropTypes.string,\n resource: PropTypes.string,\n errortext: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n validate: PropTypes.array,\n debounce: PropTypes.number,\n};\n"],"names":["styles","result","Button","AddIcon","AuthorityRegistrationNumbersInput","sxStyles","ERRORS"],"mappings":"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"}
@@ -13,7 +13,7 @@ const KeyboardArrowRightIcon = require("@mui/icons-material/KeyboardArrowRight")
13
13
  const InfoIcon = require("@mui/icons-material/Info");
14
14
  const index$1 = require("./index.iexmV4Mr.js");
15
15
  const CreateOrganizationUtils = require("./CreateOrganizationUtils.C5C_r3Zp.js");
16
- const index = require("./index.DIizFYFZ.js");
16
+ const index = require("./index.Cjk52g3G.js");
17
17
  const LinkedInRegistrationInput = require("./LinkedInRegistrationInput.gnYgP1Hf.js");
18
18
  const reactRouter = require("react-router");
19
19
  const theme = require("./theme.CDQ6GHCD.js");
@@ -754,4 +754,4 @@ exports.CreateInvitationForOrganization = CreateInvitationForOrganization;
754
754
  exports.CreateOrganization = CreateOrganization;
755
755
  exports.OrganizationSubmitButton = OrganizationSubmitButton;
756
756
  exports.ValidateTextInput = ValidateTextInput;
757
- //# sourceMappingURL=ValidateTextInput.DEBaVB1L.js.map
757
+ //# sourceMappingURL=ValidateTextInput.DPruGgff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateTextInput.DEBaVB1L.js","sources":["../../src/components/organizations/OrganizationSubmitButton.jsx","../../src/utils/hooks/useDebounceValue.js","../../src/components/organizations/AutoCompleteOrganizationName.jsx","../../src/components/organizations/CreateInvitationForOrganization.jsx","../../src/components/organizations/CreateOrganization.jsx","../../src/components/organizations/ValidateTextInput.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from 'react-admin';\nimport { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport Loading from '../Loading.jsx';\n\nconst OrganizationSubmitButton = ({ title, isLoading, endIcon, styles, handleState, enabled }) => {\n const form = useFormContext();\n\n useEffect(() => {\n if (handleState) {\n handleState(form.formState.isValid);\n }\n }, [form.formState.isValid, handleState]);\n\n return (\n <Button\n disabled={!form.formState.isValid && !enabled}\n variant=\"outlined\"\n color=\"primary\"\n type=\"submit\"\n size=\"large\"\n label={isLoading ? '' : title}\n endIcon={endIcon}\n sx={styles}\n >\n {isLoading && <Loading color=\"error\" sx={{ pl: '10px' }} size={26} />}\n </Button>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nOrganizationSubmitButton.propTypes = {\n title: PropTypes.string.isRequired,\n isLoading: PropTypes.bool,\n endIcon: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n styles: PropTypes.object,\n handleState: PropTypes.func,\n enabled: PropTypes.bool,\n};\n\nexport default OrganizationSubmitButton;\n","import { useEffect, useState } from 'react';\n\nconst useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { useCallback, useState, useEffect } from 'react';\nimport { Box, Autocomplete, Typography, useTheme, TextField, Button } from '@mui/material';\nimport { useDataProvider } from 'react-admin';\nimport { useFormContext } from 'react-hook-form';\n// eslint-disable-next-line import/extensions\nimport parse from 'autosuggest-highlight/parse/index.js';\n// eslint-disable-next-line import/extensions\nimport match from 'autosuggest-highlight/match/index.js';\nimport { Add as AddIcon } from '@mui/icons-material';\nimport PropTypes from 'prop-types';\nimport { dataResources } from '@/utils/remoteDataProvider.js';\nimport useDebounce from '@/utils/hooks/useDebounceValue.js';\n\nconst DID_START = 'did:';\nconst ERRORS = {\n DID_NOT_FOUND: 'DID not found',\n REQUIRED: 'Required',\n};\n\nconst AutoCompleteOrganizationName = ({ defaultValue }) => {\n const form = useFormContext();\n const [value, setValue] = useState(defaultValue);\n const [text, setText] = useState(defaultValue?.name || '');\n const [options, setOptions] = useState([]);\n const [isOpen, setIsOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const dataProvider = useDataProvider();\n const debouncedText = useDebounce(text, 500);\n const theme = useTheme();\n const [stopSearch, setStopSearch] = useState(false);\n\n form.register('org.name', { required: true });\n\n useEffect(() => {\n form.setValue('org', value, { shouldValidate: true });\n }, [form, value]);\n\n useEffect(() => {\n const searchProfiles = async () => {\n if (stopSearch) {\n return;\n }\n\n setLoading(true);\n try {\n if (debouncedText.includes(DID_START)) {\n const result = await dataProvider.getOne(dataResources.VERIFIED_PROFILE, {\n id: debouncedText,\n });\n setError('');\n setText(result.data.credentialSubject.name);\n setValue(result.data.credentialSubject);\n setIsOpen(false);\n return;\n }\n\n if (!debouncedText) {\n setOptions([]);\n\n return;\n }\n\n const result = await dataProvider.getList(dataResources.SEARCH_PROFILES, {\n search: debouncedText,\n });\n\n setOptions(result.data.slice(0, 5));\n } catch {\n setOptions([]);\n\n if (debouncedText.includes(DID_START)) {\n setError(ERRORS.DID_NOT_FOUND);\n }\n } finally {\n setLoading(false);\n }\n };\n\n if (debouncedText) {\n searchProfiles();\n }\n }, [dataProvider, debouncedText, stopSearch]);\n\n useEffect(() => {\n if (!isOpen) {\n setOptions([]);\n }\n }, [isOpen]);\n\n const handleChangeText = useCallback((event) => {\n setText(event?.target?.value);\n setValue({ name: event?.target?.value });\n }, []);\n\n const handleBlur = useCallback(() => {\n if (!text) {\n setValue(null);\n setError(ERRORS.REQUIRED);\n }\n\n if (text && !options.length) {\n setValue({ name: text });\n }\n }, [options, text]);\n\n const handleFocus = useCallback(() => {\n setError('');\n }, []);\n\n const handleStopSearch = useCallback(() => {\n setStopSearch(true);\n setOptions([]);\n\n setTimeout(() => {\n setStopSearch(false);\n }, 10000);\n }, []);\n\n return (\n <Box marginBottom={5}>\n <Autocomplete\n fullWidth\n options={text?.length && !loading ? options : []}\n inputValue={text || ''}\n open={isOpen}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n onInputChange={handleChangeText}\n getOptionLabel={(params) => params?.name?.toString()}\n getOptionKey={(params) => params.id}\n loading={loading}\n freeSolo\n disableClearable\n blurOnSelect\n value={value}\n filterOptions={(x) => x}\n onChange={(_event, newValue) => {\n if (typeof newValue === 'string') {\n setText(text);\n setValue({ name: text });\n setOptions([]);\n\n return;\n }\n\n setValue(newValue);\n setText(newValue.name);\n }}\n renderOption={(props, option, { inputValue }) => {\n const matches = match(option.name, inputValue, { insideWords: true });\n const parts = parse(option.name, matches);\n // eslint-disable-next-line react/prop-types\n const isLastItem = props['data-option-index'] === options.length - 1;\n\n return (\n <>\n <li {...props} style={isLastItem ? styles.lastItem : styles.item}>\n <div>\n <div>\n {parts.map((part, index) => (\n <Typography\n /* eslint-disable-next-line react/no-array-index-key */\n key={index}\n style={{ fontWeight: part.highlight ? 700 : 400 }}\n variant=\"pl\"\n >\n {part.text}\n </Typography>\n ))}\n </div>\n <Typography variant=\"ps\" color={theme.palette.secondary.light}>\n {option.id}\n </Typography>\n </div>\n </li>\n\n {isLastItem ? (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n onClick={handleStopSearch}\n sx={styles.inviteButton}\n >\n <AddIcon sx={styles.plus} />\n Invite New Organization\n </Button>\n ) : null}\n </>\n );\n }}\n renderInput={(params) => (\n <Box style={styles.inputBox}>\n <TextField\n label=\"Legal Name\"\n {...params}\n value={params.inputProps.value.name}\n onBlur={handleBlur}\n onFocus={handleFocus}\n error={error}\n />\n {value?.id ? (\n <Typography\n style={styles.did}\n variant=\"ps\"\n color={theme.palette.secondary.light}\n sx={styles.inviteButton}\n >\n {value.id}\n </Typography>\n ) : null}\n </Box>\n )}\n />\n {error ? (\n <Typography variant=\"ps\" color={theme.palette.error.light}>\n {error}\n </Typography>\n ) : null}\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nAutoCompleteOrganizationName.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n defaultValue: PropTypes.object,\n};\n\nconst styles = {\n inputBox: { position: 'relative' },\n item: {\n padding: '8px 12px',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: '#D1D4D8',\n },\n lastItem: {\n padding: '8px 12px',\n },\n did: {\n position: 'absolute',\n left: '0px',\n bottom: '-12px',\n },\n inviteButton: {\n color: (theme) => theme.customColors.grey2,\n marginBottom: '16px',\n marginLeft: '12px',\n marginTop: '16px',\n fontSize: '12px',\n },\n plus: {\n width: '16px',\n height: '16px',\n marginRight: '6px',\n },\n};\n\nexport default AutoCompleteOrganizationName;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Button, Stack, Tooltip, Typography } from '@mui/material';\nimport { AutocompleteInput, Form, TextInput, FormDataConsumer, useDataProvider } from 'react-admin';\nimport { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { WEBSITE_HINT, SUPPORT_EMAIL_HINT, TECHNICAL_EMAIL_HINT } from '../../utils/index.jsx';\nimport {\n validateEmail,\n validateWebsite,\n validateName,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { dataResources } from '../../utils/remoteDataProvider.js';\n\nconst CreateInvitationForOrganization = ({ onSubmit, countryCodes, onCancel, defaultValues }) => {\n const dataProvider = useDataProvider();\n\n const timeout = useRef(null);\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const inputNormalized = value.replace(/\\s\\s+/g, ' ').trim().toLowerCase();\n const { data: searchedProfiles } = await dataProvider.getList(\n dataResources.SEARCH_PROFILES,\n {\n search: inputNormalized,\n },\n );\n if (searchedProfiles?.some((org) => org.name.toLowerCase() === inputNormalized)) {\n resolve({ message: 'Organization already exists' });\n } else {\n resolve(undefined);\n }\n }, 500);\n });\n };\n\n const orgNamevalidation = [...validateName, debouncedValidation];\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box>\n <Typography variant=\"h1\" mb={2}>\n Invite Organization\n </Typography>\n <Typography mb={3}>\n To invite an organization to join Velocity Network™, fill in that organization&apos;s\n information below.\n </Typography>\n\n <Form onSubmit={handleSubmit} noValidate mode=\"onChange\" defaultValues={defaultValues}>\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={orgNamevalidation}\n pb={1}\n />\n {/* Uncomment when the flow is ready */}\n {/* <AutoCompleteOrganizationName defaultValue={defaultValues?.org} /> */}\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <CustomImageInput\n label={false}\n labelText=\"\"\n editMode\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '200px' }}\n addTo=\"\"\n isRequired={false}\n />\n </Stack>\n <TextInput fullWidth multiline label=\"Short Description\" source=\"description\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Website\" source=\"website\" validate={validateWebsite} />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <TextInput fullWidth label=\"Address\" source=\"physicalAddress.line1\" />\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n />\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={validateWebsiteStrict}\n />\n <LinkedInRegistrationInput formData={formData} source=\"registrationNumbers\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <AuthorityRegistrationNumbersInput orientation=\"vertical\" isRequired={false} />\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[sxStyles.button, sxStyles.cancelButton]}\n onClick={onCancel}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n styles={sxStyles.button}\n title=\"Next\"\n endIcon={<KeyboardArrowRightIcon />}\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateInvitationForOrganization.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n};\n\nexport default CreateInvitationForOrganization;\n\nconst sxStyles = {\n section: {\n display: 'block',\n pt: 1,\n pb: '12px',\n fontWeight: 500,\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n cancelButton: { marginRight: '20px' },\n fullWidth: { width: '100%' },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Stack, Tooltip, Typography, Button, Grid } from '@mui/material';\nimport {\n AutocompleteInput,\n Form,\n maxLength,\n required,\n TextInput,\n FormDataConsumer,\n} from 'react-admin';\nimport { useCallback } from 'react';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport { FOOTER_HEIGHT } from '../../theme/theme.js';\nimport {\n validateEmail,\n validateName,\n validateWebsite,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SUPPORT_EMAIL_HINT,\n TECHNICAL_EMAIL_HINT,\n WEBSITE_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext.js';\n\nconst CreateOrganization = ({\n children,\n title,\n subTitle,\n buttonTitle,\n onSubmit,\n defaultValues,\n countryCodes,\n isLoading,\n hasOrganisations,\n userData,\n}) => {\n const { logout } = useAuth();\n const navigate = useNavigate();\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box sx={sxStyles.root}>\n <Stack sx={sxStyles.content}>\n <Typography variant=\"h1\" mb={2}>\n {title}\n </Typography>\n <Typography variant=\"pl\" mb={6.5} textAlign=\"center\">\n {subTitle}\n </Typography>\n <Form defaultValues={defaultValues} onSubmit={handleSubmit} noValidate mode=\"all\">\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <Grid container spacing={4} rowSpacing={1}>\n <Grid size={{ xs: 6 }}>\n <Stack container flex={1} flexDirection=\"column\">\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={validateName}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Website\"\n source=\"website\"\n validate={[required(), ...validateWebsiteStrict]}\n />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Address\"\n source=\"physicalAddress.line1\"\n validate={[required(), maxLength(1024)]}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n validate={required()}\n />\n </Grid>\n </Stack>\n </Grid>\n\n <Grid size={{ xs: 6 }} pb={1}>\n <CustomImageInput\n label={false}\n editMode={!defaultValues.logo}\n source=\"logo\"\n imgSrc={defaultValues?.logo}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={[...validateWebsite, required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <LinkedInRegistrationInput formData={{ ...formData, ...defaultValues }} />\n </Grid>\n\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <AuthorityRegistrationNumbersInput\n source=\"registrationNumbers\"\n orientation=\"horizontal\"\n />\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n multiline\n label=\"Short Description\"\n placeholder=\"Description (a boilerplate for other Network participants to read about the organization)\"\n source=\"description\"\n validate={required()}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Administrator’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.givenName : ''}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.familyName : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"adminTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n defaultValue={userData ? userData.email : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"signatoryEmail\"\n validate={[...validateEmail, required()]}\n />\n <Box mt={2}>\n <Tooltip title={SIGNATORY_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n </Grid>\n {children}\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"large\"\n sx={sxStyles.cancelButton}\n onClick={() => (hasOrganisations ? navigate('/') : logout())}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n title={buttonTitle}\n isLoading={isLoading}\n styles={sxStyles.saveButton}\n enabled\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Stack>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateOrganization.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n children: PropTypes.node,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n hasOrganisations: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n userData: PropTypes.object,\n};\n\nexport default CreateOrganization;\n\nconst sxStyles = {\n root: {\n pt: 7.5,\n pl: 1,\n pb: `calc(35px + ${FOOTER_HEIGHT})`,\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center',\n },\n content: {\n maxWidth: 886,\n alignItems: 'center',\n },\n saveButton: {\n minWidth: 160,\n },\n cancelButton: {\n minWidth: 160,\n mr: 2,\n },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n fullWidth: {\n width: '100%',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useDataProvider, TextInput, regex, maxLength } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport { useRef, useState } from 'react';\nimport { Typography, Box } from '@mui/material';\nimport { secureUrlRegexp, ERRORS } from '../../utils/index.jsx';\n\nconst ValidateTextInput = ({ source, resource, ...props }) => {\n const { debounce: debounceTime = 250, ...rest } = props;\n const errorobj = { message: ' ' };\n const dataProvider = useDataProvider();\n const [isError, setIsError] = useState(false);\n\n const timeout = useRef(null);\n\n const validateSecureUrl = [\n regex(secureUrlRegexp, (res) => {\n setIsError(false);\n return res ? 'Secure webhook should be a HTTPS URL' : undefined;\n }),\n maxLength(1024),\n ];\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n setIsError(false);\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const { data } = await dataProvider.create(resource, { data: { secureWebhookUrl: value } });\n if (data && data.status === 400) {\n setIsError(true);\n resolve(errorobj);\n } else {\n resolve(undefined);\n setIsError(false);\n }\n }, debounceTime);\n });\n };\n\n const validate = [...validateSecureUrl, debouncedValidation];\n\n return (\n <Box sx={sx.constainer}>\n <TextInput source={source} validate={validate} {...rest} />\n {isError && (\n <Typography variant=\"caption\" component=\"div\" sx={sx.errorMessage}>\n {ERRORS.secureWebHook}\n </Typography>\n )}\n </Box>\n );\n};\n\nexport default ValidateTextInput;\n\nconst sx = {\n constainer: {\n width: '100%',\n position: 'relative',\n },\n errorMessage: {\n color: 'primary.main',\n mt: 0,\n mb: 0.5,\n ml: 1.5,\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nValidateTextInput.propTypes = {\n source: PropTypes.string,\n resource: PropTypes.string,\n errortext: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n validate: PropTypes.array,\n debounce: PropTypes.number,\n};\n"],"names":["styles","useFormContext","useEffect","jsx","Button","Loading","useState","useDataProvider","theme","useTheme","result","dataResources","useCallback","jsxs","Box","Autocomplete","Fragment","index","Typography","AddIcon","TextField","useRef","validateName","Form","FormDataConsumer","TextInput","Stack","CustomImageInput","validateWebsite","Tooltip","WEBSITE_HINT","AutocompleteInput","validateWebsiteStrict","LinkedInRegistrationInput","validateEmail","SUPPORT_EMAIL_HINT","TECHNICAL_EMAIL_HINT","AuthorityRegistrationNumbersInput","sxStyles","useAuth","useNavigate","Grid","required","maxLength","ADMINISTRATOR_DETAILS_HINT","SIGNATORY_DETAILS_HINT","SIGNATORY_EMAIL_HINT","FOOTER_HEIGHT","regex","secureUrlRegexp","ERRORS"],"mappings":"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"}
1
+ {"version":3,"file":"ValidateTextInput.DPruGgff.js","sources":["../../src/components/organizations/OrganizationSubmitButton.jsx","../../src/utils/hooks/useDebounceValue.js","../../src/components/organizations/AutoCompleteOrganizationName.jsx","../../src/components/organizations/CreateInvitationForOrganization.jsx","../../src/components/organizations/CreateOrganization.jsx","../../src/components/organizations/ValidateTextInput.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from 'react-admin';\nimport { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport Loading from '../Loading.jsx';\n\nconst OrganizationSubmitButton = ({ title, isLoading, endIcon, styles, handleState, enabled }) => {\n const form = useFormContext();\n\n useEffect(() => {\n if (handleState) {\n handleState(form.formState.isValid);\n }\n }, [form.formState.isValid, handleState]);\n\n return (\n <Button\n disabled={!form.formState.isValid && !enabled}\n variant=\"outlined\"\n color=\"primary\"\n type=\"submit\"\n size=\"large\"\n label={isLoading ? '' : title}\n endIcon={endIcon}\n sx={styles}\n >\n {isLoading && <Loading color=\"error\" sx={{ pl: '10px' }} size={26} />}\n </Button>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nOrganizationSubmitButton.propTypes = {\n title: PropTypes.string.isRequired,\n isLoading: PropTypes.bool,\n endIcon: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n styles: PropTypes.object,\n handleState: PropTypes.func,\n enabled: PropTypes.bool,\n};\n\nexport default OrganizationSubmitButton;\n","import { useEffect, useState } from 'react';\n\nconst useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { useCallback, useState, useEffect } from 'react';\nimport { Box, Autocomplete, Typography, useTheme, TextField, Button } from '@mui/material';\nimport { useDataProvider } from 'react-admin';\nimport { useFormContext } from 'react-hook-form';\n// eslint-disable-next-line import/extensions\nimport parse from 'autosuggest-highlight/parse/index.js';\n// eslint-disable-next-line import/extensions\nimport match from 'autosuggest-highlight/match/index.js';\nimport { Add as AddIcon } from '@mui/icons-material';\nimport PropTypes from 'prop-types';\nimport { dataResources } from '@/utils/remoteDataProvider.js';\nimport useDebounce from '@/utils/hooks/useDebounceValue.js';\n\nconst DID_START = 'did:';\nconst ERRORS = {\n DID_NOT_FOUND: 'DID not found',\n REQUIRED: 'Required',\n};\n\nconst AutoCompleteOrganizationName = ({ defaultValue }) => {\n const form = useFormContext();\n const [value, setValue] = useState(defaultValue);\n const [text, setText] = useState(defaultValue?.name || '');\n const [options, setOptions] = useState([]);\n const [isOpen, setIsOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const dataProvider = useDataProvider();\n const debouncedText = useDebounce(text, 500);\n const theme = useTheme();\n const [stopSearch, setStopSearch] = useState(false);\n\n form.register('org.name', { required: true });\n\n useEffect(() => {\n form.setValue('org', value, { shouldValidate: true });\n }, [form, value]);\n\n useEffect(() => {\n const searchProfiles = async () => {\n if (stopSearch) {\n return;\n }\n\n setLoading(true);\n try {\n if (debouncedText.includes(DID_START)) {\n const result = await dataProvider.getOne(dataResources.VERIFIED_PROFILE, {\n id: debouncedText,\n });\n setError('');\n setText(result.data.credentialSubject.name);\n setValue(result.data.credentialSubject);\n setIsOpen(false);\n return;\n }\n\n if (!debouncedText) {\n setOptions([]);\n\n return;\n }\n\n const result = await dataProvider.getList(dataResources.SEARCH_PROFILES, {\n search: debouncedText,\n });\n\n setOptions(result.data.slice(0, 5));\n } catch {\n setOptions([]);\n\n if (debouncedText.includes(DID_START)) {\n setError(ERRORS.DID_NOT_FOUND);\n }\n } finally {\n setLoading(false);\n }\n };\n\n if (debouncedText) {\n searchProfiles();\n }\n }, [dataProvider, debouncedText, stopSearch]);\n\n useEffect(() => {\n if (!isOpen) {\n setOptions([]);\n }\n }, [isOpen]);\n\n const handleChangeText = useCallback((event) => {\n setText(event?.target?.value);\n setValue({ name: event?.target?.value });\n }, []);\n\n const handleBlur = useCallback(() => {\n if (!text) {\n setValue(null);\n setError(ERRORS.REQUIRED);\n }\n\n if (text && !options.length) {\n setValue({ name: text });\n }\n }, [options, text]);\n\n const handleFocus = useCallback(() => {\n setError('');\n }, []);\n\n const handleStopSearch = useCallback(() => {\n setStopSearch(true);\n setOptions([]);\n\n setTimeout(() => {\n setStopSearch(false);\n }, 10000);\n }, []);\n\n return (\n <Box marginBottom={5}>\n <Autocomplete\n fullWidth\n options={text?.length && !loading ? options : []}\n inputValue={text || ''}\n open={isOpen}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n onInputChange={handleChangeText}\n getOptionLabel={(params) => params?.name?.toString()}\n getOptionKey={(params) => params.id}\n loading={loading}\n freeSolo\n disableClearable\n blurOnSelect\n value={value}\n filterOptions={(x) => x}\n onChange={(_event, newValue) => {\n if (typeof newValue === 'string') {\n setText(text);\n setValue({ name: text });\n setOptions([]);\n\n return;\n }\n\n setValue(newValue);\n setText(newValue.name);\n }}\n renderOption={(props, option, { inputValue }) => {\n const matches = match(option.name, inputValue, { insideWords: true });\n const parts = parse(option.name, matches);\n // eslint-disable-next-line react/prop-types\n const isLastItem = props['data-option-index'] === options.length - 1;\n\n return (\n <>\n <li {...props} style={isLastItem ? styles.lastItem : styles.item}>\n <div>\n <div>\n {parts.map((part, index) => (\n <Typography\n /* eslint-disable-next-line react/no-array-index-key */\n key={index}\n style={{ fontWeight: part.highlight ? 700 : 400 }}\n variant=\"pl\"\n >\n {part.text}\n </Typography>\n ))}\n </div>\n <Typography variant=\"ps\" color={theme.palette.secondary.light}>\n {option.id}\n </Typography>\n </div>\n </li>\n\n {isLastItem ? (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n onClick={handleStopSearch}\n sx={styles.inviteButton}\n >\n <AddIcon sx={styles.plus} />\n Invite New Organization\n </Button>\n ) : null}\n </>\n );\n }}\n renderInput={(params) => (\n <Box style={styles.inputBox}>\n <TextField\n label=\"Legal Name\"\n {...params}\n value={params.inputProps.value.name}\n onBlur={handleBlur}\n onFocus={handleFocus}\n error={error}\n />\n {value?.id ? (\n <Typography\n style={styles.did}\n variant=\"ps\"\n color={theme.palette.secondary.light}\n sx={styles.inviteButton}\n >\n {value.id}\n </Typography>\n ) : null}\n </Box>\n )}\n />\n {error ? (\n <Typography variant=\"ps\" color={theme.palette.error.light}>\n {error}\n </Typography>\n ) : null}\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nAutoCompleteOrganizationName.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n defaultValue: PropTypes.object,\n};\n\nconst styles = {\n inputBox: { position: 'relative' },\n item: {\n padding: '8px 12px',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: '#D1D4D8',\n },\n lastItem: {\n padding: '8px 12px',\n },\n did: {\n position: 'absolute',\n left: '0px',\n bottom: '-12px',\n },\n inviteButton: {\n color: (theme) => theme.customColors.grey2,\n marginBottom: '16px',\n marginLeft: '12px',\n marginTop: '16px',\n fontSize: '12px',\n },\n plus: {\n width: '16px',\n height: '16px',\n marginRight: '6px',\n },\n};\n\nexport default AutoCompleteOrganizationName;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Button, Stack, Tooltip, Typography } from '@mui/material';\nimport { AutocompleteInput, Form, TextInput, FormDataConsumer, useDataProvider } from 'react-admin';\nimport { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { WEBSITE_HINT, SUPPORT_EMAIL_HINT, TECHNICAL_EMAIL_HINT } from '../../utils/index.jsx';\nimport {\n validateEmail,\n validateWebsite,\n validateName,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { dataResources } from '../../utils/remoteDataProvider.js';\n\nconst CreateInvitationForOrganization = ({ onSubmit, countryCodes, onCancel, defaultValues }) => {\n const dataProvider = useDataProvider();\n\n const timeout = useRef(null);\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const inputNormalized = value.replace(/\\s\\s+/g, ' ').trim().toLowerCase();\n const { data: searchedProfiles } = await dataProvider.getList(\n dataResources.SEARCH_PROFILES,\n {\n search: inputNormalized,\n },\n );\n if (searchedProfiles?.some((org) => org.name.toLowerCase() === inputNormalized)) {\n resolve({ message: 'Organization already exists' });\n } else {\n resolve(undefined);\n }\n }, 500);\n });\n };\n\n const orgNamevalidation = [...validateName, debouncedValidation];\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box>\n <Typography variant=\"h1\" mb={2}>\n Invite Organization\n </Typography>\n <Typography mb={3}>\n To invite an organization to join Velocity Network™, fill in that organization&apos;s\n information below.\n </Typography>\n\n <Form onSubmit={handleSubmit} noValidate mode=\"onChange\" defaultValues={defaultValues}>\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={orgNamevalidation}\n pb={1}\n />\n {/* Uncomment when the flow is ready */}\n {/* <AutoCompleteOrganizationName defaultValue={defaultValues?.org} /> */}\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <CustomImageInput\n label={false}\n labelText=\"\"\n editMode\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '200px' }}\n addTo=\"\"\n isRequired={false}\n />\n </Stack>\n <TextInput fullWidth multiline label=\"Short Description\" source=\"description\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Website\" source=\"website\" validate={validateWebsite} />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <TextInput fullWidth label=\"Address\" source=\"physicalAddress.line1\" />\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n />\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={validateWebsiteStrict}\n />\n <LinkedInRegistrationInput formData={formData} source=\"registrationNumbers\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <AuthorityRegistrationNumbersInput orientation=\"vertical\" isRequired={false} />\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[sxStyles.button, sxStyles.cancelButton]}\n onClick={onCancel}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n styles={sxStyles.button}\n title=\"Next\"\n endIcon={<KeyboardArrowRightIcon />}\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateInvitationForOrganization.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n};\n\nexport default CreateInvitationForOrganization;\n\nconst sxStyles = {\n section: {\n display: 'block',\n pt: 1,\n pb: '12px',\n fontWeight: 500,\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n cancelButton: { marginRight: '20px' },\n fullWidth: { width: '100%' },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Stack, Tooltip, Typography, Button, Grid } from '@mui/material';\nimport {\n AutocompleteInput,\n Form,\n maxLength,\n required,\n TextInput,\n FormDataConsumer,\n} from 'react-admin';\nimport { useCallback } from 'react';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport { FOOTER_HEIGHT } from '../../theme/theme.js';\nimport {\n validateEmail,\n validateName,\n validateWebsite,\n validateWebsiteStrict,\n} from './CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from './OrganizationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SUPPORT_EMAIL_HINT,\n TECHNICAL_EMAIL_HINT,\n WEBSITE_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext.js';\n\nconst CreateOrganization = ({\n children,\n title,\n subTitle,\n buttonTitle,\n onSubmit,\n defaultValues,\n countryCodes,\n isLoading,\n hasOrganisations,\n userData,\n}) => {\n const { logout } = useAuth();\n const navigate = useNavigate();\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box sx={sxStyles.root}>\n <Stack sx={sxStyles.content}>\n <Typography variant=\"h1\" mb={2}>\n {title}\n </Typography>\n <Typography variant=\"pl\" mb={6.5} textAlign=\"center\">\n {subTitle}\n </Typography>\n <Form defaultValues={defaultValues} onSubmit={handleSubmit} noValidate mode=\"all\">\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <Grid container spacing={4} rowSpacing={1}>\n <Grid size={{ xs: 6 }}>\n <Stack container flex={1} flexDirection=\"column\">\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={validateName}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Website\"\n source=\"website\"\n validate={[required(), ...validateWebsiteStrict]}\n />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Address\"\n source=\"physicalAddress.line1\"\n validate={[required(), maxLength(1024)]}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n validate={required()}\n />\n </Grid>\n </Stack>\n </Grid>\n\n <Grid size={{ xs: 6 }} pb={1}>\n <CustomImageInput\n label={false}\n editMode={!defaultValues.logo}\n source=\"logo\"\n imgSrc={defaultValues?.logo}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={[...validateWebsite, required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <LinkedInRegistrationInput formData={{ ...formData, ...defaultValues }} />\n </Grid>\n\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <AuthorityRegistrationNumbersInput\n source=\"registrationNumbers\"\n orientation=\"horizontal\"\n />\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n multiline\n label=\"Short Description\"\n placeholder=\"Description (a boilerplate for other Network participants to read about the organization)\"\n source=\"description\"\n validate={required()}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Administrator’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.givenName : ''}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.familyName : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"adminTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n defaultValue={userData ? userData.email : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"signatoryEmail\"\n validate={[...validateEmail, required()]}\n />\n <Box mt={2}>\n <Tooltip title={SIGNATORY_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n </Grid>\n {children}\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"large\"\n sx={sxStyles.cancelButton}\n onClick={() => (hasOrganisations ? navigate('/') : logout())}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n title={buttonTitle}\n isLoading={isLoading}\n styles={sxStyles.saveButton}\n enabled\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Stack>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateOrganization.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n children: PropTypes.node,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n hasOrganisations: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n userData: PropTypes.object,\n};\n\nexport default CreateOrganization;\n\nconst sxStyles = {\n root: {\n pt: 7.5,\n pl: 1,\n pb: `calc(35px + ${FOOTER_HEIGHT})`,\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center',\n },\n content: {\n maxWidth: 886,\n alignItems: 'center',\n },\n saveButton: {\n minWidth: 160,\n },\n cancelButton: {\n minWidth: 160,\n mr: 2,\n },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n fullWidth: {\n width: '100%',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useDataProvider, TextInput, regex, maxLength } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport { useRef, useState } from 'react';\nimport { Typography, Box } from '@mui/material';\nimport { secureUrlRegexp, ERRORS } from '../../utils/index.jsx';\n\nconst ValidateTextInput = ({ source, resource, ...props }) => {\n const { debounce: debounceTime = 250, ...rest } = props;\n const errorobj = { message: ' ' };\n const dataProvider = useDataProvider();\n const [isError, setIsError] = useState(false);\n\n const timeout = useRef(null);\n\n const validateSecureUrl = [\n regex(secureUrlRegexp, (res) => {\n setIsError(false);\n return res ? 'Secure webhook should be a HTTPS URL' : undefined;\n }),\n maxLength(1024),\n ];\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n setIsError(false);\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const { data } = await dataProvider.create(resource, { data: { secureWebhookUrl: value } });\n if (data && data.status === 400) {\n setIsError(true);\n resolve(errorobj);\n } else {\n resolve(undefined);\n setIsError(false);\n }\n }, debounceTime);\n });\n };\n\n const validate = [...validateSecureUrl, debouncedValidation];\n\n return (\n <Box sx={sx.constainer}>\n <TextInput source={source} validate={validate} {...rest} />\n {isError && (\n <Typography variant=\"caption\" component=\"div\" sx={sx.errorMessage}>\n {ERRORS.secureWebHook}\n </Typography>\n )}\n </Box>\n );\n};\n\nexport default ValidateTextInput;\n\nconst sx = {\n constainer: {\n width: '100%',\n position: 'relative',\n },\n errorMessage: {\n color: 'primary.main',\n mt: 0,\n mb: 0.5,\n ml: 1.5,\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nValidateTextInput.propTypes = {\n source: PropTypes.string,\n resource: PropTypes.string,\n errortext: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n validate: PropTypes.array,\n debounce: PropTypes.number,\n};\n"],"names":["styles","useFormContext","useEffect","jsx","Button","Loading","useState","useDataProvider","theme","useTheme","result","dataResources","useCallback","jsxs","Box","Autocomplete","Fragment","index","Typography","AddIcon","TextField","useRef","validateName","Form","FormDataConsumer","TextInput","Stack","CustomImageInput","validateWebsite","Tooltip","WEBSITE_HINT","AutocompleteInput","validateWebsiteStrict","LinkedInRegistrationInput","validateEmail","SUPPORT_EMAIL_HINT","TECHNICAL_EMAIL_HINT","AuthorityRegistrationNumbersInput","sxStyles","useAuth","useNavigate","Grid","required","maxLength","ADMINISTRATOR_DETAILS_HINT","SIGNATORY_DETAILS_HINT","SIGNATORY_EMAIL_HINT","FOOTER_HEIGHT","regex","secureUrlRegexp","ERRORS"],"mappings":"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"}