@verii/components-organizations-registrar 1.0.0-pre.1756096826 → 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainLayout.
|
|
1
|
+
{"version":3,"file":"MainLayout.BzfaZs8j.js","sources":["../../src/layouts/Menu.jsx","../../src/layouts/MainLayout.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 { useEffect } from 'react';\nimport { Menu as RaMenu, useStore } from 'react-admin';\nimport Box from '@mui/material/Box';\nimport { useMediaQuery } from '@mui/material';\nimport ArrowRightIcon from '@mui/icons-material/ArrowRight';\nimport { useIsHideSidebar } from '../utils/index.jsx';\n\nconst sxStyles = {\n menu: {\n width: 180,\n mt: '35px',\n mb: 1,\n pl: '4px',\n\n transition: (theme) =>\n theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n menuItem: {\n py: '13px',\n color: 'secondary.light',\n width: 160,\n textTransform: 'uppercase',\n fontSize: 14,\n fontWeight: 500,\n lineHeight: '19.6px',\n whiteSpace: 'break-spaces',\n\n '&.RaMenuItemLink-active': {\n color: 'primary.main',\n '& svg': {\n color: 'primary.main',\n },\n },\n },\n};\n\nconst Menu = () => {\n const isMenuHidden = useIsHideSidebar();\n const isSmall = useMediaQuery((theme) => theme.breakpoints.down('sm'));\n const [isMenuOpen, setIsMenuOpen] = useStore('sidebar.open');\n\n useEffect(() => {\n if (!isMenuOpen && !isSmall) {\n setIsMenuOpen(true);\n }\n }, [isMenuOpen, isSmall, setIsMenuOpen]);\n\n if (isMenuHidden) {\n return null;\n }\n\n return (\n <Box sx={sxStyles.menu}>\n <RaMenu>\n <RaMenu.Item\n to=\"/organizations\"\n primaryText=\"Organization profile\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n <RaMenu.Item\n to=\"/individuals\"\n primaryText=\"Key individuals\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n <RaMenu.Item\n to=\"/services\"\n primaryText=\"Services\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n {/* <MenuItemLink\n to=\"/users\"\n primaryText=\"Users\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n /> */}\n <RaMenu.Item\n to=\"/invitations\"\n primaryText=\"Invitations\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n </RaMenu>\n </Box>\n );\n};\n\nexport default Menu;\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 { Fragment } from 'react';\nimport { Layout } from 'react-admin';\n\nimport Menu from './Menu.jsx';\nimport CustomAppBar from '../components/AppBar/CustomAppBar.jsx';\nimport { useIsHideSidebar } from '../utils/index.jsx';\n\nconst MainLayout = (props) => {\n const hideSidebar = useIsHideSidebar();\n\n return (\n <Layout\n {...props}\n appBar={CustomAppBar}\n menu={Menu}\n sidebar={hideSidebar ? Fragment : undefined}\n />\n );\n};\n\nexport default MainLayout;\n"],"names":["useIsHideSidebar","useMediaQuery","useStore","useEffect","RaMenu","jsx","Layout","CustomAppBar","Fragment"],"mappings":";;;;;;;;;AAuBA,MAAM,WAAW;AAAA,EACf,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IAEJ,YAAY,CAAC,UACX,MAAM,YAAY,OAAO,SAAS;AAAA,MAChC,QAAQ,MAAM,YAAY,OAAO;AAAA,MACjC,UAAU,MAAM,YAAY,SAAS;AAAA,IAAA,CACtC;AAAA,EAAA;AAAA,EAEL,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,eAAe;AAAA,IACf,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IAEZ,2BAA2B;AAAA,MACzB,OAAO;AAAA,MACP,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF;AAEJ;AAEA,MAAM,OAAO,MAAM;AACjB,QAAM,eAAeA,MAAAA,iBAAA;AACrB,QAAM,UAAUC,SAAAA,cAAc,CAAC,UAAU,MAAM,YAAY,KAAK,IAAI,CAAC;AACrE,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAAA,SAAS,cAAc;AAE3DC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,cAAc,CAAC,SAAS;AAC3B,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,YAAY,SAAS,aAAa,CAAC;AAEvC,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AAEA,wCACG,KAAA,EAAI,IAAI,SAAS,MAChB,0CAACC,iBAAA,EACC,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACD,WAAAA,KAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,yCAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAEfC,2BAAAA;AAAAA,MAACD,WAAAA,KAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,yCAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAEfC,2BAAAA;AAAAA,MAACD,WAAAA,KAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,yCAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IASfC,2BAAAA;AAAAA,MAACD,WAAAA,KAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,yCAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EACf,EAAA,CACF,EAAA,CACF;AAEJ;ACxFA,MAAM,aAAa,CAAC,UAAU;AAC5B,QAAM,cAAcJ,MAAAA,iBAAA;AAEpB,SACEK,2BAAAA;AAAAA,IAACC,WAAAA;AAAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,QAAQC,aAAAA;AAAAA,MACR,MAAM;AAAA,MACN,SAAS,cAAcC,iBAAW;AAAA,IAAA;AAAA,EAAA;AAGxC;;;"}
|
|
@@ -4,8 +4,8 @@ import { useStore, Menu as Menu$1, Layout } from "react-admin";
|
|
|
4
4
|
import Box from "@mui/material/Box";
|
|
5
5
|
import { useMediaQuery } from "@mui/material";
|
|
6
6
|
import ArrowRightIcon from "@mui/icons-material/ArrowRight";
|
|
7
|
-
import { u as useIsHideSidebar } from "./index.
|
|
8
|
-
import { C as CustomAppBar } from "./CustomAppBar.
|
|
7
|
+
import { u as useIsHideSidebar } from "./index.DIur8MCO.js";
|
|
8
|
+
import { C as CustomAppBar } from "./CustomAppBar.BOlNFosS.js";
|
|
9
9
|
const sxStyles = {
|
|
10
10
|
menu: {
|
|
11
11
|
width: 180,
|
|
@@ -105,4 +105,4 @@ export {
|
|
|
105
105
|
MainLayout as M,
|
|
106
106
|
Menu as a
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=MainLayout.
|
|
108
|
+
//# sourceMappingURL=MainLayout.V-ymVxxR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainLayout.
|
|
1
|
+
{"version":3,"file":"MainLayout.V-ymVxxR.js","sources":["../../src/layouts/Menu.jsx","../../src/layouts/MainLayout.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 { useEffect } from 'react';\nimport { Menu as RaMenu, useStore } from 'react-admin';\nimport Box from '@mui/material/Box';\nimport { useMediaQuery } from '@mui/material';\nimport ArrowRightIcon from '@mui/icons-material/ArrowRight';\nimport { useIsHideSidebar } from '../utils/index.jsx';\n\nconst sxStyles = {\n menu: {\n width: 180,\n mt: '35px',\n mb: 1,\n pl: '4px',\n\n transition: (theme) =>\n theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n menuItem: {\n py: '13px',\n color: 'secondary.light',\n width: 160,\n textTransform: 'uppercase',\n fontSize: 14,\n fontWeight: 500,\n lineHeight: '19.6px',\n whiteSpace: 'break-spaces',\n\n '&.RaMenuItemLink-active': {\n color: 'primary.main',\n '& svg': {\n color: 'primary.main',\n },\n },\n },\n};\n\nconst Menu = () => {\n const isMenuHidden = useIsHideSidebar();\n const isSmall = useMediaQuery((theme) => theme.breakpoints.down('sm'));\n const [isMenuOpen, setIsMenuOpen] = useStore('sidebar.open');\n\n useEffect(() => {\n if (!isMenuOpen && !isSmall) {\n setIsMenuOpen(true);\n }\n }, [isMenuOpen, isSmall, setIsMenuOpen]);\n\n if (isMenuHidden) {\n return null;\n }\n\n return (\n <Box sx={sxStyles.menu}>\n <RaMenu>\n <RaMenu.Item\n to=\"/organizations\"\n primaryText=\"Organization profile\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n <RaMenu.Item\n to=\"/individuals\"\n primaryText=\"Key individuals\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n <RaMenu.Item\n to=\"/services\"\n primaryText=\"Services\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n {/* <MenuItemLink\n to=\"/users\"\n primaryText=\"Users\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n /> */}\n <RaMenu.Item\n to=\"/invitations\"\n primaryText=\"Invitations\"\n state={{ _scrollToTop: true }}\n leftIcon={<ArrowRightIcon />}\n sx={sxStyles.menuItem}\n />\n </RaMenu>\n </Box>\n );\n};\n\nexport default Menu;\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 { Fragment } from 'react';\nimport { Layout } from 'react-admin';\n\nimport Menu from './Menu.jsx';\nimport CustomAppBar from '../components/AppBar/CustomAppBar.jsx';\nimport { useIsHideSidebar } from '../utils/index.jsx';\n\nconst MainLayout = (props) => {\n const hideSidebar = useIsHideSidebar();\n\n return (\n <Layout\n {...props}\n appBar={CustomAppBar}\n menu={Menu}\n sidebar={hideSidebar ? Fragment : undefined}\n />\n );\n};\n\nexport default MainLayout;\n"],"names":["RaMenu"],"mappings":";;;;;;;;AAuBA,MAAM,WAAW;AAAA,EACf,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IAEJ,YAAY,CAAC,UACX,MAAM,YAAY,OAAO,SAAS;AAAA,MAChC,QAAQ,MAAM,YAAY,OAAO;AAAA,MACjC,UAAU,MAAM,YAAY,SAAS;AAAA,IAAA,CACtC;AAAA,EAAA;AAAA,EAEL,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,eAAe;AAAA,IACf,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IAEZ,2BAA2B;AAAA,MACzB,OAAO;AAAA,MACP,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF;AAEJ;AAEA,MAAM,OAAO,MAAM;AACjB,QAAM,eAAe,iBAAA;AACrB,QAAM,UAAU,cAAc,CAAC,UAAU,MAAM,YAAY,KAAK,IAAI,CAAC;AACrE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,cAAc;AAE3D,YAAU,MAAM;AACd,QAAI,CAAC,cAAc,CAAC,SAAS;AAC3B,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,YAAY,SAAS,aAAa,CAAC;AAEvC,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AAEA,6BACG,KAAA,EAAI,IAAI,SAAS,MAChB,+BAACA,QAAA,EACC,UAAA;AAAA,IAAA;AAAA,MAACA,OAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,8BAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAEf;AAAA,MAACA,OAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,8BAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAEf;AAAA,MAACA,OAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,8BAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IASf;AAAA,MAACA,OAAO;AAAA,MAAP;AAAA,QACC,IAAG;AAAA,QACH,aAAY;AAAA,QACZ,OAAO,EAAE,cAAc,KAAA;AAAA,QACvB,8BAAW,gBAAA,EAAe;AAAA,QAC1B,IAAI,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EACf,EAAA,CACF,EAAA,CACF;AAEJ;ACxFA,MAAM,aAAa,CAAC,UAAU;AAC5B,QAAM,cAAc,iBAAA;AAEpB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS,cAAc,WAAW;AAAA,IAAA;AAAA,EAAA;AAGxC;"}
|
|
@@ -3,7 +3,7 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const material = require("@mui/material");
|
|
5
5
|
const PropTypes = require("prop-types");
|
|
6
|
-
const Loading = require("./Loading.
|
|
6
|
+
const Loading = require("./Loading.cGHE59CV.js");
|
|
7
7
|
let timer;
|
|
8
8
|
const OrganizationAvatar = ({ logo, name, size }) => {
|
|
9
9
|
const sx = useSx(size, name);
|
|
@@ -63,4 +63,4 @@ const selectColor = (name) => {
|
|
|
63
63
|
return `hsl(${Math.round(hue % 360)},50%,50%)`;
|
|
64
64
|
};
|
|
65
65
|
exports.OrganizationAvatar = OrganizationAvatar;
|
|
66
|
-
//# sourceMappingURL=OrganizationAvatar.
|
|
66
|
+
//# sourceMappingURL=OrganizationAvatar.BXW4diDT.js.map
|
package/dist/chunks/{OrganizationAvatar.BEwRZ9tC.js.map → OrganizationAvatar.BXW4diDT.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationAvatar.
|
|
1
|
+
{"version":3,"file":"OrganizationAvatar.BXW4diDT.js","sources":["../../src/components/common/OrganizationAvatar.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, { useEffect } from 'react';\nimport { Avatar, Box } from '@mui/material';\nimport PropTypes from 'prop-types';\nimport Loading from '../Loading.jsx';\n\nlet timer;\n\nconst OrganizationAvatar = ({ logo, name, size }) => {\n const sx = useSx(size, name);\n const [reloadAttempts, setReloadAttempts] = React.useState(0);\n const errorHandle = () => {\n if (logo && reloadAttempts < 10) {\n // eslint-disable-next-line better-mutation/no-mutation\n timer = setTimeout(() => {\n setReloadAttempts(reloadAttempts + 1);\n }, 500);\n }\n };\n const loadHandle = () => {\n clearTimeout(timer);\n setReloadAttempts(0);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timer);\n };\n }, []);\n\n return (\n <Box sx={sx.avatarBorder}>\n <Avatar\n key={`image-${reloadAttempts}`}\n sx={sx.avatar}\n src={logo}\n alt={name}\n onError={errorHandle}\n onLoad={loadHandle}\n >\n {logo && reloadAttempts < 10 ? <Loading /> : name.charAt(0)}\n </Avatar>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nOrganizationAvatar.propTypes = {\n logo: PropTypes.string,\n name: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n};\n\nexport default OrganizationAvatar;\n\nconst useSx = (size, name) => {\n return React.useMemo(() => {\n return {\n avatar: {\n width: size,\n height: size,\n bgcolor: selectColor(name),\n border: `${Math.round(size / 10)}px solid white`,\n },\n avatarBorder: {\n borderRadius: '50%',\n border: (theme) => `1px solid ${theme.palette.divider.main}`,\n },\n };\n }, [size, name]);\n};\n\n// Color selection is based on name,\n// cause for same organization name we want to see same color across the page refreshes\nconst selectColor = (name) => {\n const hue = (2 * name.length + name.charCodeAt(name.length - 1)) * 137.508; // use golden angle approximation\n return `hsl(${Math.round(hue % 360)},50%,50%)`;\n};\n"],"names":["useEffect","jsx","Box","Avatar","Loading"],"mappings":";;;;;;AAqBA,IAAI;AAEJ,MAAM,qBAAqB,CAAC,EAAE,MAAM,MAAM,WAAW;AACnD,QAAM,KAAK,MAAM,MAAM,IAAI;AAC3B,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAS,CAAC;AAC5D,QAAM,cAAc,MAAM;AACxB,QAAI,QAAQ,iBAAiB,IAAI;AAE/B,cAAQ,WAAW,MAAM;AACvB,0BAAkB,iBAAiB,CAAC;AAAA,MACtC,GAAG,GAAG;AAAA,IACR;AAAA,EACF;AACA,QAAM,aAAa,MAAM;AACvB,iBAAa,KAAK;AAClB,sBAAkB,CAAC;AAAA,EACrB;AAEAA,QAAAA,UAAU,MAAM;AACd,WAAO,MAAM;AACX,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,SACEC,2BAAAA,IAACC,SAAAA,KAAA,EAAI,IAAI,GAAG,cACV,UAAAD,2BAAAA;AAAAA,IAACE,SAAAA;AAAAA,IAAA;AAAA,MAEC,IAAI,GAAG;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA,MAEP,UAAA,QAAQ,iBAAiB,KAAKF,2BAAAA,IAACG,QAAAA,WAAQ,IAAK,KAAK,OAAO,CAAC;AAAA,IAAA;AAAA,IAPrD,SAAS,cAAc;AAAA,EAAA,GAShC;AAEJ;AAGA,mBAAmB,YAAY;AAAA,EAC7B,MAAM,UAAU;AAAA,EAChB,MAAM,UAAU,OAAO;AAAA,EACvB,MAAM,UAAU,OAAO;AACzB;AAIA,MAAM,QAAQ,CAAC,MAAM,SAAS;AAC5B,SAAO,MAAM,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,YAAY,IAAI;AAAA,QACzB,QAAQ,GAAG,KAAK,MAAM,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,MAElC,cAAc;AAAA,QACZ,cAAc;AAAA,QACd,QAAQ,CAAC,UAAU,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MAAA;AAAA,IAC5D;AAAA,EAEJ,GAAG,CAAC,MAAM,IAAI,CAAC;AACjB;AAIA,MAAM,cAAc,CAAC,SAAS;AAC5B,QAAM,OAAO,IAAI,KAAK,SAAS,KAAK,WAAW,KAAK,SAAS,CAAC,KAAK;AACnE,SAAO,OAAO,KAAK,MAAM,MAAM,GAAG,CAAC;AACrC;;"}
|
|
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React, { useEffect } from "react";
|
|
3
3
|
import { Box, Avatar } from "@mui/material";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import { L as Loading } from "./Loading.
|
|
5
|
+
import { L as Loading } from "./Loading.Bcm3xNJU.js";
|
|
6
6
|
let timer;
|
|
7
7
|
const OrganizationAvatar = ({ logo, name, size }) => {
|
|
8
8
|
const sx = useSx(size, name);
|
|
@@ -64,4 +64,4 @@ const selectColor = (name) => {
|
|
|
64
64
|
export {
|
|
65
65
|
OrganizationAvatar as O
|
|
66
66
|
};
|
|
67
|
-
//# sourceMappingURL=OrganizationAvatar.
|
|
67
|
+
//# sourceMappingURL=OrganizationAvatar.Dgg5VSPI.js.map
|
package/dist/chunks/{OrganizationAvatar.lWcXtbM6.js.map → OrganizationAvatar.Dgg5VSPI.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationAvatar.
|
|
1
|
+
{"version":3,"file":"OrganizationAvatar.Dgg5VSPI.js","sources":["../../src/components/common/OrganizationAvatar.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, { useEffect } from 'react';\nimport { Avatar, Box } from '@mui/material';\nimport PropTypes from 'prop-types';\nimport Loading from '../Loading.jsx';\n\nlet timer;\n\nconst OrganizationAvatar = ({ logo, name, size }) => {\n const sx = useSx(size, name);\n const [reloadAttempts, setReloadAttempts] = React.useState(0);\n const errorHandle = () => {\n if (logo && reloadAttempts < 10) {\n // eslint-disable-next-line better-mutation/no-mutation\n timer = setTimeout(() => {\n setReloadAttempts(reloadAttempts + 1);\n }, 500);\n }\n };\n const loadHandle = () => {\n clearTimeout(timer);\n setReloadAttempts(0);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timer);\n };\n }, []);\n\n return (\n <Box sx={sx.avatarBorder}>\n <Avatar\n key={`image-${reloadAttempts}`}\n sx={sx.avatar}\n src={logo}\n alt={name}\n onError={errorHandle}\n onLoad={loadHandle}\n >\n {logo && reloadAttempts < 10 ? <Loading /> : name.charAt(0)}\n </Avatar>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nOrganizationAvatar.propTypes = {\n logo: PropTypes.string,\n name: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n};\n\nexport default OrganizationAvatar;\n\nconst useSx = (size, name) => {\n return React.useMemo(() => {\n return {\n avatar: {\n width: size,\n height: size,\n bgcolor: selectColor(name),\n border: `${Math.round(size / 10)}px solid white`,\n },\n avatarBorder: {\n borderRadius: '50%',\n border: (theme) => `1px solid ${theme.palette.divider.main}`,\n },\n };\n }, [size, name]);\n};\n\n// Color selection is based on name,\n// cause for same organization name we want to see same color across the page refreshes\nconst selectColor = (name) => {\n const hue = (2 * name.length + name.charCodeAt(name.length - 1)) * 137.508; // use golden angle approximation\n return `hsl(${Math.round(hue % 360)},50%,50%)`;\n};\n"],"names":[],"mappings":";;;;;AAqBA,IAAI;AAEJ,MAAM,qBAAqB,CAAC,EAAE,MAAM,MAAM,WAAW;AACnD,QAAM,KAAK,MAAM,MAAM,IAAI;AAC3B,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAS,CAAC;AAC5D,QAAM,cAAc,MAAM;AACxB,QAAI,QAAQ,iBAAiB,IAAI;AAE/B,cAAQ,WAAW,MAAM;AACvB,0BAAkB,iBAAiB,CAAC;AAAA,MACtC,GAAG,GAAG;AAAA,IACR;AAAA,EACF;AACA,QAAM,aAAa,MAAM;AACvB,iBAAa,KAAK;AAClB,sBAAkB,CAAC;AAAA,EACrB;AAEA,YAAU,MAAM;AACd,WAAO,MAAM;AACX,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,SACE,oBAAC,KAAA,EAAI,IAAI,GAAG,cACV,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,GAAG;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA,MAEP,UAAA,QAAQ,iBAAiB,KAAK,oBAAC,WAAQ,IAAK,KAAK,OAAO,CAAC;AAAA,IAAA;AAAA,IAPrD,SAAS,cAAc;AAAA,EAAA,GAShC;AAEJ;AAGA,mBAAmB,YAAY;AAAA,EAC7B,MAAM,UAAU;AAAA,EAChB,MAAM,UAAU,OAAO;AAAA,EACvB,MAAM,UAAU,OAAO;AACzB;AAIA,MAAM,QAAQ,CAAC,MAAM,SAAS;AAC5B,SAAO,MAAM,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,YAAY,IAAI;AAAA,QACzB,QAAQ,GAAG,KAAK,MAAM,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,MAElC,cAAc;AAAA,QACZ,cAAc;AAAA,QACd,QAAQ,CAAC,UAAU,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MAAA;AAAA,IAC5D;AAAA,EAEJ,GAAG,CAAC,MAAM,IAAI,CAAC;AACjB;AAIA,MAAM,cAAc,CAAC,SAAS;AAC5B,QAAM,OAAO,IAAI,KAAK,SAAS,KAAK,WAAW,KAAK,SAAS,CAAC,KAAK;AACnE,SAAO,OAAO,KAAK,MAAM,MAAM,GAAG,CAAC;AACrC;"}
|
|
@@ -6,7 +6,7 @@ const Popup = require("./Popup.H_MqnNtr.js");
|
|
|
6
6
|
const React = require("react");
|
|
7
7
|
const reactAdmin = require("react-admin");
|
|
8
8
|
const useIsIssuingInspection = require("./useIsIssuingInspection.DavhBs5B.js");
|
|
9
|
-
const
|
|
9
|
+
const CreateOrganizationUtils = require("./CreateOrganizationUtils.C5C_r3Zp.js");
|
|
10
10
|
const ServicesDelete = ({ onClose, onConfirm, selectedService, isLoading }) => {
|
|
11
11
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12
12
|
Popup.Popup,
|
|
@@ -132,7 +132,7 @@ const ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) =
|
|
|
132
132
|
const FormContent = ({ isIssuingOrInspection, isModifyingServiceEnabled }) => {
|
|
133
133
|
const validateArray = [reactAdmin.required("Service endpoint URL field is required")];
|
|
134
134
|
if (!isIssuingOrInspection) {
|
|
135
|
-
validateArray.push(...
|
|
135
|
+
validateArray.push(...CreateOrganizationUtils.validateServiceEndpoint);
|
|
136
136
|
}
|
|
137
137
|
return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { children: [
|
|
138
138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -172,4 +172,4 @@ const sx = {
|
|
|
172
172
|
};
|
|
173
173
|
exports.ServicesDelete = ServicesDelete;
|
|
174
174
|
exports.ServicesEdit = ServicesEdit;
|
|
175
|
-
//# sourceMappingURL=ServicesEdit.
|
|
175
|
+
//# sourceMappingURL=ServicesEdit.BnnqC203.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServicesEdit.BnnqC203.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.js';\n\nimport Popup from '../common/Popup.jsx';\nimport { validateServiceEndpoint } from '../organizations/CreateOrganizationUtils.js';\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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"}
|
|
@@ -5,7 +5,7 @@ import { P as Popup } from "./Popup.C5odWCD_.js";
|
|
|
5
5
|
import { useState, useCallback } from "react";
|
|
6
6
|
import { Form, required, TextInput, SaveButton } from "react-admin";
|
|
7
7
|
import { u as useIsIssuingInspection } from "./useIsIssuingInspection.C76mY_wb.js";
|
|
8
|
-
import {
|
|
8
|
+
import { c as validateServiceEndpoint } from "./CreateOrganizationUtils.Xq78HHkP.js";
|
|
9
9
|
const ServicesDelete = ({ onClose, onConfirm, selectedService, isLoading }) => {
|
|
10
10
|
return /* @__PURE__ */ jsxs(
|
|
11
11
|
Popup,
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
ServicesDelete as S,
|
|
174
174
|
ServicesEdit as a
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=ServicesEdit.
|
|
176
|
+
//# sourceMappingURL=ServicesEdit.DDgjS5kU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServicesEdit.DDgjS5kU.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.js';\n\nimport Popup from '../common/Popup.jsx';\nimport { validateServiceEndpoint } from '../organizations/CreateOrganizationUtils.js';\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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"}
|
|
@@ -10,12 +10,12 @@ const React = require("react");
|
|
|
10
10
|
const ListItem = require("./ListItem.Auy7hQ9Z.js");
|
|
11
11
|
const CheckCircleIcon = require("@mui/icons-material/CheckCircle");
|
|
12
12
|
const reactAdmin = require("react-admin");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const CreateOrganizationUtils = require("./CreateOrganizationUtils.C5C_r3Zp.js");
|
|
14
|
+
const ValidateTextInput = require("./ValidateTextInput.DEBaVB1L.js");
|
|
15
15
|
const InfoIcon = require("@mui/icons-material/Info");
|
|
16
16
|
const KeyboardArrowLeftIcon = require("@mui/icons-material/KeyboardArrowLeft");
|
|
17
17
|
const index = require("./index.iexmV4Mr.js");
|
|
18
|
-
const
|
|
18
|
+
const lodashEs = require("lodash-es");
|
|
19
19
|
const getServiceKey = (key) => {
|
|
20
20
|
switch (key) {
|
|
21
21
|
case "id": {
|
|
@@ -237,7 +237,7 @@ const SetInvitationEmail = ({ children, onSubmit, defaultValue, loading }) => {
|
|
|
237
237
|
type: "email",
|
|
238
238
|
source: "inviteeEmail",
|
|
239
239
|
defaultValue,
|
|
240
|
-
validate: [reactAdmin.required(), ...
|
|
240
|
+
validate: [reactAdmin.required(), ...CreateOrganizationUtils.validateEmail],
|
|
241
241
|
InputProps: {
|
|
242
242
|
endAdornment: isEmailValid ? /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntime.jsx(CheckCircleIcon, { color: "success" }) }) : null
|
|
243
243
|
}
|
|
@@ -246,7 +246,7 @@ const SetInvitationEmail = ({ children, onSubmit, defaultValue, loading }) => {
|
|
|
246
246
|
/* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: styles$2.buttonBlock, children: [
|
|
247
247
|
children,
|
|
248
248
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
249
|
-
|
|
249
|
+
ValidateTextInput.OrganizationSubmitButton,
|
|
250
250
|
{
|
|
251
251
|
styles: styles$2.inviteButton,
|
|
252
252
|
title: "Invite client",
|
|
@@ -289,7 +289,7 @@ const SetKeyIndividuals = ({ children, onSubmit, defaultValues, onBack, loading
|
|
|
289
289
|
fullWidth: true,
|
|
290
290
|
label: "Email",
|
|
291
291
|
source: "adminEmail",
|
|
292
|
-
validate: [...
|
|
292
|
+
validate: [...CreateOrganizationUtils.validateEmail, reactAdmin.required()]
|
|
293
293
|
}
|
|
294
294
|
),
|
|
295
295
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -316,7 +316,7 @@ const SetKeyIndividuals = ({ children, onSubmit, defaultValues, onBack, loading
|
|
|
316
316
|
/* @__PURE__ */ jsxRuntime.jsx(material.Box, { mt: 1, children: /* @__PURE__ */ jsxRuntime.jsx(material.Tooltip, { title: index.SIGNATORY_DETAILS_HINT, children: /* @__PURE__ */ jsxRuntime.jsx(InfoIcon, { color: "info", fontSize: "small", cursor: "pointer" }) }) })
|
|
317
317
|
] }),
|
|
318
318
|
/* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { flexDirection: "row", gap: 1.75, children: [
|
|
319
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactAdmin.TextInput, { fullWidth: true, label: "Email", source: "signatoryEmail", validate:
|
|
319
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactAdmin.TextInput, { fullWidth: true, label: "Email", source: "signatoryEmail", validate: CreateOrganizationUtils.validateEmail }),
|
|
320
320
|
/* @__PURE__ */ jsxRuntime.jsx(material.Box, { mt: 2, children: /* @__PURE__ */ jsxRuntime.jsx(material.Tooltip, { title: index.SIGNATORY_EMAIL_HINT, children: /* @__PURE__ */ jsxRuntime.jsx(InfoIcon, { color: "info", fontSize: "small", cursor: "pointer" }) }) })
|
|
321
321
|
] }),
|
|
322
322
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -361,7 +361,7 @@ const SetKeyIndividuals = ({ children, onSubmit, defaultValues, onBack, loading
|
|
|
361
361
|
) }),
|
|
362
362
|
children,
|
|
363
363
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
364
|
-
|
|
364
|
+
ValidateTextInput.OrganizationSubmitButton,
|
|
365
365
|
{
|
|
366
366
|
title: "Invite Client",
|
|
367
367
|
styles: styles$1.button,
|
|
@@ -410,7 +410,7 @@ const SetInvitationService = ({ children, onSubmit, defaultValues, serviceEndpoi
|
|
|
410
410
|
const handleSubmit = React.useCallback(
|
|
411
411
|
(data) => {
|
|
412
412
|
const type = data.type.match(/.+v1/);
|
|
413
|
-
const kebabType =
|
|
413
|
+
const kebabType = lodashEs.kebabCase(type[0]);
|
|
414
414
|
onSubmit({
|
|
415
415
|
...data,
|
|
416
416
|
type: type[0],
|
|
@@ -444,7 +444,7 @@ const SetInvitationService = ({ children, onSubmit, defaultValues, serviceEndpoi
|
|
|
444
444
|
),
|
|
445
445
|
/* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: styles.buttonBlock, children: [
|
|
446
446
|
children,
|
|
447
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
447
|
+
/* @__PURE__ */ jsxRuntime.jsx(ValidateTextInput.OrganizationSubmitButton, { title: "Next", styles: styles.button })
|
|
448
448
|
] })
|
|
449
449
|
] }) });
|
|
450
450
|
};
|
|
@@ -478,4 +478,4 @@ exports.InvitationsListContainer = InvitationsListContainer;
|
|
|
478
478
|
exports.SetInvitationEmail = SetInvitationEmail;
|
|
479
479
|
exports.SetInvitationService = SetInvitationService;
|
|
480
480
|
exports.SetKeyIndividuals = SetKeyIndividuals;
|
|
481
|
-
//# sourceMappingURL=SetInvitationService.
|
|
481
|
+
//# sourceMappingURL=SetInvitationService.PxAGwk-I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetInvitationService.PxAGwk-I.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.js';\nimport { chainNames } from '@/utils/chainNames.js';\nimport { useConfig } from '@/utils/ConfigContext.js';\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/CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from '../organizations/OrganizationSubmitButton.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/index.jsx';\nimport OrganizationSubmitButton from '../organizations/OrganizationSubmitButton.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-es';\nimport PropTypes from 'prop-types';\n\nimport {\n serviceTypesIssuingOrInspection,\n credentialTypesByServiceTypes,\n} from '@/utils/serviceTypes.js';\nimport OrganizationSubmitButton from '../organizations/OrganizationSubmitButton.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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"}
|
|
@@ -9,12 +9,12 @@ import { useState, useCallback, useEffect, useMemo } from "react";
|
|
|
9
9
|
import { L as ListItem } from "./ListItem.DgXqrom8.js";
|
|
10
10
|
import CheckCircleIcon from "@mui/icons-material/CheckCircle";
|
|
11
11
|
import { Form, TextInput, required, maxLength, FormDataConsumer, AutocompleteInput } from "react-admin";
|
|
12
|
-
import {
|
|
13
|
-
import { O as OrganizationSubmitButton } from "./
|
|
12
|
+
import { d as validateEmail } from "./CreateOrganizationUtils.Xq78HHkP.js";
|
|
13
|
+
import { O as OrganizationSubmitButton } from "./ValidateTextInput.D5kgjulG.js";
|
|
14
14
|
import InfoIcon from "@mui/icons-material/Info";
|
|
15
15
|
import KeyboardArrowLeftIcon from "@mui/icons-material/KeyboardArrowLeft";
|
|
16
|
-
import { A as ADMINISTRATOR_DETAILS_HINT,
|
|
17
|
-
import { kebabCase } from "lodash
|
|
16
|
+
import { A as ADMINISTRATOR_DETAILS_HINT, S as SIGNATORY_DETAILS_HINT, d as SIGNATORY_EMAIL_HINT } from "./index.DIur8MCO.js";
|
|
17
|
+
import { kebabCase } from "lodash-es";
|
|
18
18
|
const getServiceKey = (key) => {
|
|
19
19
|
switch (key) {
|
|
20
20
|
case "id": {
|
|
@@ -479,4 +479,4 @@ export {
|
|
|
479
479
|
SetKeyIndividuals as b,
|
|
480
480
|
SetInvitationService as c
|
|
481
481
|
};
|
|
482
|
-
//# sourceMappingURL=SetInvitationService.
|
|
482
|
+
//# sourceMappingURL=SetInvitationService.ZT5lP003.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetInvitationService.ZT5lP003.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.js';\nimport { chainNames } from '@/utils/chainNames.js';\nimport { useConfig } from '@/utils/ConfigContext.js';\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/CreateOrganizationUtils.js';\nimport OrganizationSubmitButton from '../organizations/OrganizationSubmitButton.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/index.jsx';\nimport OrganizationSubmitButton from '../organizations/OrganizationSubmitButton.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-es';\nimport PropTypes from 'prop-types';\n\nimport {\n serviceTypesIssuingOrInspection,\n credentialTypesByServiceTypes,\n} from '@/utils/serviceTypes.js';\nimport OrganizationSubmitButton from '../organizations/OrganizationSubmitButton.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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"}
|