@verii/components-organizations-registrar 1.0.0-pre.1756100765 → 1.0.0-pre.1756224043
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{ConsentProvider.DIG3atk-.js → ConsentProvider.6M2ucqXH.js} +3 -3
- package/dist/chunks/ConsentProvider.6M2ucqXH.js.map +1 -0
- package/dist/chunks/{ConsentProvider.DTG51XMy.js → ConsentProvider.Bbc0preP.js} +2 -2
- package/dist/chunks/ConsentProvider.Bbc0preP.js.map +1 -0
- package/dist/chunks/{CreateOrganization.utils.C5C_r3Zp.js → CreateOrganizationUtils.C5C_r3Zp.js} +1 -1
- package/dist/chunks/CreateOrganizationUtils.C5C_r3Zp.js.map +1 -0
- package/dist/chunks/{CreateOrganization.utils.8cSBFSYF.js → CreateOrganizationUtils.Xq78HHkP.js} +7 -7
- package/dist/chunks/CreateOrganizationUtils.Xq78HHkP.js.map +1 -0
- package/dist/chunks/{CustomAppBar.DuFQqld7.js → CustomAppBar.BOlNFosS.js} +5 -7
- package/dist/chunks/CustomAppBar.BOlNFosS.js.map +1 -0
- package/dist/chunks/{CustomAppBar.BfQvuTHz.js → CustomAppBar.DaXLAwPh.js} +4 -6
- package/dist/chunks/CustomAppBar.DaXLAwPh.js.map +1 -0
- package/dist/chunks/{LinkedInRegistrationInput.C-qzrR-S.js → LinkedInRegistrationInput.CmYmSJoq.js} +8 -5
- package/dist/chunks/LinkedInRegistrationInput.CmYmSJoq.js.map +1 -0
- package/dist/chunks/{LinkedInRegistrationInput.DKRMHYRh.js → LinkedInRegistrationInput.gnYgP1Hf.js} +11 -8
- package/dist/chunks/LinkedInRegistrationInput.gnYgP1Hf.js.map +1 -0
- package/dist/chunks/{Loading.UJl_3_cf.js → Loading.Bcm3xNJU.js} +2 -3
- package/dist/chunks/Loading.Bcm3xNJU.js.map +1 -0
- package/dist/chunks/{Loading.DYBk0Ktb.js → Loading.cGHE59CV.js} +2 -3
- package/dist/chunks/Loading.cGHE59CV.js.map +1 -0
- package/dist/chunks/{MainLayout.CWFkijrE.js → MainLayout.BzfaZs8j.js} +2 -2
- package/dist/chunks/{MainLayout.CWFkijrE.js.map → MainLayout.BzfaZs8j.js.map} +1 -1
- package/dist/chunks/{MainLayout.6Hq5XQ-L.js → MainLayout.V-ymVxxR.js} +3 -3
- package/dist/chunks/{MainLayout.6Hq5XQ-L.js.map → MainLayout.V-ymVxxR.js.map} +1 -1
- package/dist/chunks/{OrganizationAvatar.BEwRZ9tC.js → OrganizationAvatar.BXW4diDT.js} +2 -2
- package/dist/chunks/{OrganizationAvatar.BEwRZ9tC.js.map → OrganizationAvatar.BXW4diDT.js.map} +1 -1
- package/dist/chunks/{OrganizationAvatar.lWcXtbM6.js → OrganizationAvatar.Dgg5VSPI.js} +2 -2
- package/dist/chunks/{OrganizationAvatar.lWcXtbM6.js.map → OrganizationAvatar.Dgg5VSPI.js.map} +1 -1
- package/dist/chunks/{ServicesEdit.BUAbbXgV.js → ServicesEdit.BnnqC203.js} +3 -3
- package/dist/chunks/ServicesEdit.BnnqC203.js.map +1 -0
- package/dist/chunks/{ServicesEdit.CrtEcP_7.js → ServicesEdit.DDgjS5kU.js} +2 -2
- package/dist/chunks/ServicesEdit.DDgjS5kU.js.map +1 -0
- package/dist/chunks/{SetInvitationService.BUZqAilX.js → SetInvitationService.PxAGwk-I.js} +11 -11
- package/dist/chunks/SetInvitationService.PxAGwk-I.js.map +1 -0
- package/dist/chunks/{SetInvitationService.B0ezxTzf.js → SetInvitationService.ZT5lP003.js} +5 -5
- package/dist/chunks/SetInvitationService.ZT5lP003.js.map +1 -0
- package/dist/chunks/TermsAndConditionsPdf.Ba8-5Hcm.js.map +1 -1
- package/dist/chunks/TermsAndConditionsPdf.ewC7N9Vy.js.map +1 -1
- package/dist/chunks/{CreateOrganization.C2Kf44eJ.js → ValidateTextInput.D5kgjulG.js} +328 -14
- package/dist/chunks/ValidateTextInput.D5kgjulG.js.map +1 -0
- package/dist/chunks/{CreateOrganization.A11-a_8R.js → ValidateTextInput.DEBaVB1L.js} +356 -42
- package/dist/chunks/ValidateTextInput.DEBaVB1L.js.map +1 -0
- package/dist/chunks/{index.DZOVpocw.js → index.CYCWawJT.js} +6 -6
- package/dist/chunks/index.CYCWawJT.js.map +1 -0
- package/dist/chunks/{index.DmM8ShwP.js → index.Cmn4FlUL.js} +5 -5
- package/dist/chunks/index.Cmn4FlUL.js.map +1 -0
- package/dist/chunks/{index.DlFajFTS.js → index.DIizFYFZ.js} +3 -3
- package/dist/chunks/index.DIizFYFZ.js.map +1 -0
- package/dist/chunks/{index.ZAmuSdK1.js → index.DIur8MCO.js} +4 -4
- package/dist/chunks/index.DIur8MCO.js.map +1 -0
- package/dist/chunks/{index.Ch4ynES2.js → index.DMWKdmxs.js} +4 -5
- package/dist/chunks/index.DMWKdmxs.js.map +1 -0
- package/dist/chunks/{index.Dir1xwV4.js → index.DND10PiY.js} +5 -6
- package/dist/chunks/index.DND10PiY.js.map +1 -0
- package/dist/chunks/{index.Cpod3Il3.js → index.YjnxLFjk.js} +3 -3
- package/dist/chunks/index.YjnxLFjk.js.map +1 -0
- package/dist/chunks/index.iexmV4Mr.js.map +1 -1
- package/dist/chunks/remoteDataProvider.BCiFSYnk.js.map +1 -1
- package/dist/chunks/remoteDataProvider.gtTXA1-g.js.map +1 -1
- package/dist/chunks/useIsIssuingInspection.C76mY_wb.js.map +1 -1
- package/dist/chunks/useIsIssuingInspection.DavhBs5B.js.map +1 -1
- package/dist/components/AppBar.cjs +1 -1
- package/dist/components/AppBar.js +1 -1
- package/dist/components/common.cjs +3 -3
- package/dist/components/common.js +3 -3
- package/dist/components/invitations.cjs +1 -1
- package/dist/components/invitations.js +1 -1
- package/dist/components/organizations.cjs +12 -301
- package/dist/components/organizations.cjs.map +1 -1
- package/dist/components/organizations.js +10 -299
- package/dist/components/organizations.js.map +1 -1
- package/dist/components/services.cjs +1 -1
- package/dist/components/services.js +1 -1
- package/dist/components.cjs +2 -2
- package/dist/components.js +2 -2
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/layouts.cjs +1 -1
- package/dist/layouts.js +1 -1
- package/dist/pages/individuals.cjs +4 -4
- package/dist/pages/individuals.cjs.map +1 -1
- package/dist/pages/individuals.js +5 -5
- package/dist/pages/individuals.js.map +1 -1
- package/dist/pages/invitations.cjs +11 -12
- package/dist/pages/invitations.cjs.map +1 -1
- package/dist/pages/invitations.js +9 -10
- package/dist/pages/invitations.js.map +1 -1
- package/dist/pages/organizations.cjs +74 -75
- package/dist/pages/organizations.cjs.map +1 -1
- package/dist/pages/organizations.js +10 -11
- package/dist/pages/organizations.js.map +1 -1
- package/dist/pages/services.cjs +6 -6
- package/dist/pages/services.cjs.map +1 -1
- package/dist/pages/services.js +5 -5
- package/dist/pages/services.js.map +1 -1
- package/dist/pages.cjs +1 -1
- package/dist/pages.cjs.map +1 -1
- package/dist/pages.js +1 -1
- package/dist/pages.js.map +1 -1
- package/package.json +12 -9
- package/setup-tests.js +31 -0
- package/dist/chunks/ConsentProvider.DIG3atk-.js.map +0 -1
- package/dist/chunks/ConsentProvider.DTG51XMy.js.map +0 -1
- package/dist/chunks/CreateOrganization.A11-a_8R.js.map +0 -1
- package/dist/chunks/CreateOrganization.C2Kf44eJ.js.map +0 -1
- package/dist/chunks/CreateOrganization.utils.8cSBFSYF.js.map +0 -1
- package/dist/chunks/CreateOrganization.utils.C5C_r3Zp.js.map +0 -1
- package/dist/chunks/CustomAppBar.BfQvuTHz.js.map +0 -1
- package/dist/chunks/CustomAppBar.DuFQqld7.js.map +0 -1
- package/dist/chunks/LinkedInRegistrationInput.C-qzrR-S.js.map +0 -1
- package/dist/chunks/LinkedInRegistrationInput.DKRMHYRh.js.map +0 -1
- package/dist/chunks/Loading.DYBk0Ktb.js.map +0 -1
- package/dist/chunks/Loading.UJl_3_cf.js.map +0 -1
- package/dist/chunks/OrganisationSubmitButton.D32qynh9.js +0 -40
- package/dist/chunks/OrganisationSubmitButton.D32qynh9.js.map +0 -1
- package/dist/chunks/OrganisationSubmitButton.D3w1nG1X.js +0 -41
- package/dist/chunks/OrganisationSubmitButton.D3w1nG1X.js.map +0 -1
- package/dist/chunks/ServicesEdit.BUAbbXgV.js.map +0 -1
- package/dist/chunks/ServicesEdit.CrtEcP_7.js.map +0 -1
- package/dist/chunks/SetInvitationService.B0ezxTzf.js.map +0 -1
- package/dist/chunks/SetInvitationService.BUZqAilX.js.map +0 -1
- package/dist/chunks/index.Ch4ynES2.js.map +0 -1
- package/dist/chunks/index.Cpod3Il3.js.map +0 -1
- package/dist/chunks/index.DZOVpocw.js.map +0 -1
- package/dist/chunks/index.Dir1xwV4.js.map +0 -1
- package/dist/chunks/index.DlFajFTS.js.map +0 -1
- package/dist/chunks/index.DmM8ShwP.js.map +0 -1
- package/dist/chunks/index.ZAmuSdK1.js.map +0 -1
- package/jest.config.cjs +0 -29
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomAppBar.BfQvuTHz.js","sources":["../../src/components/AppBar/AppBarOrganization.jsx","../../src/components/AppBar/hooks/useCheckUserHasGroup.jsx","../../src/components/AppBar/CustomAppBar.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 React from 'react';\nimport { useLogout, useRedirect, useGetList } from 'react-admin';\nimport {\n Box,\n Button,\n List,\n ListItem,\n ListItemButton,\n Popover,\n Stack,\n Typography,\n} from '@mui/material';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport AddIcon from '@mui/icons-material/Add';\nimport OrganizationAvatar from '../common/OrganizationAvatar.jsx';\nimport useSelectedOrganization from '../../state/selectedOrganizationState';\nimport { useIsHideSidebar } from '../../utils/index.jsx';\nimport useCountryCodes from '../../utils/countryCodes';\nimport Loading from '../Loading.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext';\n\n// eslint-disable-next-line complexity\nconst AppBarOrganization = () => {\n const { getCountryNameByCode } = useCountryCodes();\n const isHidden = useIsHideSidebar();\n const redirect = useRedirect();\n const [did, setDid] = useSelectedOrganization();\n const auth = useAuth();\n const logout = useLogout();\n\n const { data: allOrganizations, isLoading } = useGetList('organizations', undefined, {\n onSuccess: ({ data }) => {\n if (!data) {\n return;\n }\n\n if (data.find((item) => item.id === did)) {\n return;\n }\n\n setDid(data[0].id);\n },\n onError: () => redirect('/'),\n });\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const organization = React.useMemo(\n () => (allOrganizations || []).find((item) => item.id === did),\n [did, allOrganizations],\n );\n\n if (isLoading) {\n return (\n <Box>\n <Loading />\n </Box>\n );\n }\n\n if (!did || !allOrganizations || isHidden || !organization) {\n return null;\n }\n\n const isOpen = Boolean(anchorEl);\n const id = isOpen ? 'user-menu' : undefined;\n\n const handleSelectOrganization = (value) => {\n setDid(value);\n setAnchorEl(null);\n redirect('show', 'organizations', value);\n };\n\n const handleAddNewClick = () => {\n setAnchorEl(null);\n redirect('create', 'organizations');\n };\n\n const handleLogoutClick = () => {\n setAnchorEl(null);\n logout(auth, '/', false);\n };\n\n return (\n <>\n <Stack\n sx={sx.root}\n role=\"button\"\n aria-describedby={id}\n onClick={(e) => setAnchorEl(e.currentTarget)}\n data-testid=\"app-bar-org\"\n >\n <OrganizationAvatar\n size={36}\n name={organization.profile.name}\n logo={organization.profile.logo}\n />\n <Box>\n <Typography variant=\"pl\" component=\"div\" fontWeight={600}>\n {organization.profile.name}\n </Typography>\n <Typography variant=\"ps\" mt={0.25}>\n {getCountryNameByCode(organization.profile.location.countryCode)}\n </Typography>\n </Box>\n <ArrowDropDownIcon />\n </Stack>\n <Popover\n id={id}\n open={isOpen}\n anchorEl={anchorEl}\n onClose={() => setAnchorEl(null)}\n componentsProps={{\n backdrop: {\n invisible: true,\n },\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <Stack sx={sx.popup} alignItems=\"center\">\n <OrganizationAvatar\n size={56}\n name={organization.profile.name}\n logo={organization.profile.logo}\n />\n <Typography mt={2} variant=\"h5\">\n {organization.profile.name}\n </Typography>\n <Typography mt={2} variant=\"pm\" fontWeight=\"600\" sx={sx.did}>\n {did}\n </Typography>\n <Typography variant=\"ps\" mt={1} mb={3}>\n {getCountryNameByCode(organization.profile.location.countryCode)}\n </Typography>\n <List sx={sx.list}>\n {allOrganizations\n .filter((item) => item.id !== did)\n .map((item) => (\n <ListItem key={item.id} sx={sx.listItem} disablePadding>\n <ListItemButton\n sx={sx.listItemButton}\n onClick={() => handleSelectOrganization(item.id)}\n >\n <OrganizationAvatar\n size={26}\n name={item.profile.name}\n logo={item.profile.logo}\n />\n <Typography variant=\"pm\" fontWeight={600}>\n {item.profile.name}\n </Typography>\n </ListItemButton>\n </ListItem>\n ))}\n <ListItem key=\"'add-new'\" sx={sx.listItem} disablePadding>\n <ListItemButton sx={sx.listItemButton} onClick={handleAddNewClick}>\n <Box sx={sx.plusIcon}>\n <AddIcon />\n </Box>\n <Typography variant=\"pm\" fontWeight={600} fontSize={12}>\n ADD ORGANIZATION\n </Typography>\n </ListItemButton>\n </ListItem>\n </List>\n <Button\n sx={sx.logout}\n onClick={handleLogoutClick}\n variant=\"outlined\"\n color=\"secondary\"\n size=\"small\"\n >\n LOG OUT\n </Button>\n\n <Button sx={sx.changePassword} variant=\"text\" color=\"secondary\" size=\"small\">\n Change password\n </Button>\n </Stack>\n </Popover>\n </>\n );\n};\n\nexport default AppBarOrganization;\n\nconst sx = {\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 1.5,\n cursor: 'pointer',\n py: 1.25,\n },\n popup: {\n minWidth: 368,\n py: 4,\n },\n list: {\n alignSelf: 'stretch',\n },\n listItem: {\n borderTop: (theme) => `1px solid ${theme.palette.divider.main}`,\n },\n listItemButton: {\n gap: 2.5,\n px: 3.25,\n py: 1.5,\n },\n plusIcon: {\n padding: 0.625,\n display: 'flex',\n },\n logout: {\n mt: 1,\n minWidth: 176,\n },\n changePassword: {\n mt: 2,\n },\n did: {\n wordBreak: 'break-word',\n px: '10px',\n },\n};\n","import { useEffect, useState } from 'react';\nimport { useGetOne, useRedirect } from 'react-admin';\nimport { useAuth } from '@/utils/auth/AuthContext';\nimport { dataResources } from '@/utils/remoteDataProvider';\nimport useSelectedOrganization from '@/state/selectedOrganizationState';\n\nexport const useCheckUserHasGroup = () => {\n const { user, getAccessTokenWithPopup } = useAuth();\n const redirect = useRedirect();\n const [, setDid] = useSelectedOrganization();\n const {\n data: userData,\n isLoading: isUserDataLoading,\n isError,\n } = useGetOne(dataResources.USERS, {\n id: user.sub,\n });\n const [isLoading, setIsLoading] = useState(false);\n const [hasOrganisations, setHasOrganisations] = useState(false);\n\n useEffect(() => {\n const checkUserGroup = async () => {\n setIsLoading(true);\n try {\n const userHasGroup = !!userData?.groupId;\n if (userHasGroup) {\n setHasOrganisations(true);\n return;\n }\n\n setDid('');\n if (!/organizations\\/create/.test(window.location.pathname)) {\n redirect('create', 'organizations', undefined, undefined, { userHasGroup });\n }\n } catch (e) {\n if (e.error === 'consent_required') {\n await getAccessTokenWithPopup();\n }\n throw e;\n } finally {\n setIsLoading(false);\n }\n };\n if (!isUserDataLoading && (userData || isError)) {\n checkUserGroup();\n }\n }, [\n getAccessTokenWithPopup,\n redirect,\n setDid,\n setIsLoading,\n userData?.groupId,\n isUserDataLoading,\n userData,\n isError,\n ]);\n\n return {\n isLoading,\n hasOrganisations,\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 { Link } from 'react-router';\nimport AppBar from '@mui/material/AppBar';\nimport Toolbar from '@mui/material/Toolbar';\nimport { Box } from '@mui/material';\nimport AppBarOrganization from './AppBarOrganization.jsx';\nimport { useCheckUserHasGroup } from './hooks/useCheckUserHasGroup.jsx';\n\nconst CustomAppBar = (props) => {\n const { hasOrganisations, isLoading } = useCheckUserHasGroup();\n const isLogoDisabled = isLoading || !hasOrganisations;\n\n return (\n <AppBar {...props} elevation={0}>\n <Toolbar>\n <Link\n to={isLogoDisabled ? undefined : '/'}\n style={{ display: 'flex', ...(isLogoDisabled ? { pointerEvents: 'none' } : {}) }}\n aria-disabled={isLogoDisabled}\n disabled={isLogoDisabled}\n role=\"link\"\n >\n <img src=\"/assets/images/logo.svg\" alt=\"Velocity\" />\n </Link>\n <Box flex={1} />\n {hasOrganisations && <AppBarOrganization />}\n </Toolbar>\n </AppBar>\n );\n};\n\nexport default CustomAppBar;\n"],"names":["useCountryCodes","useIsHideSidebar","useRedirect","useSelectedOrganization","useAuth","useLogout","useGetList","jsx","Box","Loading","jsxs","Fragment","Stack","OrganizationAvatar","Typography","Popover","List","ListItem","ListItemButton","Button","useGetOne","dataResources","useState","useEffect","Link"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomAppBar.DuFQqld7.js","sources":["../../src/components/AppBar/AppBarOrganization.jsx","../../src/components/AppBar/hooks/useCheckUserHasGroup.jsx","../../src/components/AppBar/CustomAppBar.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 React from 'react';\nimport { useLogout, useRedirect, useGetList } from 'react-admin';\nimport {\n Box,\n Button,\n List,\n ListItem,\n ListItemButton,\n Popover,\n Stack,\n Typography,\n} from '@mui/material';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport AddIcon from '@mui/icons-material/Add';\nimport OrganizationAvatar from '../common/OrganizationAvatar.jsx';\nimport useSelectedOrganization from '../../state/selectedOrganizationState';\nimport { useIsHideSidebar } from '../../utils/index.jsx';\nimport useCountryCodes from '../../utils/countryCodes';\nimport Loading from '../Loading.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext';\n\n// eslint-disable-next-line complexity\nconst AppBarOrganization = () => {\n const { getCountryNameByCode } = useCountryCodes();\n const isHidden = useIsHideSidebar();\n const redirect = useRedirect();\n const [did, setDid] = useSelectedOrganization();\n const auth = useAuth();\n const logout = useLogout();\n\n const { data: allOrganizations, isLoading } = useGetList('organizations', undefined, {\n onSuccess: ({ data }) => {\n if (!data) {\n return;\n }\n\n if (data.find((item) => item.id === did)) {\n return;\n }\n\n setDid(data[0].id);\n },\n onError: () => redirect('/'),\n });\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const organization = React.useMemo(\n () => (allOrganizations || []).find((item) => item.id === did),\n [did, allOrganizations],\n );\n\n if (isLoading) {\n return (\n <Box>\n <Loading />\n </Box>\n );\n }\n\n if (!did || !allOrganizations || isHidden || !organization) {\n return null;\n }\n\n const isOpen = Boolean(anchorEl);\n const id = isOpen ? 'user-menu' : undefined;\n\n const handleSelectOrganization = (value) => {\n setDid(value);\n setAnchorEl(null);\n redirect('show', 'organizations', value);\n };\n\n const handleAddNewClick = () => {\n setAnchorEl(null);\n redirect('create', 'organizations');\n };\n\n const handleLogoutClick = () => {\n setAnchorEl(null);\n logout(auth, '/', false);\n };\n\n return (\n <>\n <Stack\n sx={sx.root}\n role=\"button\"\n aria-describedby={id}\n onClick={(e) => setAnchorEl(e.currentTarget)}\n data-testid=\"app-bar-org\"\n >\n <OrganizationAvatar\n size={36}\n name={organization.profile.name}\n logo={organization.profile.logo}\n />\n <Box>\n <Typography variant=\"pl\" component=\"div\" fontWeight={600}>\n {organization.profile.name}\n </Typography>\n <Typography variant=\"ps\" mt={0.25}>\n {getCountryNameByCode(organization.profile.location.countryCode)}\n </Typography>\n </Box>\n <ArrowDropDownIcon />\n </Stack>\n <Popover\n id={id}\n open={isOpen}\n anchorEl={anchorEl}\n onClose={() => setAnchorEl(null)}\n componentsProps={{\n backdrop: {\n invisible: true,\n },\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <Stack sx={sx.popup} alignItems=\"center\">\n <OrganizationAvatar\n size={56}\n name={organization.profile.name}\n logo={organization.profile.logo}\n />\n <Typography mt={2} variant=\"h5\">\n {organization.profile.name}\n </Typography>\n <Typography mt={2} variant=\"pm\" fontWeight=\"600\" sx={sx.did}>\n {did}\n </Typography>\n <Typography variant=\"ps\" mt={1} mb={3}>\n {getCountryNameByCode(organization.profile.location.countryCode)}\n </Typography>\n <List sx={sx.list}>\n {allOrganizations\n .filter((item) => item.id !== did)\n .map((item) => (\n <ListItem key={item.id} sx={sx.listItem} disablePadding>\n <ListItemButton\n sx={sx.listItemButton}\n onClick={() => handleSelectOrganization(item.id)}\n >\n <OrganizationAvatar\n size={26}\n name={item.profile.name}\n logo={item.profile.logo}\n />\n <Typography variant=\"pm\" fontWeight={600}>\n {item.profile.name}\n </Typography>\n </ListItemButton>\n </ListItem>\n ))}\n <ListItem key=\"'add-new'\" sx={sx.listItem} disablePadding>\n <ListItemButton sx={sx.listItemButton} onClick={handleAddNewClick}>\n <Box sx={sx.plusIcon}>\n <AddIcon />\n </Box>\n <Typography variant=\"pm\" fontWeight={600} fontSize={12}>\n ADD ORGANIZATION\n </Typography>\n </ListItemButton>\n </ListItem>\n </List>\n <Button\n sx={sx.logout}\n onClick={handleLogoutClick}\n variant=\"outlined\"\n color=\"secondary\"\n size=\"small\"\n >\n LOG OUT\n </Button>\n\n <Button sx={sx.changePassword} variant=\"text\" color=\"secondary\" size=\"small\">\n Change password\n </Button>\n </Stack>\n </Popover>\n </>\n );\n};\n\nexport default AppBarOrganization;\n\nconst sx = {\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 1.5,\n cursor: 'pointer',\n py: 1.25,\n },\n popup: {\n minWidth: 368,\n py: 4,\n },\n list: {\n alignSelf: 'stretch',\n },\n listItem: {\n borderTop: (theme) => `1px solid ${theme.palette.divider.main}`,\n },\n listItemButton: {\n gap: 2.5,\n px: 3.25,\n py: 1.5,\n },\n plusIcon: {\n padding: 0.625,\n display: 'flex',\n },\n logout: {\n mt: 1,\n minWidth: 176,\n },\n changePassword: {\n mt: 2,\n },\n did: {\n wordBreak: 'break-word',\n px: '10px',\n },\n};\n","import { useEffect, useState } from 'react';\nimport { useGetOne, useRedirect } from 'react-admin';\nimport { useAuth } from '@/utils/auth/AuthContext';\nimport { dataResources } from '@/utils/remoteDataProvider';\nimport useSelectedOrganization from '@/state/selectedOrganizationState';\n\nexport const useCheckUserHasGroup = () => {\n const { user, getAccessTokenWithPopup } = useAuth();\n const redirect = useRedirect();\n const [, setDid] = useSelectedOrganization();\n const {\n data: userData,\n isLoading: isUserDataLoading,\n isError,\n } = useGetOne(dataResources.USERS, {\n id: user.sub,\n });\n const [isLoading, setIsLoading] = useState(false);\n const [hasOrganisations, setHasOrganisations] = useState(false);\n\n useEffect(() => {\n const checkUserGroup = async () => {\n setIsLoading(true);\n try {\n const userHasGroup = !!userData?.groupId;\n if (userHasGroup) {\n setHasOrganisations(true);\n return;\n }\n\n setDid('');\n if (!/organizations\\/create/.test(window.location.pathname)) {\n redirect('create', 'organizations', undefined, undefined, { userHasGroup });\n }\n } catch (e) {\n if (e.error === 'consent_required') {\n await getAccessTokenWithPopup();\n }\n throw e;\n } finally {\n setIsLoading(false);\n }\n };\n if (!isUserDataLoading && (userData || isError)) {\n checkUserGroup();\n }\n }, [\n getAccessTokenWithPopup,\n redirect,\n setDid,\n setIsLoading,\n userData?.groupId,\n isUserDataLoading,\n userData,\n isError,\n ]);\n\n return {\n isLoading,\n hasOrganisations,\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 { Link } from 'react-router';\nimport AppBar from '@mui/material/AppBar';\nimport Toolbar from '@mui/material/Toolbar';\nimport { Box } from '@mui/material';\nimport AppBarOrganization from './AppBarOrganization.jsx';\nimport { useCheckUserHasGroup } from './hooks/useCheckUserHasGroup.jsx';\n\nconst CustomAppBar = (props) => {\n const { hasOrganisations, isLoading } = useCheckUserHasGroup();\n const isLogoDisabled = isLoading || !hasOrganisations;\n\n return (\n <AppBar {...props} elevation={0}>\n <Toolbar>\n <Link\n to={isLogoDisabled ? undefined : '/'}\n style={{ display: 'flex', ...(isLogoDisabled ? { pointerEvents: 'none' } : {}) }}\n aria-disabled={isLogoDisabled}\n disabled={isLogoDisabled}\n role=\"link\"\n >\n <img src=\"/assets/images/logo.svg\" alt=\"Velocity\" />\n </Link>\n <Box flex={1} />\n {hasOrganisations && <AppBarOrganization />}\n </Toolbar>\n </AppBar>\n );\n};\n\nexport default CustomAppBar;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedInRegistrationInput.C-qzrR-S.js","sources":["../../src/pages/organizations/components/AuthorityRegistrationInput.jsx","../../src/pages/organizations/components/LinkedInRegistrationInput.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get } from 'lodash';\nimport { Box, FormControl, FormControlLabel, Radio, RadioGroup, Tooltip } from '@mui/material';\nimport {\n TextInput,\n required,\n ArrayInput,\n SimpleFormIterator,\n ResourceContextProvider,\n FormDataConsumer,\n} from 'react-admin';\nimport InfoIcon from '@mui/icons-material/Info';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { useFormContext } from 'react-hook-form';\nimport {\n DUNS_HINT,\n LEI_HINT,\n NATIONAL_AUTHORITY_HINT,\n LINKEDIN_ORGANIZATION_ID,\n} from '@/utils/index.jsx';\nimport { validateWebsite } from '@/components/organizations/CreateOrganization.utils';\n\nexport const registrationNumbers = {\n DunnAndBradstreet: {\n authority: 'DunnAndBradstreet',\n label: `D-U-N-S${String.fromCodePoint(174)} Number`,\n hint: DUNS_HINT,\n },\n GLEIF: {\n authority: 'GLEIF',\n label: 'LEI',\n hint: LEI_HINT,\n },\n NationalAuthority: {\n authority: 'NationalAuthority',\n label: 'Local Country Registration ID',\n hint: NATIONAL_AUTHORITY_HINT,\n },\n};\n\nexport const preservedRegistrationNumbers = {\n LinkedIn: {\n authority: 'LinkedIn',\n label: 'LinkedIn Company Page ID',\n hint: LINKEDIN_ORGANIZATION_ID,\n },\n};\n\nexport const defaultAuthority = registrationNumbers.DunnAndBradstreet.authority;\n\nconst getInitialAuthority = (values, source) => {\n const authority = get(values, source)?.find(\n (r) => r.authority && r.authority !== preservedRegistrationNumbers.LinkedIn.authority,\n )?.authority;\n\n return typeof authority === 'string' ? authority : defaultAuthority;\n};\n\nexport const AuthorityRegistrationInput = ({\n orientation = 'horizontal',\n source = 'registrationNumbers',\n isRequired = true,\n}) => {\n const { watch, setValue } = useFormContext();\n const formValues = watch();\n\n const initialAuthority = useMemo(\n () => getInitialAuthority(formValues, source),\n [formValues, source],\n );\n\n const [selectedAuthority, setSelectedAuthority] = useState(() => initialAuthority);\n\n const activeAuthorityEntry = useMemo(() => {\n return (get(formValues, source) || []).find((item) => item.authority === selectedAuthority);\n }, [formValues, source, selectedAuthority]);\n\n const preservedAuthorities = useMemo(() => {\n return (get(formValues, source) || []).filter(\n (r) => r.authority === preservedRegistrationNumbers.LinkedIn.authority,\n );\n }, [formValues, source]);\n\n const isNationalAuthority = selectedAuthority === registrationNumbers.NationalAuthority.authority;\n const isHorizontal = orientation === 'horizontal';\n\n useEffect(() => {\n if (!selectedAuthority || activeAuthorityEntry) return;\n // Create empty entry for the selected authority\n const updated = {\n authority: selectedAuthority,\n number: '',\n ...(isNationalAuthority ? { uri: '' } : {}),\n };\n\n setValue(source, [...preservedAuthorities, updated]);\n }, [\n selectedAuthority,\n source,\n setValue,\n isNationalAuthority,\n preservedAuthorities,\n activeAuthorityEntry,\n ]);\n\n const handleSelectAuthority = (event) => {\n const authority = event.target.value;\n setSelectedAuthority(() => authority);\n };\n\n return (\n <FormControl component=\"fieldset\" fullWidth>\n <RadioGroup\n row={isHorizontal}\n value={selectedAuthority}\n onChange={handleSelectAuthority}\n sx={styles.radioGroup}\n mb={isHorizontal ? 2 : 1}\n >\n {Object.entries(registrationNumbers).map(([key, { label }]) => (\n <FormControlLabel\n key={key}\n value={key}\n control={<Radio />}\n label={\n <Box display=\"flex\" alignItems=\"center\" gap={2}>\n {label}\n <Tooltip title={registrationNumbers[key]?.hint || ''}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n }\n />\n ))}\n </RadioGroup>\n\n <Box sx={styles.authorityContainer} flexDirection={isNationalAuthority ? 'row' : 'column'}>\n <ResourceContextProvider value=\"organizations\">\n <ArrayInput\n source={source}\n fullWidth\n label={false}\n defaultValue={[{ authority: defaultAuthority, number: '' }]}\n >\n <SimpleFormIterator\n inline={isHorizontal}\n disableAdd\n disableRemove\n disableReordering\n fullWidth\n sx={styles.simpleFormIterator}\n helperText={false}\n >\n <FormDataConsumer>\n {({ scopedFormData }) => {\n if (scopedFormData?.authority !== selectedAuthority) return null;\n return (\n <>\n {isNationalAuthority && (\n <TextInput\n source=\"uri\"\n label=\"Local Country Registration Authority Website\"\n validate={[isRequired && required(), ...validateWebsite]}\n fullWidth\n />\n )}\n\n <TextInput\n source=\"number\"\n label={`${registrationNumbers[selectedAuthority].label}`}\n validate={isRequired && required()}\n fullWidth\n />\n </>\n );\n }}\n </FormDataConsumer>\n </SimpleFormIterator>\n </ArrayInput>\n </ResourceContextProvider>\n </Box>\n </FormControl>\n );\n};\n\nconst styles = {\n radioGroup: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: '16px 32px',\n backgroundColor: '#F5F7FB',\n },\n authorityContainer: {\n marginTop: '1em',\n display: 'flex',\n },\n simpleFormIterator: {\n '& .RaSimpleFormIterator-line > .MuiFormHelperText-root + .MuiFormHelperText-root': {\n display: 'none',\n },\n '& .RaSimpleFormIterator-line': {\n border: 'none',\n },\n },\n};\n// eslint-disable-next-line better-mutation/no-mutation\nAuthorityRegistrationInput.propTypes = {\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n source: PropTypes.string,\n isRequired: PropTypes.bool,\n};\n\nexport default AuthorityRegistrationInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { TextInput } from 'react-admin';\nimport { Box, Stack, Tooltip } from '@mui/material';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { preservedRegistrationNumbers } from './AuthorityRegistrationInput.jsx';\nimport { Authorities } from '../../../constants/messageCodes';\n\nexport const LinkedInRegistrationInput = ({ formData, source = 'registrationNumbers' }) => (\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label={preservedRegistrationNumbers.LinkedIn.label}\n source={source}\n parse={(value) => {\n const existing = formData?.registrationNumbers || [];\n const preserved = existing.filter(\n (item) => item.authority !== preservedRegistrationNumbers.LinkedIn.authority,\n );\n return [\n ...preserved,\n {\n authority: Authorities.LinkedIn,\n number: value || '',\n },\n ];\n }}\n format={(value) => {\n const existing = value || [];\n return (\n existing.find(\n (item) => item.authority === preservedRegistrationNumbers.LinkedIn.authority,\n )?.number || ''\n );\n }}\n />\n <Box mt={2}>\n <Tooltip title={preservedRegistrationNumbers.LinkedIn.hint}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n);\n\n// eslint-disable-next-line better-mutation/no-mutation\nLinkedInRegistrationInput.propTypes = {\n formData: PropTypes.object,\n source: PropTypes.string,\n};\n\nexport default LinkedInRegistrationInput;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedInRegistrationInput.DKRMHYRh.js","sources":["../../src/pages/organizations/components/AuthorityRegistrationInput.jsx","../../src/pages/organizations/components/LinkedInRegistrationInput.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get } from 'lodash';\nimport { Box, FormControl, FormControlLabel, Radio, RadioGroup, Tooltip } from '@mui/material';\nimport {\n TextInput,\n required,\n ArrayInput,\n SimpleFormIterator,\n ResourceContextProvider,\n FormDataConsumer,\n} from 'react-admin';\nimport InfoIcon from '@mui/icons-material/Info';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { useFormContext } from 'react-hook-form';\nimport {\n DUNS_HINT,\n LEI_HINT,\n NATIONAL_AUTHORITY_HINT,\n LINKEDIN_ORGANIZATION_ID,\n} from '@/utils/index.jsx';\nimport { validateWebsite } from '@/components/organizations/CreateOrganization.utils';\n\nexport const registrationNumbers = {\n DunnAndBradstreet: {\n authority: 'DunnAndBradstreet',\n label: `D-U-N-S${String.fromCodePoint(174)} Number`,\n hint: DUNS_HINT,\n },\n GLEIF: {\n authority: 'GLEIF',\n label: 'LEI',\n hint: LEI_HINT,\n },\n NationalAuthority: {\n authority: 'NationalAuthority',\n label: 'Local Country Registration ID',\n hint: NATIONAL_AUTHORITY_HINT,\n },\n};\n\nexport const preservedRegistrationNumbers = {\n LinkedIn: {\n authority: 'LinkedIn',\n label: 'LinkedIn Company Page ID',\n hint: LINKEDIN_ORGANIZATION_ID,\n },\n};\n\nexport const defaultAuthority = registrationNumbers.DunnAndBradstreet.authority;\n\nconst getInitialAuthority = (values, source) => {\n const authority = get(values, source)?.find(\n (r) => r.authority && r.authority !== preservedRegistrationNumbers.LinkedIn.authority,\n )?.authority;\n\n return typeof authority === 'string' ? authority : defaultAuthority;\n};\n\nexport const AuthorityRegistrationInput = ({\n orientation = 'horizontal',\n source = 'registrationNumbers',\n isRequired = true,\n}) => {\n const { watch, setValue } = useFormContext();\n const formValues = watch();\n\n const initialAuthority = useMemo(\n () => getInitialAuthority(formValues, source),\n [formValues, source],\n );\n\n const [selectedAuthority, setSelectedAuthority] = useState(() => initialAuthority);\n\n const activeAuthorityEntry = useMemo(() => {\n return (get(formValues, source) || []).find((item) => item.authority === selectedAuthority);\n }, [formValues, source, selectedAuthority]);\n\n const preservedAuthorities = useMemo(() => {\n return (get(formValues, source) || []).filter(\n (r) => r.authority === preservedRegistrationNumbers.LinkedIn.authority,\n );\n }, [formValues, source]);\n\n const isNationalAuthority = selectedAuthority === registrationNumbers.NationalAuthority.authority;\n const isHorizontal = orientation === 'horizontal';\n\n useEffect(() => {\n if (!selectedAuthority || activeAuthorityEntry) return;\n // Create empty entry for the selected authority\n const updated = {\n authority: selectedAuthority,\n number: '',\n ...(isNationalAuthority ? { uri: '' } : {}),\n };\n\n setValue(source, [...preservedAuthorities, updated]);\n }, [\n selectedAuthority,\n source,\n setValue,\n isNationalAuthority,\n preservedAuthorities,\n activeAuthorityEntry,\n ]);\n\n const handleSelectAuthority = (event) => {\n const authority = event.target.value;\n setSelectedAuthority(() => authority);\n };\n\n return (\n <FormControl component=\"fieldset\" fullWidth>\n <RadioGroup\n row={isHorizontal}\n value={selectedAuthority}\n onChange={handleSelectAuthority}\n sx={styles.radioGroup}\n mb={isHorizontal ? 2 : 1}\n >\n {Object.entries(registrationNumbers).map(([key, { label }]) => (\n <FormControlLabel\n key={key}\n value={key}\n control={<Radio />}\n label={\n <Box display=\"flex\" alignItems=\"center\" gap={2}>\n {label}\n <Tooltip title={registrationNumbers[key]?.hint || ''}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n }\n />\n ))}\n </RadioGroup>\n\n <Box sx={styles.authorityContainer} flexDirection={isNationalAuthority ? 'row' : 'column'}>\n <ResourceContextProvider value=\"organizations\">\n <ArrayInput\n source={source}\n fullWidth\n label={false}\n defaultValue={[{ authority: defaultAuthority, number: '' }]}\n >\n <SimpleFormIterator\n inline={isHorizontal}\n disableAdd\n disableRemove\n disableReordering\n fullWidth\n sx={styles.simpleFormIterator}\n helperText={false}\n >\n <FormDataConsumer>\n {({ scopedFormData }) => {\n if (scopedFormData?.authority !== selectedAuthority) return null;\n return (\n <>\n {isNationalAuthority && (\n <TextInput\n source=\"uri\"\n label=\"Local Country Registration Authority Website\"\n validate={[isRequired && required(), ...validateWebsite]}\n fullWidth\n />\n )}\n\n <TextInput\n source=\"number\"\n label={`${registrationNumbers[selectedAuthority].label}`}\n validate={isRequired && required()}\n fullWidth\n />\n </>\n );\n }}\n </FormDataConsumer>\n </SimpleFormIterator>\n </ArrayInput>\n </ResourceContextProvider>\n </Box>\n </FormControl>\n );\n};\n\nconst styles = {\n radioGroup: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: '16px 32px',\n backgroundColor: '#F5F7FB',\n },\n authorityContainer: {\n marginTop: '1em',\n display: 'flex',\n },\n simpleFormIterator: {\n '& .RaSimpleFormIterator-line > .MuiFormHelperText-root + .MuiFormHelperText-root': {\n display: 'none',\n },\n '& .RaSimpleFormIterator-line': {\n border: 'none',\n },\n },\n};\n// eslint-disable-next-line better-mutation/no-mutation\nAuthorityRegistrationInput.propTypes = {\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n source: PropTypes.string,\n isRequired: PropTypes.bool,\n};\n\nexport default AuthorityRegistrationInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { TextInput } from 'react-admin';\nimport { Box, Stack, Tooltip } from '@mui/material';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { preservedRegistrationNumbers } from './AuthorityRegistrationInput.jsx';\nimport { Authorities } from '../../../constants/messageCodes';\n\nexport const LinkedInRegistrationInput = ({ formData, source = 'registrationNumbers' }) => (\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label={preservedRegistrationNumbers.LinkedIn.label}\n source={source}\n parse={(value) => {\n const existing = formData?.registrationNumbers || [];\n const preserved = existing.filter(\n (item) => item.authority !== preservedRegistrationNumbers.LinkedIn.authority,\n );\n return [\n ...preserved,\n {\n authority: Authorities.LinkedIn,\n number: value || '',\n },\n ];\n }}\n format={(value) => {\n const existing = value || [];\n return (\n existing.find(\n (item) => item.authority === preservedRegistrationNumbers.LinkedIn.authority,\n )?.number || ''\n );\n }}\n />\n <Box mt={2}>\n <Tooltip title={preservedRegistrationNumbers.LinkedIn.hint}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n);\n\n// eslint-disable-next-line better-mutation/no-mutation\nLinkedInRegistrationInput.propTypes = {\n formData: PropTypes.object,\n source: PropTypes.string,\n};\n\nexport default LinkedInRegistrationInput;\n"],"names":["DUNS_HINT","LEI_HINT","NATIONAL_AUTHORITY_HINT","LINKEDIN_ORGANIZATION_ID","get","useFormContext","useMemo","useState","useEffect","jsxs","FormControl","jsx","RadioGroup","FormControlLabel","Radio","Box","Tooltip","ResourceContextProvider","ArrayInput","SimpleFormIterator","FormDataConsumer","Fragment","TextInput","required","validateWebsite","Stack","Authorities"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.DYBk0Ktb.js","sources":["../../src/components/Loading.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 CircularProgress from '@mui/material/CircularProgress';\nimport { Box } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst Loading = ({ sx = {}, color = 'secondary', size = 40 }) => (\n <Box sx={[defaultSx.loader, sx]}>\n <CircularProgress color={color} size={size} />\n </Box>\n);\n\nexport default Loading;\n\n// eslint-disable-next-line better-mutation/no-mutation\nLoading.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n sx: PropTypes.object,\n color: PropTypes.string,\n size: PropTypes.number,\n};\n\nconst defaultSx = {\n loader: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n },\n};\n"],"names":["Box","jsx"],"mappings":";;;;;AAoBA,MAAM,UAAU,CAAC,EAAE,KAAK,CAAA,GAAI,QAAQ,aAAa,OAAO,GAAA,qCACrDA,cAAA,EAAI,IAAI,CAAC,UAAU,QAAQ,EAAE,GAC5B,UAAAC,+BAAC,kBAAA,EAAiB,OAAc,KAAA,CAAY,EAAA,CAC9C;AAMF,QAAQ,YAAY;AAAA;AAAA,EAElB,IAAI,UAAU;AAAA,EACd,OAAO,UAAU;AAAA,EACjB,MAAM,UAAU;AAClB;AAEA,MAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO;AAAA,EAAA;AAEX;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.UJl_3_cf.js","sources":["../../src/components/Loading.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 CircularProgress from '@mui/material/CircularProgress';\nimport { Box } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst Loading = ({ sx = {}, color = 'secondary', size = 40 }) => (\n <Box sx={[defaultSx.loader, sx]}>\n <CircularProgress color={color} size={size} />\n </Box>\n);\n\nexport default Loading;\n\n// eslint-disable-next-line better-mutation/no-mutation\nLoading.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n sx: PropTypes.object,\n color: PropTypes.string,\n size: PropTypes.number,\n};\n\nconst defaultSx = {\n loader: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n },\n};\n"],"names":[],"mappings":";;;;AAoBA,MAAM,UAAU,CAAC,EAAE,KAAK,CAAA,GAAI,QAAQ,aAAa,OAAO,GAAA,0BACrD,KAAA,EAAI,IAAI,CAAC,UAAU,QAAQ,EAAE,GAC5B,UAAA,oBAAC,kBAAA,EAAiB,OAAc,KAAA,CAAY,EAAA,CAC9C;AAMF,QAAQ,YAAY;AAAA;AAAA,EAElB,IAAI,UAAU;AAAA,EACd,OAAO,UAAU;AAAA,EACjB,MAAM,UAAU;AAClB;AAEA,MAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO;AAAA,EAAA;AAEX;"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const reactAdmin = require("react-admin");
|
|
4
|
-
const React = require("react");
|
|
5
|
-
const reactHookForm = require("react-hook-form");
|
|
6
|
-
const PropTypes = require("prop-types");
|
|
7
|
-
const Loading = require("./Loading.DYBk0Ktb.js");
|
|
8
|
-
const OrganizationSubmitButton = ({ title, isLoading, endIcon, styles, handleState, enabled }) => {
|
|
9
|
-
const form = reactHookForm.useFormContext();
|
|
10
|
-
React.useEffect(() => {
|
|
11
|
-
if (handleState) {
|
|
12
|
-
handleState(form.formState.isValid);
|
|
13
|
-
}
|
|
14
|
-
}, [form.formState.isValid, handleState]);
|
|
15
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16
|
-
reactAdmin.Button,
|
|
17
|
-
{
|
|
18
|
-
disabled: !form.formState.isValid && !enabled,
|
|
19
|
-
variant: "outlined",
|
|
20
|
-
color: "primary",
|
|
21
|
-
type: "submit",
|
|
22
|
-
size: "large",
|
|
23
|
-
label: isLoading ? "" : title,
|
|
24
|
-
endIcon,
|
|
25
|
-
sx: styles,
|
|
26
|
-
children: isLoading && /* @__PURE__ */ jsxRuntime.jsx(Loading.Loading, { color: "error", sx: { pl: "10px" }, size: 26 })
|
|
27
|
-
}
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
OrganizationSubmitButton.propTypes = {
|
|
31
|
-
title: PropTypes.string.isRequired,
|
|
32
|
-
isLoading: PropTypes.bool,
|
|
33
|
-
endIcon: PropTypes.element,
|
|
34
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
35
|
-
styles: PropTypes.object,
|
|
36
|
-
handleState: PropTypes.func,
|
|
37
|
-
enabled: PropTypes.bool
|
|
38
|
-
};
|
|
39
|
-
exports.OrganizationSubmitButton = OrganizationSubmitButton;
|
|
40
|
-
//# sourceMappingURL=OrganisationSubmitButton.D32qynh9.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrganisationSubmitButton.D32qynh9.js","sources":["../../src/components/organizations/OrganisationSubmitButton.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"],"names":["useFormContext","useEffect","jsx","Button","Loading"],"mappings":";;;;;;;AAuBA,MAAM,2BAA2B,CAAC,EAAE,OAAO,WAAW,SAAS,QAAQ,aAAa,cAAc;AAChG,QAAM,OAAOA,cAAAA,eAAA;AAEbC,QAAAA,UAAU,MAAM;AACd,QAAI,aAAa;AACf,kBAAY,KAAK,UAAU,OAAO;AAAA,IACpC;AAAA,EACF,GAAG,CAAC,KAAK,UAAU,SAAS,WAAW,CAAC;AAExC,SACEC,2BAAAA;AAAAA,IAACC,WAAAA;AAAAA,IAAA;AAAA,MACC,UAAU,CAAC,KAAK,UAAU,WAAW,CAAC;AAAA,MACtC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,OAAO,YAAY,KAAK;AAAA,MACxB;AAAA,MACA,IAAI;AAAA,MAEH,UAAA,aAAaD,2BAAAA,IAACE,QAAAA,SAAA,EAAQ,OAAM,SAAQ,IAAI,EAAE,IAAI,UAAU,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAGzE;AAGA,yBAAyB,YAAY;AAAA,EACnC,OAAO,UAAU,OAAO;AAAA,EACxB,WAAW,UAAU;AAAA,EACrB,SAAS,UAAU;AAAA;AAAA,EAEnB,QAAQ,UAAU;AAAA,EAClB,aAAa,UAAU;AAAA,EACvB,SAAS,UAAU;AACrB;;"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from "react-admin";
|
|
3
|
-
import { useEffect } from "react";
|
|
4
|
-
import { useFormContext } from "react-hook-form";
|
|
5
|
-
import PropTypes from "prop-types";
|
|
6
|
-
import { L as Loading } from "./Loading.UJl_3_cf.js";
|
|
7
|
-
const OrganizationSubmitButton = ({ title, isLoading, endIcon, styles, handleState, enabled }) => {
|
|
8
|
-
const form = useFormContext();
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
if (handleState) {
|
|
11
|
-
handleState(form.formState.isValid);
|
|
12
|
-
}
|
|
13
|
-
}, [form.formState.isValid, handleState]);
|
|
14
|
-
return /* @__PURE__ */ jsx(
|
|
15
|
-
Button,
|
|
16
|
-
{
|
|
17
|
-
disabled: !form.formState.isValid && !enabled,
|
|
18
|
-
variant: "outlined",
|
|
19
|
-
color: "primary",
|
|
20
|
-
type: "submit",
|
|
21
|
-
size: "large",
|
|
22
|
-
label: isLoading ? "" : title,
|
|
23
|
-
endIcon,
|
|
24
|
-
sx: styles,
|
|
25
|
-
children: isLoading && /* @__PURE__ */ jsx(Loading, { color: "error", sx: { pl: "10px" }, size: 26 })
|
|
26
|
-
}
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
OrganizationSubmitButton.propTypes = {
|
|
30
|
-
title: PropTypes.string.isRequired,
|
|
31
|
-
isLoading: PropTypes.bool,
|
|
32
|
-
endIcon: PropTypes.element,
|
|
33
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
34
|
-
styles: PropTypes.object,
|
|
35
|
-
handleState: PropTypes.func,
|
|
36
|
-
enabled: PropTypes.bool
|
|
37
|
-
};
|
|
38
|
-
export {
|
|
39
|
-
OrganizationSubmitButton as O
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=OrganisationSubmitButton.D3w1nG1X.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrganisationSubmitButton.D3w1nG1X.js","sources":["../../src/components/organizations/OrganisationSubmitButton.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"],"names":[],"mappings":";;;;;;AAuBA,MAAM,2BAA2B,CAAC,EAAE,OAAO,WAAW,SAAS,QAAQ,aAAa,cAAc;AAChG,QAAM,OAAO,eAAA;AAEb,YAAU,MAAM;AACd,QAAI,aAAa;AACf,kBAAY,KAAK,UAAU,OAAO;AAAA,IACpC;AAAA,EACF,GAAG,CAAC,KAAK,UAAU,SAAS,WAAW,CAAC;AAExC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU,CAAC,KAAK,UAAU,WAAW,CAAC;AAAA,MACtC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,OAAO,YAAY,KAAK;AAAA,MACxB;AAAA,MACA,IAAI;AAAA,MAEH,UAAA,aAAa,oBAAC,SAAA,EAAQ,OAAM,SAAQ,IAAI,EAAE,IAAI,UAAU,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAGzE;AAGA,yBAAyB,YAAY;AAAA,EACnC,OAAO,UAAU,OAAO;AAAA,EACxB,WAAW,UAAU;AAAA,EACrB,SAAS,UAAU;AAAA;AAAA,EAEnB,QAAQ,UAAU;AAAA,EAClB,aAAa,UAAU;AAAA,EACvB,SAAS,UAAU;AACrB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServicesEdit.BUAbbXgV.js","sources":["../../src/components/services/ServicesDelete.jsx","../../src/components/services/ServicesEdit.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, Typography, Stack } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nimport Popup from '../common/Popup.jsx';\n\nconst ServicesDelete = ({ onClose, onConfirm, selectedService, isLoading }) => {\n return (\n <Popup\n title=\"Delete service\"\n onClose={isLoading ? () => {} : onClose}\n isOpen={Boolean(selectedService)}\n >\n <Typography>Are you sure you want to delete {selectedService} service?</Typography>\n <Stack sx={styles.buttonBlock}>\n <Button\n onClick={onConfirm}\n disabled={isLoading}\n variant=\"outlined\"\n sx={styles.button}\n autoFocus\n >\n Delete\n </Button>\n <Button\n onClick={onClose}\n disabled={isLoading}\n variant=\"outlined\"\n sx={[styles.button, styles.cancelButton]}\n >\n Cancel\n </Button>\n </Stack>\n </Popup>\n );\n};\n\nconst styles = {\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row-reverse',\n marginTop: '40px',\n justifyContent: 'center',\n },\n button: {\n px: 4,\n py: 1,\n fontSize: '16px',\n width: '160px',\n },\n cancelButton: { marginRight: '20px', color: 'text.primary', borderColor: 'secondary.light' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServicesDelete.propTypes = {\n onClose: PropTypes.func,\n onConfirm: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n selectedService: PropTypes.object,\n isLoading: PropTypes.bool,\n};\n\nexport default ServicesDelete;\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 { useState, useCallback } from 'react';\nimport { Form, TextInput, SaveButton, required } from 'react-admin';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport PropTypes from 'prop-types';\nimport { Stack } from '@mui/material';\nimport { useIsIssuingInspection } from '@/pages/services/hooks/useIsIssuingInspection';\n\nimport Popup from '../common/Popup.jsx';\nimport { validateServiceEndpoint } from '../organizations/CreateOrganization.utils';\n\nconst ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) => {\n const { isIssuingOrInspection, isCAO } = useIsIssuingInspection({ id: selectedService?.type });\n const [isInterceptOnCreateOpen, setIsInterceptOnCreateOpen] = useState(false);\n const [selectedCAO, setSelectedCAO] = useState(\n isIssuingOrInspection ? selectedService?.serviceEndpoint.split('#')[0] : null,\n );\n const handleOnSave = useCallback(\n (data) => {\n onSave(data);\n if (InterceptOnCreate) {\n setSelectedCAO(() => data.serviceEndpoint.split('#')[0]);\n setIsInterceptOnCreateOpen(() => true);\n }\n },\n [onSave, InterceptOnCreate],\n );\n\n const handleOnClose = useCallback(() => {\n setIsInterceptOnCreateOpen(false);\n onClose();\n }, [onClose]);\n\n const isModifyingServiceEnabled = !!InterceptOnCreate;\n\n return (\n <>\n <Popup\n title=\"Edit your service details here:\"\n onClose={onClose}\n isOpen={Boolean(selectedService)}\n >\n <Form\n record={{ serviceEndpoint: selectedService?.serviceEndpoint }}\n onSubmit={handleOnSave}\n mode=\"onChange\"\n >\n <FormContent\n isIssuingOrInspection={isIssuingOrInspection}\n isModifyingServiceEnabled={isModifyingServiceEnabled}\n />\n </Form>\n </Popup>\n <InterceptOnCreate\n isInterceptOnCreateOpen={isInterceptOnCreateOpen}\n serviceId={selectedService?.id}\n onNext={() => onClose()}\n onClose={handleOnClose}\n isIssueOrInspection={isIssuingOrInspection}\n selectedCAO={selectedCAO}\n isCAO={isCAO}\n />\n </>\n );\n};\n\nconst FormContent = ({ isIssuingOrInspection, isModifyingServiceEnabled }) => {\n const validateArray = [required('Service endpoint URL field is required')];\n if (!isIssuingOrInspection) {\n validateArray.push(...validateServiceEndpoint);\n }\n return (\n <Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"Service endpoint URL\"\n validate={validateArray}\n parse={(value) => value.trim()}\n />\n <SaveButton\n variant=\"outlined\"\n icon={null}\n label=\"Save\"\n sx={sx.saveButton}\n alwaysEnable={isModifyingServiceEnabled}\n />\n </Stack>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nFormContent.propTypes = {\n isIssuingOrInspection: PropTypes.bool.isRequired,\n isModifyingServiceEnabled: PropTypes.bool.isRequired,\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServicesEdit.propTypes = {\n onClose: PropTypes.func,\n onSave: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n selectedService: PropTypes.object,\n InterceptOnCreate: PropTypes.elementType,\n};\n\nconst sx = {\n saveButton: { width: 'fit-content', alignSelf: 'center', px: 4, py: 1, mt: 2 },\n};\n\nexport default ServicesEdit;\n"],"names":["jsxs","Popup","Typography","Stack","jsx","Button","useIsIssuingInspection","useState","useCallback","Fragment","Form","required","validateServiceEndpoint","TextInput","SaveButton"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServicesEdit.CrtEcP_7.js","sources":["../../src/components/services/ServicesDelete.jsx","../../src/components/services/ServicesEdit.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, Typography, Stack } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nimport Popup from '../common/Popup.jsx';\n\nconst ServicesDelete = ({ onClose, onConfirm, selectedService, isLoading }) => {\n return (\n <Popup\n title=\"Delete service\"\n onClose={isLoading ? () => {} : onClose}\n isOpen={Boolean(selectedService)}\n >\n <Typography>Are you sure you want to delete {selectedService} service?</Typography>\n <Stack sx={styles.buttonBlock}>\n <Button\n onClick={onConfirm}\n disabled={isLoading}\n variant=\"outlined\"\n sx={styles.button}\n autoFocus\n >\n Delete\n </Button>\n <Button\n onClick={onClose}\n disabled={isLoading}\n variant=\"outlined\"\n sx={[styles.button, styles.cancelButton]}\n >\n Cancel\n </Button>\n </Stack>\n </Popup>\n );\n};\n\nconst styles = {\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row-reverse',\n marginTop: '40px',\n justifyContent: 'center',\n },\n button: {\n px: 4,\n py: 1,\n fontSize: '16px',\n width: '160px',\n },\n cancelButton: { marginRight: '20px', color: 'text.primary', borderColor: 'secondary.light' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServicesDelete.propTypes = {\n onClose: PropTypes.func,\n onConfirm: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n selectedService: PropTypes.object,\n isLoading: PropTypes.bool,\n};\n\nexport default ServicesDelete;\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 { useState, useCallback } from 'react';\nimport { Form, TextInput, SaveButton, required } from 'react-admin';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport PropTypes from 'prop-types';\nimport { Stack } from '@mui/material';\nimport { useIsIssuingInspection } from '@/pages/services/hooks/useIsIssuingInspection';\n\nimport Popup from '../common/Popup.jsx';\nimport { validateServiceEndpoint } from '../organizations/CreateOrganization.utils';\n\nconst ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) => {\n const { isIssuingOrInspection, isCAO } = useIsIssuingInspection({ id: selectedService?.type });\n const [isInterceptOnCreateOpen, setIsInterceptOnCreateOpen] = useState(false);\n const [selectedCAO, setSelectedCAO] = useState(\n isIssuingOrInspection ? selectedService?.serviceEndpoint.split('#')[0] : null,\n );\n const handleOnSave = useCallback(\n (data) => {\n onSave(data);\n if (InterceptOnCreate) {\n setSelectedCAO(() => data.serviceEndpoint.split('#')[0]);\n setIsInterceptOnCreateOpen(() => true);\n }\n },\n [onSave, InterceptOnCreate],\n );\n\n const handleOnClose = useCallback(() => {\n setIsInterceptOnCreateOpen(false);\n onClose();\n }, [onClose]);\n\n const isModifyingServiceEnabled = !!InterceptOnCreate;\n\n return (\n <>\n <Popup\n title=\"Edit your service details here:\"\n onClose={onClose}\n isOpen={Boolean(selectedService)}\n >\n <Form\n record={{ serviceEndpoint: selectedService?.serviceEndpoint }}\n onSubmit={handleOnSave}\n mode=\"onChange\"\n >\n <FormContent\n isIssuingOrInspection={isIssuingOrInspection}\n isModifyingServiceEnabled={isModifyingServiceEnabled}\n />\n </Form>\n </Popup>\n <InterceptOnCreate\n isInterceptOnCreateOpen={isInterceptOnCreateOpen}\n serviceId={selectedService?.id}\n onNext={() => onClose()}\n onClose={handleOnClose}\n isIssueOrInspection={isIssuingOrInspection}\n selectedCAO={selectedCAO}\n isCAO={isCAO}\n />\n </>\n );\n};\n\nconst FormContent = ({ isIssuingOrInspection, isModifyingServiceEnabled }) => {\n const validateArray = [required('Service endpoint URL field is required')];\n if (!isIssuingOrInspection) {\n validateArray.push(...validateServiceEndpoint);\n }\n return (\n <Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"Service endpoint URL\"\n validate={validateArray}\n parse={(value) => value.trim()}\n />\n <SaveButton\n variant=\"outlined\"\n icon={null}\n label=\"Save\"\n sx={sx.saveButton}\n alwaysEnable={isModifyingServiceEnabled}\n />\n </Stack>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nFormContent.propTypes = {\n isIssuingOrInspection: PropTypes.bool.isRequired,\n isModifyingServiceEnabled: PropTypes.bool.isRequired,\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServicesEdit.propTypes = {\n onClose: PropTypes.func,\n onSave: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n selectedService: PropTypes.object,\n InterceptOnCreate: PropTypes.elementType,\n};\n\nconst sx = {\n saveButton: { width: 'fit-content', alignSelf: 'center', px: 4, py: 1, mt: 2 },\n};\n\nexport default ServicesEdit;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetInvitationService.B0ezxTzf.js","sources":["../../src/components/invitations/InvitationServiceInfo.jsx","../../src/components/invitations/InvitationsListContainer.jsx","../../src/components/invitations/SetInvitationEmail.jsx","../../src/components/invitations/SetKeyIndividuals.jsx","../../src/components/invitations/SetInvitationService.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { Stack, Box, Typography, Link } from '@mui/material';\nimport { serviceTypesIssuingOrInspection, CREDENTIAL_TYPES_IDS } from '@/utils/serviceTypes';\nimport { chainNames } from '@/utils/chainNames';\nimport { useConfig } from '@/utils/ConfigContext';\n\nconst getServiceKey = (key) => {\n switch (key) {\n case 'id': {\n return 'Service ID';\n }\n case 'type': {\n return 'Service type';\n }\n case 'serviceEndpoint': {\n return 'Service endpoint';\n }\n\n default:\n return key;\n }\n};\n\nconst getServiceTitle = (value, credentialTypes) => {\n let serviceType;\n if (value === 'VlcContactIssuer_v1') {\n serviceType = credentialTypes.includes('EmailV1.0')\n ? CREDENTIAL_TYPES_IDS.VLC_CONTACT_ISSUER_EMAIL\n : CREDENTIAL_TYPES_IDS.VLC_CONTACT_ISSUER_PHONE;\n } else {\n serviceType = value;\n }\n return serviceTypesIssuingOrInspection.find((item) => item.id === serviceType).title;\n};\n\nconst InvitationServiceInfo = ({ inviteeService, agreementStyles }) => {\n const config = useConfig();\n return (\n <>\n {inviteeService &&\n inviteeService?.map((service) => {\n return (\n <Stack sx={sxStyles.serviceContainer} key={`service-${service.id}`}>\n {Object.entries(service).map(([serviceKey, value]) => {\n if (serviceKey === 'credentialTypes') {\n return undefined;\n }\n\n const serviceValue =\n serviceKey === 'type' ? getServiceTitle(value, service.credentialTypes) : value;\n\n return (\n <Box key={`service-${service.id}-${serviceKey}`} sx={sxStyles.field}>\n <Typography variant=\"pm\">{getServiceKey(serviceKey)}</Typography>\n <Typography variant=\"h5\" sx={sxStyles.valueText}>\n {serviceValue}\n </Typography>\n </Box>\n );\n })}\n </Stack>\n );\n })}\n {config.chainName !== chainNames.testnet && (\n <Typography variant=\"pm\" sx={[sxStyles.agreement, agreementStyles]}>\n <span>By clicking Save, you agree to our </span>\n <Link\n target=\"_blank\"\n href=\"https://www.velocitynetwork.foundation/main2/participation-agreements\"\n >\n Participant Agreement\n </Link>\n </Typography>\n )}\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nInvitationServiceInfo.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n inviteeService: PropTypes.array,\n // eslint-disable-next-line react/forbid-prop-types\n agreementStyles: PropTypes.array,\n};\n\nconst sxStyles = {\n serviceContainer: {\n backgroundColor: (theme) => theme.customColors.grey1,\n borderRadius: '12px',\n p: '32px 40px',\n mt: '25px',\n },\n agreement: {\n color: (theme) => theme.customColors.grey2,\n textAlign: 'center',\n mt: 5,\n display: 'block',\n },\n valueText: {\n marginTop: 1,\n 'overflow-wrap': 'break-word',\n },\n field: {\n marginBottom: 4,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n};\n\nexport default InvitationServiceInfo;\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 { Link } from 'react-router';\nimport PropTypes from 'prop-types';\nimport { Button, Stack, Grid, Paper, Typography, TablePagination } from '@mui/material';\nimport { useCallback, useEffect, useState } from 'react';\nimport ListItem from '../common/ListItem.jsx';\n\nconst getDateAndTimeFormated = (dateString) => {\n const twoDigits = (number) => `0${number}`.slice(-2);\n const date = new Date(dateString);\n return `${date.getFullYear()}-${twoDigits(date.getMonth() + 1)}-${date.getDate()} ${twoDigits(\n date.getHours(),\n )}:${twoDigits(date.getMinutes())}`;\n};\n\nconst ROWS_PER_PAGE = 10;\n\nconst InvitationsListContainer = ({\n invitations,\n withdrawAction,\n resendAction,\n onCreateInvite,\n changePage,\n currentPage,\n invitationToDelete,\n onUndoDelete,\n}) => {\n const [pagesCount, setPagesCount] = useState(-1);\n const getStatus = (invitation) => {\n if (invitation.acceptedAt) {\n return { title: 'ACCEPTED', color: 'primary.success' };\n }\n if (new Date() >= new Date(invitation.expiresAt)) {\n return { title: 'EXPIRED', color: 'primary.main' };\n }\n return { title: 'INVITED', color: 'primary.warning' };\n };\n\n const updatePagination = useCallback(\n (nextPage) => {\n if (invitations.length === ROWS_PER_PAGE || nextPage < currentPage) {\n setPagesCount(-1);\n changePage(nextPage);\n } else {\n setPagesCount(currentPage * ROWS_PER_PAGE + invitations.length);\n }\n },\n [changePage, currentPage, invitations.length],\n );\n\n useEffect(() => {\n if (invitations.length < ROWS_PER_PAGE) {\n setPagesCount(currentPage * ROWS_PER_PAGE + invitations.length);\n }\n }, [currentPage, invitations]);\n\n return (\n <>\n <Stack sx={sx.inviteButton}>\n <Button variant=\"outlined\" onClick={onCreateInvite}>\n Invite Client +\n </Button>\n </Stack>\n\n {!!invitations.length &&\n invitations.map((invitation) => (\n <ListItem\n key={invitation.id}\n id={invitation.id}\n markForDelete={invitationToDelete === invitation.id}\n onUndoDelete={onUndoDelete}\n undoText=\"INVITATION WAS DELETED\"\n title={invitation.inviteeProfile.name}\n status={getStatus(invitation)}\n date={getDateAndTimeFormated(invitation.acceptedAt || invitation.updatedAt)}\n showActions={!invitation.acceptedAt}\n actions={[resendAction, withdrawAction]}\n email={invitation.inviteeEmail}\n content={invitation.inviteeService.map((service) => [\n { name: 'service type', value: service.type },\n {\n name: 'service endpoint',\n value: service.serviceEndpoint,\n },\n ])}\n />\n ))}\n {/* TODO Fix paging after api retun total */}\n {(invitations.length > 0 || currentPage > 0) && (\n <TablePagination\n component=\"div\"\n count={pagesCount}\n page={currentPage}\n onPageChange={(e, nextPage) => updatePagination(nextPage)}\n rowsPerPage={ROWS_PER_PAGE}\n rowsPerPageOptions={[]}\n />\n )}\n\n {!invitations.length && currentPage === 0 && (\n <Grid container>\n <Grid item xs={12}>\n <Paper sx={sx.paper} elevation={1}>\n <Typography sx={sx.text}>\n {'Send your first invitation '}\n <Link to=\"/invitations/create/step-1\">\n <Typography sx={sx.link} component=\"a\">\n now\n </Typography>\n </Link>\n </Typography>\n </Paper>\n </Grid>\n </Grid>\n )}\n </>\n );\n};\n\nexport default InvitationsListContainer;\n\nconst sx = {\n inviteButton: {\n mb: 2,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'flex-end',\n },\n paper: {\n height: 158,\n minWidth: 275,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n border: 'none',\n boxShadow: '0px 0px 4px #0000001a, 0px 6px 12px #0000001a',\n },\n text: {\n fontSize: 16,\n textAlign: 'center',\n fontWeight: 600,\n color: 'text.primary',\n },\n link: {\n color: 'primary.main',\n textDecoration: 'underline',\n fontWeight: 600,\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nInvitationsListContainer.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n invitations: PropTypes.array,\n // eslint-disable-next-line react/forbid-prop-types\n withdrawAction: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n resendAction: PropTypes.object,\n onCreateInvite: PropTypes.func.isRequired,\n changePage: PropTypes.func.isRequired,\n currentPage: PropTypes.number.isRequired,\n invitationToDelete: PropTypes.string,\n onUndoDelete: PropTypes.func.isRequired,\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 { useState } from 'react';\nimport { Box, InputAdornment } from '@mui/material';\nimport CheckCircleIcon from '@mui/icons-material/CheckCircle';\nimport { Form, TextInput, required } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport { validateEmail } from '../organizations/CreateOrganization.utils';\nimport OrganizationSubmitButton from '../organizations/OrganisationSubmitButton.jsx';\n\nconst SetInvitationEmail = ({ children, onSubmit, defaultValue, loading }) => {\n const [isEmailValid, setIsEmailValid] = useState(false);\n\n return (\n <Form mode=\"onChange\" onSubmit={onSubmit}>\n <TextInput\n fullWidth\n label=\"Email\"\n type=\"email\"\n source=\"inviteeEmail\"\n defaultValue={defaultValue}\n validate={[required(), ...validateEmail]}\n InputProps={{\n endAdornment: isEmailValid ? (\n <InputAdornment position=\"end\">\n <CheckCircleIcon color=\"success\" />\n </InputAdornment>\n ) : null,\n }}\n />\n\n <Box sx={styles.buttonBlock}>\n {children}\n <OrganizationSubmitButton\n styles={styles.inviteButton}\n title=\"Invite client\"\n handleState={setIsEmailValid}\n isLoading={loading}\n />\n </Box>\n </Form>\n );\n};\n\nconst styles = {\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: 2,\n flex: 1,\n },\n backButton: {\n px: 4,\n py: 1,\n fontSize: '16px',\n width: '160px',\n marginRight: '20px',\n borderColor: 'secondary.light',\n color: 'text.primary',\n },\n inviteButton: {\n width: '160px',\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nSetInvitationEmail.propTypes = {\n children: PropTypes.node.isRequired,\n onSubmit: PropTypes.func.isRequired,\n defaultValue: PropTypes.string,\n loading: PropTypes.bool,\n};\n\nexport default SetInvitationEmail;\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, Typography, Tooltip, Button } from '@mui/material';\nimport { Form, FormDataConsumer, TextInput, maxLength, required } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport InfoIcon from '@mui/icons-material/Info';\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft';\nimport { validateEmail } from '../organizations/CreateOrganization.utils';\nimport OrganizationSubmitButton from '../organizations/OrganisationSubmitButton.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\n\nconst SetKeyIndividuals = ({ children, onSubmit, defaultValues, onBack, loading }) => {\n return (\n <Form mode=\"onChange\" onSubmit={onSubmit} defaultValues={defaultValues}>\n <Stack>\n <Stack direction=\"row\" spacing={1.5} my={2}>\n <Typography variant=\"h4\" sx={styles.subTitle}>\n Administrator’s Details\n </Typography>\n <Box mt={1}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Typography variant=\"body2\" sx={styles.infoText}>\n The invitation will be sent to this email.\n </Typography>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n />\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n />\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n <TextInput fullWidth label=\"Job Title\" source=\"adminTitle\" validate={[maxLength(1024)]} />\n <Stack direction=\"row\" spacing={1.5} my={2}>\n <Typography variant=\"h4\" sx={styles.subTitle}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={1}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Email\" source=\"signatoryEmail\" validate={validateEmail} />\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 <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024)]}\n />\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024)]}\n />\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024)]}\n />\n </Stack>\n\n <Box sx={styles.buttonBlock}>\n <FormDataConsumer>\n {({ formData }) => (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={styles.button}\n onClick={() => onBack(formData)}\n startIcon={<KeyboardArrowLeftIcon />}\n >\n Back\n </Button>\n )}\n </FormDataConsumer>\n {children}\n\n <OrganizationSubmitButton\n title=\"Invite Client\"\n styles={styles.button}\n isLoading={loading}\n />\n </Box>\n </Form>\n );\n};\n\nconst styles = {\n infoText: {\n color: 'primary.main',\n fontWeight: '600',\n marginTop: 1,\n marginBottom: 1.5,\n },\n subTitle: {\n fontSize: '18px',\n fontWeight: '600',\n },\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: 2,\n flex: 1,\n gap: '1em',\n },\n button: { px: 0, py: 1, fontSize: '16px', width: '160px' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nSetKeyIndividuals.propTypes = {\n children: PropTypes.node.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onBack: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n loading: PropTypes.bool,\n};\n\nexport default SetKeyIndividuals;\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 { useCallback, useMemo } from 'react';\nimport { Form, AutocompleteInput, required } from 'react-admin';\nimport { Box, Stack } from '@mui/material';\nimport { kebabCase } from 'lodash/string';\nimport PropTypes from 'prop-types';\n\nimport {\n serviceTypesIssuingOrInspection,\n credentialTypesByServiceTypes,\n} from '@/utils/serviceTypes';\nimport OrganizationSubmitButton from '../organizations/OrganisationSubmitButton.jsx';\n\nconst SetInvitationService = ({ children, onSubmit, defaultValues, serviceEndpointsOptions }) => {\n const defaultFormData = useMemo(() => {\n if (!defaultValues && serviceEndpointsOptions.length === 1) {\n return { serviceEndpoint: serviceEndpointsOptions?.[0]?.id };\n }\n return defaultValues;\n }, [defaultValues, serviceEndpointsOptions]);\n\n const handleSubmit = useCallback(\n (data) => {\n const type = data.type.match(/.+v1/);\n const kebabType = kebabCase(type[0]);\n onSubmit({\n ...data,\n type: type[0],\n id: `${kebabType}-1`,\n credentialTypes: credentialTypesByServiceTypes[data.type],\n });\n },\n [onSubmit],\n );\n\n const autoCompleteInputProps =\n serviceEndpointsOptions.length === 1 ? { InputProps: { disabled: true } } : {};\n\n return (\n <Form onSubmit={handleSubmit} defaultValues={defaultFormData}>\n <Stack sx={styles.endpointForm}>\n <AutocompleteInput\n label=\"Select service\"\n source=\"type\"\n optionText=\"title\"\n choices={serviceTypesIssuingOrInspection}\n validate={[required()]}\n />\n <AutocompleteInput\n label=\"Service endpoint\"\n source=\"serviceEndpoint\"\n choices={serviceEndpointsOptions}\n TextFieldProps={autoCompleteInputProps}\n validate={[required()]}\n />\n <Box sx={styles.buttonBlock}>\n {children}\n <OrganizationSubmitButton title=\"Next\" styles={styles.button} />\n </Box>\n </Stack>\n </Form>\n );\n};\n\nconst styles = {\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: '40px',\n flex: 1,\n },\n endpointForm: {\n marginTop: '30px',\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nSetInvitationService.propTypes = {\n children: PropTypes.node.isRequired,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n serviceEndpointsOptions: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n }),\n ),\n};\n\nexport default SetInvitationService;\n"],"names":["Link","styles"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetInvitationService.BUZqAilX.js","sources":["../../src/components/invitations/InvitationServiceInfo.jsx","../../src/components/invitations/InvitationsListContainer.jsx","../../src/components/invitations/SetInvitationEmail.jsx","../../src/components/invitations/SetKeyIndividuals.jsx","../../src/components/invitations/SetInvitationService.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { Stack, Box, Typography, Link } from '@mui/material';\nimport { serviceTypesIssuingOrInspection, CREDENTIAL_TYPES_IDS } from '@/utils/serviceTypes';\nimport { chainNames } from '@/utils/chainNames';\nimport { useConfig } from '@/utils/ConfigContext';\n\nconst getServiceKey = (key) => {\n switch (key) {\n case 'id': {\n return 'Service ID';\n }\n case 'type': {\n return 'Service type';\n }\n case 'serviceEndpoint': {\n return 'Service endpoint';\n }\n\n default:\n return key;\n }\n};\n\nconst getServiceTitle = (value, credentialTypes) => {\n let serviceType;\n if (value === 'VlcContactIssuer_v1') {\n serviceType = credentialTypes.includes('EmailV1.0')\n ? CREDENTIAL_TYPES_IDS.VLC_CONTACT_ISSUER_EMAIL\n : CREDENTIAL_TYPES_IDS.VLC_CONTACT_ISSUER_PHONE;\n } else {\n serviceType = value;\n }\n return serviceTypesIssuingOrInspection.find((item) => item.id === serviceType).title;\n};\n\nconst InvitationServiceInfo = ({ inviteeService, agreementStyles }) => {\n const config = useConfig();\n return (\n <>\n {inviteeService &&\n inviteeService?.map((service) => {\n return (\n <Stack sx={sxStyles.serviceContainer} key={`service-${service.id}`}>\n {Object.entries(service).map(([serviceKey, value]) => {\n if (serviceKey === 'credentialTypes') {\n return undefined;\n }\n\n const serviceValue =\n serviceKey === 'type' ? getServiceTitle(value, service.credentialTypes) : value;\n\n return (\n <Box key={`service-${service.id}-${serviceKey}`} sx={sxStyles.field}>\n <Typography variant=\"pm\">{getServiceKey(serviceKey)}</Typography>\n <Typography variant=\"h5\" sx={sxStyles.valueText}>\n {serviceValue}\n </Typography>\n </Box>\n );\n })}\n </Stack>\n );\n })}\n {config.chainName !== chainNames.testnet && (\n <Typography variant=\"pm\" sx={[sxStyles.agreement, agreementStyles]}>\n <span>By clicking Save, you agree to our </span>\n <Link\n target=\"_blank\"\n href=\"https://www.velocitynetwork.foundation/main2/participation-agreements\"\n >\n Participant Agreement\n </Link>\n </Typography>\n )}\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nInvitationServiceInfo.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n inviteeService: PropTypes.array,\n // eslint-disable-next-line react/forbid-prop-types\n agreementStyles: PropTypes.array,\n};\n\nconst sxStyles = {\n serviceContainer: {\n backgroundColor: (theme) => theme.customColors.grey1,\n borderRadius: '12px',\n p: '32px 40px',\n mt: '25px',\n },\n agreement: {\n color: (theme) => theme.customColors.grey2,\n textAlign: 'center',\n mt: 5,\n display: 'block',\n },\n valueText: {\n marginTop: 1,\n 'overflow-wrap': 'break-word',\n },\n field: {\n marginBottom: 4,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n};\n\nexport default InvitationServiceInfo;\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 { Link } from 'react-router';\nimport PropTypes from 'prop-types';\nimport { Button, Stack, Grid, Paper, Typography, TablePagination } from '@mui/material';\nimport { useCallback, useEffect, useState } from 'react';\nimport ListItem from '../common/ListItem.jsx';\n\nconst getDateAndTimeFormated = (dateString) => {\n const twoDigits = (number) => `0${number}`.slice(-2);\n const date = new Date(dateString);\n return `${date.getFullYear()}-${twoDigits(date.getMonth() + 1)}-${date.getDate()} ${twoDigits(\n date.getHours(),\n )}:${twoDigits(date.getMinutes())}`;\n};\n\nconst ROWS_PER_PAGE = 10;\n\nconst InvitationsListContainer = ({\n invitations,\n withdrawAction,\n resendAction,\n onCreateInvite,\n changePage,\n currentPage,\n invitationToDelete,\n onUndoDelete,\n}) => {\n const [pagesCount, setPagesCount] = useState(-1);\n const getStatus = (invitation) => {\n if (invitation.acceptedAt) {\n return { title: 'ACCEPTED', color: 'primary.success' };\n }\n if (new Date() >= new Date(invitation.expiresAt)) {\n return { title: 'EXPIRED', color: 'primary.main' };\n }\n return { title: 'INVITED', color: 'primary.warning' };\n };\n\n const updatePagination = useCallback(\n (nextPage) => {\n if (invitations.length === ROWS_PER_PAGE || nextPage < currentPage) {\n setPagesCount(-1);\n changePage(nextPage);\n } else {\n setPagesCount(currentPage * ROWS_PER_PAGE + invitations.length);\n }\n },\n [changePage, currentPage, invitations.length],\n );\n\n useEffect(() => {\n if (invitations.length < ROWS_PER_PAGE) {\n setPagesCount(currentPage * ROWS_PER_PAGE + invitations.length);\n }\n }, [currentPage, invitations]);\n\n return (\n <>\n <Stack sx={sx.inviteButton}>\n <Button variant=\"outlined\" onClick={onCreateInvite}>\n Invite Client +\n </Button>\n </Stack>\n\n {!!invitations.length &&\n invitations.map((invitation) => (\n <ListItem\n key={invitation.id}\n id={invitation.id}\n markForDelete={invitationToDelete === invitation.id}\n onUndoDelete={onUndoDelete}\n undoText=\"INVITATION WAS DELETED\"\n title={invitation.inviteeProfile.name}\n status={getStatus(invitation)}\n date={getDateAndTimeFormated(invitation.acceptedAt || invitation.updatedAt)}\n showActions={!invitation.acceptedAt}\n actions={[resendAction, withdrawAction]}\n email={invitation.inviteeEmail}\n content={invitation.inviteeService.map((service) => [\n { name: 'service type', value: service.type },\n {\n name: 'service endpoint',\n value: service.serviceEndpoint,\n },\n ])}\n />\n ))}\n {/* TODO Fix paging after api retun total */}\n {(invitations.length > 0 || currentPage > 0) && (\n <TablePagination\n component=\"div\"\n count={pagesCount}\n page={currentPage}\n onPageChange={(e, nextPage) => updatePagination(nextPage)}\n rowsPerPage={ROWS_PER_PAGE}\n rowsPerPageOptions={[]}\n />\n )}\n\n {!invitations.length && currentPage === 0 && (\n <Grid container>\n <Grid item xs={12}>\n <Paper sx={sx.paper} elevation={1}>\n <Typography sx={sx.text}>\n {'Send your first invitation '}\n <Link to=\"/invitations/create/step-1\">\n <Typography sx={sx.link} component=\"a\">\n now\n </Typography>\n </Link>\n </Typography>\n </Paper>\n </Grid>\n </Grid>\n )}\n </>\n );\n};\n\nexport default InvitationsListContainer;\n\nconst sx = {\n inviteButton: {\n mb: 2,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'flex-end',\n },\n paper: {\n height: 158,\n minWidth: 275,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n border: 'none',\n boxShadow: '0px 0px 4px #0000001a, 0px 6px 12px #0000001a',\n },\n text: {\n fontSize: 16,\n textAlign: 'center',\n fontWeight: 600,\n color: 'text.primary',\n },\n link: {\n color: 'primary.main',\n textDecoration: 'underline',\n fontWeight: 600,\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nInvitationsListContainer.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n invitations: PropTypes.array,\n // eslint-disable-next-line react/forbid-prop-types\n withdrawAction: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n resendAction: PropTypes.object,\n onCreateInvite: PropTypes.func.isRequired,\n changePage: PropTypes.func.isRequired,\n currentPage: PropTypes.number.isRequired,\n invitationToDelete: PropTypes.string,\n onUndoDelete: PropTypes.func.isRequired,\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 { useState } from 'react';\nimport { Box, InputAdornment } from '@mui/material';\nimport CheckCircleIcon from '@mui/icons-material/CheckCircle';\nimport { Form, TextInput, required } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport { validateEmail } from '../organizations/CreateOrganization.utils';\nimport OrganizationSubmitButton from '../organizations/OrganisationSubmitButton.jsx';\n\nconst SetInvitationEmail = ({ children, onSubmit, defaultValue, loading }) => {\n const [isEmailValid, setIsEmailValid] = useState(false);\n\n return (\n <Form mode=\"onChange\" onSubmit={onSubmit}>\n <TextInput\n fullWidth\n label=\"Email\"\n type=\"email\"\n source=\"inviteeEmail\"\n defaultValue={defaultValue}\n validate={[required(), ...validateEmail]}\n InputProps={{\n endAdornment: isEmailValid ? (\n <InputAdornment position=\"end\">\n <CheckCircleIcon color=\"success\" />\n </InputAdornment>\n ) : null,\n }}\n />\n\n <Box sx={styles.buttonBlock}>\n {children}\n <OrganizationSubmitButton\n styles={styles.inviteButton}\n title=\"Invite client\"\n handleState={setIsEmailValid}\n isLoading={loading}\n />\n </Box>\n </Form>\n );\n};\n\nconst styles = {\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: 2,\n flex: 1,\n },\n backButton: {\n px: 4,\n py: 1,\n fontSize: '16px',\n width: '160px',\n marginRight: '20px',\n borderColor: 'secondary.light',\n color: 'text.primary',\n },\n inviteButton: {\n width: '160px',\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nSetInvitationEmail.propTypes = {\n children: PropTypes.node.isRequired,\n onSubmit: PropTypes.func.isRequired,\n defaultValue: PropTypes.string,\n loading: PropTypes.bool,\n};\n\nexport default SetInvitationEmail;\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, Typography, Tooltip, Button } from '@mui/material';\nimport { Form, FormDataConsumer, TextInput, maxLength, required } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport InfoIcon from '@mui/icons-material/Info';\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft';\nimport { validateEmail } from '../organizations/CreateOrganization.utils';\nimport OrganizationSubmitButton from '../organizations/OrganisationSubmitButton.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\n\nconst SetKeyIndividuals = ({ children, onSubmit, defaultValues, onBack, loading }) => {\n return (\n <Form mode=\"onChange\" onSubmit={onSubmit} defaultValues={defaultValues}>\n <Stack>\n <Stack direction=\"row\" spacing={1.5} my={2}>\n <Typography variant=\"h4\" sx={styles.subTitle}>\n Administrator’s Details\n </Typography>\n <Box mt={1}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Typography variant=\"body2\" sx={styles.infoText}>\n The invitation will be sent to this email.\n </Typography>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n />\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n />\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n <TextInput fullWidth label=\"Job Title\" source=\"adminTitle\" validate={[maxLength(1024)]} />\n <Stack direction=\"row\" spacing={1.5} my={2}>\n <Typography variant=\"h4\" sx={styles.subTitle}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={1}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Email\" source=\"signatoryEmail\" validate={validateEmail} />\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 <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024)]}\n />\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024)]}\n />\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024)]}\n />\n </Stack>\n\n <Box sx={styles.buttonBlock}>\n <FormDataConsumer>\n {({ formData }) => (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={styles.button}\n onClick={() => onBack(formData)}\n startIcon={<KeyboardArrowLeftIcon />}\n >\n Back\n </Button>\n )}\n </FormDataConsumer>\n {children}\n\n <OrganizationSubmitButton\n title=\"Invite Client\"\n styles={styles.button}\n isLoading={loading}\n />\n </Box>\n </Form>\n );\n};\n\nconst styles = {\n infoText: {\n color: 'primary.main',\n fontWeight: '600',\n marginTop: 1,\n marginBottom: 1.5,\n },\n subTitle: {\n fontSize: '18px',\n fontWeight: '600',\n },\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: 2,\n flex: 1,\n gap: '1em',\n },\n button: { px: 0, py: 1, fontSize: '16px', width: '160px' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nSetKeyIndividuals.propTypes = {\n children: PropTypes.node.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onBack: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n loading: PropTypes.bool,\n};\n\nexport default SetKeyIndividuals;\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 { useCallback, useMemo } from 'react';\nimport { Form, AutocompleteInput, required } from 'react-admin';\nimport { Box, Stack } from '@mui/material';\nimport { kebabCase } from 'lodash/string';\nimport PropTypes from 'prop-types';\n\nimport {\n serviceTypesIssuingOrInspection,\n credentialTypesByServiceTypes,\n} from '@/utils/serviceTypes';\nimport OrganizationSubmitButton from '../organizations/OrganisationSubmitButton.jsx';\n\nconst SetInvitationService = ({ children, onSubmit, defaultValues, serviceEndpointsOptions }) => {\n const defaultFormData = useMemo(() => {\n if (!defaultValues && serviceEndpointsOptions.length === 1) {\n return { serviceEndpoint: serviceEndpointsOptions?.[0]?.id };\n }\n return defaultValues;\n }, [defaultValues, serviceEndpointsOptions]);\n\n const handleSubmit = useCallback(\n (data) => {\n const type = data.type.match(/.+v1/);\n const kebabType = kebabCase(type[0]);\n onSubmit({\n ...data,\n type: type[0],\n id: `${kebabType}-1`,\n credentialTypes: credentialTypesByServiceTypes[data.type],\n });\n },\n [onSubmit],\n );\n\n const autoCompleteInputProps =\n serviceEndpointsOptions.length === 1 ? { InputProps: { disabled: true } } : {};\n\n return (\n <Form onSubmit={handleSubmit} defaultValues={defaultFormData}>\n <Stack sx={styles.endpointForm}>\n <AutocompleteInput\n label=\"Select service\"\n source=\"type\"\n optionText=\"title\"\n choices={serviceTypesIssuingOrInspection}\n validate={[required()]}\n />\n <AutocompleteInput\n label=\"Service endpoint\"\n source=\"serviceEndpoint\"\n choices={serviceEndpointsOptions}\n TextFieldProps={autoCompleteInputProps}\n validate={[required()]}\n />\n <Box sx={styles.buttonBlock}>\n {children}\n <OrganizationSubmitButton title=\"Next\" styles={styles.button} />\n </Box>\n </Stack>\n </Form>\n );\n};\n\nconst styles = {\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: '40px',\n flex: 1,\n },\n endpointForm: {\n marginTop: '30px',\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nSetInvitationService.propTypes = {\n children: PropTypes.node.isRequired,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n serviceEndpointsOptions: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n }),\n ),\n};\n\nexport default SetInvitationService;\n"],"names":["CREDENTIAL_TYPES_IDS","serviceTypesIssuingOrInspection","useConfig","jsxs","Fragment","jsx","Stack","Box","Typography","chainNames","Link","useState","useCallback","useEffect","Button","ListItem","TablePagination","Grid","Paper","Form","TextInput","required","validateEmail","InputAdornment","styles","OrganizationSubmitButton","Tooltip","ADMINISTRATOR_DETAILS_HINT","maxLength","SIGNATORY_DETAILS_HINT","SIGNATORY_EMAIL_HINT","FormDataConsumer","useMemo","kebabCase","credentialTypesByServiceTypes","AutocompleteInput"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.Ch4ynES2.js","sources":["../../src/pages/services/components/SecretKeysPopup/WarningSecretKeysPopup/index.jsx","../../src/utils/downloadTxtAsFile.js","../../src/pages/services/hooks/useKeyDownload.js","../../src/pages/services/utils/formatSecrets.js","../../src/pages/services/utils/getTitle.js","../../src/pages/services/components/SecretKeysPopup/ServiceSecretKeys/index.jsx","../../src/pages/services/components/SecretKeysPopup/index.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 { Box, Typography, Button, useTheme } from '@mui/material';\nimport DownloadIcon from '@mui/icons-material/Download';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\n\nimport Popup from '@/components/common/Popup.jsx';\nimport Loading from '@/components/Loading.jsx';\n\nconst titleDefault =\n 'Wait! Before you close this window, please make sure you have saved a copy of your keys';\nconst subTitleDefault =\n // eslint-disable-next-line max-len\n 'Your organization’s unique keys are critical for managing your organization’s data on Velocity Network™. This information will not be available once you close this window.';\nconst buttonLabelDefault = 'Download keys';\n\nconst WarningSecretKeysPopup = ({\n isModalOpened,\n onClose,\n title = titleDefault,\n subTitle = subTitleDefault,\n buttonLabel = buttonLabelDefault,\n isLoading = false,\n onClick,\n}) => {\n const theme = useTheme();\n\n return (\n <Popup\n onClose={onClose}\n title=\"\"\n isOpen={isModalOpened}\n mainContainerStyles={styles.mainContainer}\n isBackBoxVisible\n backBoxColor={theme.palette.warning.main}\n disableCloseButton={isLoading}\n >\n <InfoIcon color=\"warning\" sx={styles.icon} />\n <Typography sx={styles.title}>{title}</Typography>\n <Typography textAlign=\"center\">{subTitle}</Typography>\n\n <Box sx={styles.buttonBlock}>\n <Button\n variant=\"outlined\"\n endIcon={\n isLoading ? <Loading color=\"error\" sx={styles.loader} size={26} /> : <DownloadIcon />\n }\n disabled={isLoading}\n sx={styles.button}\n onClick={onClick}\n >\n {buttonLabel}\n </Button>\n </Box>\n </Popup>\n );\n};\n\nconst styles = {\n mainContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n pt: '19px',\n },\n title: {\n fontWeight: 600,\n fontSize: '32px',\n lineHeight: '39px',\n textAlign: 'center',\n mb: '32px',\n mt: '35px',\n },\n button: { px: 4, py: 1, fontSize: '16px' },\n buttonBlock: {\n marginTop: '52px',\n },\n icon: { width: '50px', height: '50px' },\n loader: { pl: '10px' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nWarningSecretKeysPopup.propTypes = {\n isModalOpened: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n onClose: PropTypes.func,\n title: PropTypes.string,\n subTitle: PropTypes.string,\n buttonLabel: PropTypes.string,\n isLoading: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nexport default WarningSecretKeysPopup;\n","/* eslint-disable better-mutation/no-mutation */\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 */\nconst download = (fileName, onLoading, onError, onClick, callback) => {\n // eslint-disable-next-line no-undef\n const request = new XMLHttpRequest();\n request.responseType = 'blob';\n request.open('GET', fileName);\n\n request.addEventListener('load', () => {\n callback();\n });\n request.onloadstart = () => {\n onClick(true);\n onLoading(true);\n };\n request.onloadend = () => {\n onLoading(false);\n };\n request.onerror = () => {\n onError(true);\n };\n request.onabort = () => {\n onError(true);\n };\n\n request.send();\n};\n/* eslint-disable better-mutation/no-mutation */\nconst downloadTxtAsFile = (text, name) => {\n // eslint-disable-next-line no-undef\n const a = document.createElement('a');\n const file = new Blob([text], { type: 'application/json' });\n\n a.href = URL.createObjectURL(file);\n a.download = name;\n a.click();\n a.remove();\n};\n\nexport default (fileName, text, onLoading, onError, onClick) => {\n download(fileName, onLoading, onError, onClick, () => {\n downloadTxtAsFile(text, fileName);\n });\n};\n","import { useState, useCallback } from 'react';\nimport downloadTxtAsFile from '@/utils/downloadTxtAsFile';\nimport { copyTextToClipboard, objectToString } from '@/utils/index.jsx';\n\nexport const useKeyDownload = () => {\n const [isDownloaded, setIsDownloaded] = useState(false);\n const [isLoadingKeys, setIsLoadingKeys] = useState(false);\n const [isLoadingKeysError, setIsLoadingKeysError] = useState(false);\n const [isCopied, setIsCopied] = useState(false);\n\n const onCopy = useCallback((secretKeys) => {\n copyTextToClipboard(objectToString(secretKeys), (error) => {\n setIsCopied(!error);\n });\n }, []);\n\n const onDownload = useCallback((secretKeys) => {\n setIsLoadingKeys(true);\n const keys = objectToString(secretKeys);\n downloadTxtAsFile(\n 'keys.json',\n keys,\n (isLoading) => setIsLoadingKeys(isLoading),\n (isError) => setIsLoadingKeysError(isError),\n (isClicked) => setIsDownloaded(isClicked),\n );\n }, []);\n\n return { isDownloaded, isLoadingKeys, isLoadingKeysError, isCopied, onDownload, onCopy };\n};\n\nexport default useKeyDownload;\n","export const formatSecrets = (secretKeys) => {\n return secretKeys\n ? [\n ...(secretKeys.keys\n ? secretKeys.keys.map((item) => ({\n ...item,\n id: item.didDocumentKey.id.replace('#', ''),\n }))\n : []),\n ...(secretKeys.authClients\n ? secretKeys.authClients.reduce(\n (acc, { clientId, clientSecret }) => [\n ...acc,\n { id: 'Client Id', key: clientId },\n { id: 'Client Secret', key: clientSecret },\n ],\n [],\n )\n : []),\n ]\n : [];\n};\n","export const getTitle = (step) => {\n switch (step) {\n case 2:\n return \"You're one step away from setting up your new service on Velocity Network™\";\n case 3:\n return 'Set a Secure Messages URL';\n case 4:\n return 'Congratulations!';\n default:\n return 'Select type of service to add';\n }\n};\n","import { useMemo } from 'react';\nimport { Box, Button, Typography } from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport InfoIcon from '@mui/icons-material/Info';\nimport DownloadIcon from '@mui/icons-material/Download';\nimport { Form } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport { getTitle, formatSecrets } from '@/pages/services/utils';\n\nconst selectedStep = 4;\n\nexport const ServiceSecretKeys = ({\n secretKeys,\n subtitle,\n description,\n onDownload,\n onCopy,\n isCopied,\n}) => {\n const formattedKeys = useMemo(() => formatSecrets(secretKeys), [secretKeys]);\n\n return (\n <>\n <Typography sx={styles.title} mb={2}>\n {getTitle(selectedStep)}\n </Typography>\n <Typography sx={styles.subtitle}>{subtitle}</Typography>\n <Typography>{description}</Typography>\n <Form>\n {formattedKeys.map((item) => (\n <Grid container spacing={2} columns={14} key={item.id} sx={styles.keysBlock}>\n <Key label={item.id} />\n <Value value={item.key} />\n </Grid>\n ))}\n <Box sx={styles.doNotDisclosureBlock}>\n <InfoIcon />\n <Typography marginLeft=\"20px\">\n Do not disclose these keys to unauthorized persons or transmit via unsecured channels.\n </Typography>\n </Box>\n\n <Box sx={styles.buttonsBlock}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[styles.button, { marginRight: '30px' }]}\n onClick={() => onCopy(secretKeys)}\n >\n {isCopied ? 'Copied' : 'Copy'}\n </Button>\n <Button\n variant=\"outlined\"\n endIcon={<DownloadIcon />}\n sx={styles.button}\n onClick={() => onDownload(secretKeys)}\n >\n Download\n </Button>\n </Box>\n </Form>\n </>\n );\n};\n\nconst Key = ({ label }) => (\n <Grid size={{ xs: 4 }} sx={styles.keyLabel}>\n <Typography>{label}</Typography>\n </Grid>\n);\n\nconst Value = ({ value }) => (\n <Grid size={{ xs: 10 }}>\n <Typography sx={styles.keyValue}>{value}</Typography>\n </Grid>\n);\n\nconst styles = {\n title: {\n fontSize: '32px',\n fontWeight: '600',\n lineHeight: '38px',\n },\n subtitle: {\n fontWeight: '600',\n fontSize: '16px',\n marginBottom: '24px',\n },\n doNotDisclosureBlock: {\n color: 'secondary.light',\n fontSize: '14px',\n display: 'flex',\n flexDirection: 'row',\n marginTop: '30px',\n },\n keysBlock: {\n marginTop: '30px',\n },\n keyLabel: {\n display: 'flex',\n alignItems: 'center',\n wordBreak: 'break-all',\n },\n keyValue: {\n width: '100%',\n borderColor: 'divider.main',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderRadius: '6px',\n padding: '16px',\n boxSizing: 'border-box',\n wordBreak: 'break-word',\n },\n buttonsBlock: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: '40px',\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServiceSecretKeys.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n secretKeys: PropTypes.object,\n subtitle: PropTypes.string,\n description: PropTypes.string,\n onCopy: PropTypes.func,\n isCopied: PropTypes.bool,\n onDownload: PropTypes.func,\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nKey.propTypes = {\n label: PropTypes.string.isRequired,\n};\n// eslint-disable-next-line better-mutation/no-mutation\nValue.propTypes = {\n value: PropTypes.string.isRequired,\n};\n\nexport default ServiceSecretKeys;\n","import { useCallback, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Popup from '@/components/common/Popup.jsx';\nimport WarningSecretKeysPopup from './WarningSecretKeysPopup/index.jsx';\nimport { useKeyDownload } from '../../hooks/useKeyDownload';\nimport { ServiceSecretKeys } from './ServiceSecretKeys/index.jsx';\n\nexport const SecretKeysPopup = ({ isOpen, secretKeys, onClose, wording, warningWording }) => {\n const { onDownload, onCopy, isLoadingKeys, isLoadingKeysError, isDownloaded, isCopied } =\n useKeyDownload();\n\n const [isOpenWarningSecretPopup, setIsOpenWarningSecretPopup] = useState(false);\n\n const handleClose = useCallback(() => {\n if ((!isCopied && !isDownloaded) || isLoadingKeysError) {\n setIsOpenWarningSecretPopup(true);\n } else {\n onClose();\n }\n }, [isCopied, isDownloaded, isLoadingKeysError, onClose]);\n\n useEffect(() => {\n if (isOpenWarningSecretPopup && !isLoadingKeys && !isLoadingKeysError && isDownloaded) {\n onClose();\n }\n }, [isOpenWarningSecretPopup, isLoadingKeys, isLoadingKeysError, isDownloaded, onClose]);\n\n return (\n <Popup\n onClose={handleClose}\n title=\"\"\n isOpen={isOpen}\n mainContainerStyles={styles.mainContainer}\n disableCloseButton={isLoadingKeys}\n >\n <>\n <ServiceSecretKeys\n secretKeys={secretKeys}\n onDownload={onDownload}\n onCopy={onCopy}\n isCopied={isCopied}\n subtitle={wording.title}\n description={wording.subtitle}\n />\n <WarningSecretKeysPopup\n isModalOpened={isOpenWarningSecretPopup}\n onClose={onClose}\n title={warningWording.title}\n subtitle={warningWording.subtitle}\n onClick={() => onDownload(secretKeys)}\n isLoading={isLoadingKeys}\n />\n </>\n </Popup>\n );\n};\n\nconst styles = {\n mainContainer: { pt: 2 },\n};\n// eslint-disable-next-line better-mutation/no-mutation\nSecretKeysPopup.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n secretKeys: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n wording: PropTypes.shape({\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n }).isRequired,\n warningWording: PropTypes.shape({\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default SecretKeysPopup;\n"],"names":["styles","downloadTxtAsFile"],"mappings":"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"}
|