@strapi/admin 5.10.4 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs → ApplicationInfoPage-BZwUO73O.mjs} +2 -2
- package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs.map → ApplicationInfoPage-BZwUO73O.mjs.map} +1 -1
- package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js → ApplicationInfoPage-DJOazrYK.js} +2 -2
- package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js.map → ApplicationInfoPage-DJOazrYK.js.map} +1 -1
- package/dist/admin/chunks/{AuthenticatedLayout-D_VSoB1l.js → AuthenticatedLayout-Dy75FZrh.js} +7 -6
- package/dist/admin/chunks/AuthenticatedLayout-Dy75FZrh.js.map +1 -0
- package/dist/admin/chunks/{AuthenticatedLayout-C9eZ12Ue.mjs → AuthenticatedLayout-jDyinb04.mjs} +7 -6
- package/dist/admin/chunks/AuthenticatedLayout-jDyinb04.mjs.map +1 -0
- package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs → CreatePage-BO4p8eVo.mjs} +2 -2
- package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs.map → CreatePage-BO4p8eVo.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-DbmpFjHt.js → CreatePage-Bgs19RIr.js} +2 -2
- package/dist/admin/chunks/{CreatePage-DbmpFjHt.js.map → CreatePage-Bgs19RIr.js.map} +1 -1
- package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs → CreatePage-CvMkpe3b.mjs} +3 -3
- package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs.map → CreatePage-CvMkpe3b.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-DkzHz0zk.js → CreatePage-D0kjwP8s.js} +3 -3
- package/dist/admin/chunks/{CreatePage-DkzHz0zk.js.map → CreatePage-D0kjwP8s.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-CmubtWzn.mjs → CreateView-B5Rq5Uhw.mjs} +4 -4
- package/dist/admin/chunks/{CreateView-CmubtWzn.mjs.map → CreateView-B5Rq5Uhw.mjs.map} +1 -1
- package/dist/admin/chunks/{CreateView-CE4-drK6.js → CreateView-DCsm2KBZ.js} +4 -4
- package/dist/admin/chunks/{CreateView-CE4-drK6.js.map → CreateView-DCsm2KBZ.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-yjsS9KUJ.js → CreateView-DGq7e-Zm.js} +4 -4
- package/dist/admin/chunks/{CreateView-yjsS9KUJ.js.map → CreateView-DGq7e-Zm.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-DZaIevIB.mjs → CreateView-h_bF5XrZ.mjs} +4 -4
- package/dist/admin/chunks/{CreateView-DZaIevIB.mjs.map → CreateView-h_bF5XrZ.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-CNaAuT5C.js → EditPage-85v6bKcJ.js} +3 -3
- package/dist/admin/chunks/{EditPage-CNaAuT5C.js.map → EditPage-85v6bKcJ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-C44OaxjN.mjs → EditPage-CBrPs4kH.mjs} +3 -3
- package/dist/admin/chunks/{EditPage-C44OaxjN.mjs.map → EditPage-CBrPs4kH.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs → EditPage-CFSx_zaS.mjs} +3 -3
- package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs.map → EditPage-CFSx_zaS.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-CycQlsFL.js → EditPage-CK8pIRKZ.js} +3 -3
- package/dist/admin/chunks/{EditPage-CycQlsFL.js.map → EditPage-CK8pIRKZ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-BrMhV8aB.js → EditPage-DHtr1mq1.js} +6 -6
- package/dist/admin/chunks/{EditPage-BrMhV8aB.js.map → EditPage-DHtr1mq1.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs → EditPage-DrT9bgfE.mjs} +6 -6
- package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs.map → EditPage-DrT9bgfE.mjs.map} +1 -1
- package/dist/admin/chunks/{EditView-C9cKaoY1.js → EditView-CfJxHMkF.js} +3 -3
- package/dist/admin/chunks/{EditView-C9cKaoY1.js.map → EditView-CfJxHMkF.js.map} +1 -1
- package/dist/admin/chunks/{EditView-CFIkvFrt.mjs → EditView-XfGT5Bj1.mjs} +3 -3
- package/dist/admin/chunks/{EditView-CFIkvFrt.mjs.map → EditView-XfGT5Bj1.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs → EditViewPage-BLftPAqX.mjs} +3 -3
- package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs.map → EditViewPage-BLftPAqX.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-DBga-70A.js → EditViewPage-Dvm8m28e.js} +3 -3
- package/dist/admin/chunks/{EditViewPage-DBga-70A.js.map → EditViewPage-Dvm8m28e.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-fkWvAMuL.js → EventsTable-C1FNa1mh.js} +3 -3
- package/dist/admin/chunks/{EventsTable-fkWvAMuL.js.map → EventsTable-C1FNa1mh.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs → EventsTable-aDYIp-4O.mjs} +3 -3
- package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs.map → EventsTable-aDYIp-4O.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-CVc0RfvD.js → HomePage-8CeDS3qO.js} +3 -3
- package/dist/admin/chunks/{HomePage-CVc0RfvD.js.map → HomePage-8CeDS3qO.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-B2skN1xt.js → HomePage-BKwoMagC.js} +3 -3
- package/dist/admin/chunks/{HomePage-B2skN1xt.js.map → HomePage-BKwoMagC.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-DGTeFboL.mjs → HomePage-BRggBAHf.mjs} +3 -3
- package/dist/admin/chunks/{HomePage-DGTeFboL.mjs.map → HomePage-BRggBAHf.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-MfOqcIag.mjs → HomePage-DuRHJoC7.mjs} +3 -3
- package/dist/admin/chunks/{HomePage-MfOqcIag.mjs.map → HomePage-DuRHJoC7.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs → InstalledPlugins-23tOdYYB.mjs} +2 -2
- package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs.map → InstalledPlugins-23tOdYYB.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js → InstalledPlugins-z8ODfbJj.js} +2 -2
- package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js.map → InstalledPlugins-z8ODfbJj.js.map} +1 -1
- package/dist/admin/chunks/{Layout-DST1PxaO.js → Layout-BZgwh-LZ.js} +3 -3
- package/dist/admin/chunks/{Layout-DST1PxaO.js.map → Layout-BZgwh-LZ.js.map} +1 -1
- package/dist/admin/chunks/{Layout-DYjtK6iP.mjs → Layout-CmzbGRtV.mjs} +3 -3
- package/dist/admin/chunks/{Layout-DYjtK6iP.mjs.map → Layout-CmzbGRtV.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs → ListPage-BE3aimOU.mjs} +2 -2
- package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs.map → ListPage-BE3aimOU.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-CWINpwfS.js → ListPage-BRVhZryp.js} +6 -6
- package/dist/admin/chunks/{ListPage-CWINpwfS.js.map → ListPage-BRVhZryp.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-srJutHdv.mjs → ListPage-BuFQNHRU.mjs} +3 -3
- package/dist/admin/chunks/{ListPage-srJutHdv.mjs.map → ListPage-BuFQNHRU.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-CLXy5r60.js → ListPage-C46MNvAQ.js} +3 -3
- package/dist/admin/chunks/{ListPage-CLXy5r60.js.map → ListPage-C46MNvAQ.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs → ListPage-CTxfjKUP.mjs} +2 -2
- package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs.map → ListPage-CTxfjKUP.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs → ListPage-CovdXetq.mjs} +6 -6
- package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs.map → ListPage-CovdXetq.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BgyypnOM.js → ListPage-D7fIXyTM.js} +5 -5
- package/dist/admin/chunks/{ListPage-BgyypnOM.js.map → ListPage-D7fIXyTM.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs → ListPage-DoR-NV6v.mjs} +5 -5
- package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs.map → ListPage-DoR-NV6v.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-D21yUih2.js → ListPage-SVEmrFSg.js} +2 -2
- package/dist/admin/chunks/{ListPage-D21yUih2.js.map → ListPage-SVEmrFSg.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-DbfL2rpi.js → ListPage-fOcHewxm.js} +2 -2
- package/dist/admin/chunks/{ListPage-DbfL2rpi.js.map → ListPage-fOcHewxm.js.map} +1 -1
- package/dist/admin/chunks/{ListView--KzJiQiO.mjs → ListView-BUbdI3-z.mjs} +3 -3
- package/dist/admin/chunks/{ListView--KzJiQiO.mjs.map → ListView-BUbdI3-z.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-DzwvQ8nW.js → ListView-CGHuleNQ.js} +3 -3
- package/dist/admin/chunks/{ListView-DzwvQ8nW.js.map → ListView-CGHuleNQ.js.map} +1 -1
- package/dist/admin/chunks/{ListView-CoGoDDiF.mjs → ListView-DxPGNDw_.mjs} +3 -3
- package/dist/admin/chunks/{ListView-CoGoDDiF.mjs.map → ListView-DxPGNDw_.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-DGfxO89i.js → ListView-HZFAPppY.js} +3 -3
- package/dist/admin/chunks/{ListView-DGfxO89i.js.map → ListView-HZFAPppY.js.map} +1 -1
- package/dist/admin/chunks/{Login-Dtkhd0GV.mjs → Login-B_Z4SJVp.mjs} +2 -2
- package/dist/admin/chunks/{Login-Dtkhd0GV.mjs.map → Login-B_Z4SJVp.mjs.map} +1 -1
- package/dist/admin/chunks/{Login-Iw84AH9L.js → Login-CjRacmoJ.js} +2 -2
- package/dist/admin/chunks/{Login-Iw84AH9L.js.map → Login-CjRacmoJ.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js → MagicLinkEE-DZLJwQiC.js} +4 -4
- package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js.map → MagicLinkEE-DZLJwQiC.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs → MagicLinkEE-Oh6er0ux.mjs} +4 -4
- package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs.map → MagicLinkEE-Oh6er0ux.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs → MarketplacePage-BUksRtFV.mjs} +2 -2
- package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs.map → MarketplacePage-BUksRtFV.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js → MarketplacePage-D-PvEBXN.js} +2 -2
- package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js.map → MarketplacePage-D-PvEBXN.js.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs → ProfilePage-D0cczhuo.mjs} +3 -3
- package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs.map → ProfilePage-D0cczhuo.mjs.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js → ProfilePage-DghUK7p_.js} +3 -3
- package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js.map → ProfilePage-DghUK7p_.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js → PurchaseAuditLogs-BIBa5E6F.js} +2 -2
- package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js.map → PurchaseAuditLogs-BIBa5E6F.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs → PurchaseAuditLogs-BOqpGLyP.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs.map → PurchaseAuditLogs-BOqpGLyP.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs → PurchaseContentHistory-DqyUHK_8.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs.map → PurchaseContentHistory-DqyUHK_8.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js → PurchaseContentHistory-y25nmJsq.js} +2 -2
- package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js.map → PurchaseContentHistory-y25nmJsq.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js → PurchaseSingleSignOn-DloQ-NfU.js} +2 -2
- package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js.map → PurchaseSingleSignOn-DloQ-NfU.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs → PurchaseSingleSignOn-L8wgCpHG.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs.map → PurchaseSingleSignOn-L8wgCpHG.mjs.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-CKInlnSd.js → SelectRoles-ChZyGpDA.js} +3 -3
- package/dist/admin/chunks/{SelectRoles-CKInlnSd.js.map → SelectRoles-ChZyGpDA.js.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs → SelectRoles-hAMu1PFv.mjs} +3 -3
- package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs.map → SelectRoles-hAMu1PFv.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs → SingleSignOnPage-B-NIM66a.mjs} +3 -3
- package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs.map → SingleSignOnPage-B-NIM66a.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js → SingleSignOnPage-D-JNyyk2.js} +3 -3
- package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js.map → SingleSignOnPage-D-JNyyk2.js.map} +1 -1
- package/dist/admin/chunks/{Table-CBZnqMuN.js → Table-U6zMuKE5.js} +2 -2
- package/dist/admin/chunks/{Table-CBZnqMuN.js.map → Table-U6zMuKE5.js.map} +1 -1
- package/dist/admin/chunks/{Table-BohVeu0r.mjs → Table-b4wXHsis.mjs} +2 -2
- package/dist/admin/chunks/{Table-BohVeu0r.mjs.map → Table-b4wXHsis.mjs.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs → TokenTypeSelect-BUFFAUgx.mjs} +2 -2
- package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs.map → TokenTypeSelect-BUFFAUgx.mjs.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js → TokenTypeSelect-DCa4dg3r.js} +2 -2
- package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js.map → TokenTypeSelect-DCa4dg3r.js.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs → UseCasePage-BlHgNz7W.mjs} +2 -2
- package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs.map → UseCasePage-BlHgNz7W.mjs.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-CipG2GC4.js → UseCasePage-CYCPZztF.js} +2 -2
- package/dist/admin/chunks/{UseCasePage-CipG2GC4.js.map → UseCasePage-CYCPZztF.js.map} +1 -1
- package/dist/admin/chunks/{constants-BddeukI7.mjs → constants-BY_PZgf3.mjs} +2 -2
- package/dist/admin/chunks/{constants-BddeukI7.mjs.map → constants-BY_PZgf3.mjs.map} +1 -1
- package/dist/admin/chunks/{constants-CaerHoe3.js → constants-D3gM8ElF.js} +2 -2
- package/dist/admin/chunks/{constants-CaerHoe3.js.map → constants-D3gM8ElF.js.map} +1 -1
- package/dist/admin/chunks/{index-HGaughzt.js → index-BdqtLS-k.js} +32 -32
- package/dist/admin/chunks/{index-HGaughzt.js.map → index-BdqtLS-k.js.map} +1 -1
- package/dist/admin/chunks/{index-BM8-DG5K.mjs → index-C3BO0YZa.mjs} +32 -32
- package/dist/admin/chunks/{index-BM8-DG5K.mjs.map → index-C3BO0YZa.mjs.map} +1 -1
- package/dist/admin/chunks/uk-D7QEPfXn.mjs +788 -0
- package/dist/admin/chunks/uk-D7QEPfXn.mjs.map +1 -0
- package/dist/admin/chunks/uk-WdcESeZB.js +807 -0
- package/dist/admin/chunks/uk-WdcESeZB.js.map +1 -0
- package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs → useAdminRoles-D68i2BI_.mjs} +2 -2
- package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs.map → useAdminRoles-D68i2BI_.mjs.map} +1 -1
- package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js → useAdminRoles-Dy5KXk0R.js} +2 -2
- package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js.map → useAdminRoles-Dy5KXk0R.js.map} +1 -1
- package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs → validation-XFv2h8gD.mjs} +2 -2
- package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs.map → validation-XFv2h8gD.mjs.map} +1 -1
- package/dist/admin/chunks/{validation-dPl3P7dv.js → validation-sucpUItn.js} +2 -2
- package/dist/admin/chunks/{validation-dPl3P7dv.js.map → validation-sucpUItn.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +0 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +0 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +0 -1
- package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +0 -1
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +0 -201
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs.map +0 -1
- package/dist/admin/chunks/uk-gz16FlMw.js +0 -212
- package/dist/admin/chunks/uk-gz16FlMw.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPage-Bjr4f1Bs.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","Error","Textarea","EDIT_ROLE_SCHEMA","yup","object","shape","string","translatedErrors","optional","EditPage","toggleNotification","useNotification","match","useMatch","params","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","data","permissionsLayout","useGetRolePermissionLayoutQuery","roles","isRoleLoading","refetch","refetchRole","useAdminRoles","refetchOnMountOrArgChange","permissions","isLoadingPermissions","useGetRolePermissionsQuery","skip","updateRole","useUpdateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","Navigate","to","handleEditRoleSubmit","formik","permissionsToSend","didUpdateConditions","current","getPermissions","res","isBaseQueryError","setErrors","type","message","code","updateRes","setFormAfterSubmit","isFormDisabled","Page","Loading","Main","Title","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","validateOnChange","handleSubmit","handleChange","handleBlur","isSubmitting","form","Layouts","Header","primaryAction","startIcon","Check","loading","title","subtitle","navigationAction","BackButton","fallback","Content","Permissions","ref","layout","ProtectedEditPage","useTypedSelector","state","admin_app","settings","update","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditPage-CFSx_zaS.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","Error","Textarea","EDIT_ROLE_SCHEMA","yup","object","shape","string","translatedErrors","optional","EditPage","toggleNotification","useNotification","match","useMatch","params","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","data","permissionsLayout","useGetRolePermissionLayoutQuery","roles","isRoleLoading","refetch","refetchRole","useAdminRoles","refetchOnMountOrArgChange","permissions","isLoadingPermissions","useGetRolePermissionsQuery","skip","updateRole","useUpdateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","Navigate","to","handleEditRoleSubmit","formik","permissionsToSend","didUpdateConditions","current","getPermissions","res","isBaseQueryError","setErrors","type","message","code","updateRes","setFormAfterSubmit","isFormDisabled","Page","Loading","Main","Title","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","validateOnChange","handleSubmit","handleChange","handleBlur","isSubmitting","form","Layouts","Header","primaryAction","startIcon","Check","loading","title","subtitle","navigationAction","BackButton","fallback","Content","Permissions","ref","layout","ProtectedEditPage","useTypedSelector","state","admin_app","settings","update","Protect"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ var selectors = require('./selectors-Bf-6Fmez.js');
|
|
|
10
10
|
var admin = require('./admin-udBiOv2o.js');
|
|
11
11
|
var icons = require('@strapi/icons');
|
|
12
12
|
var yup = require('yup');
|
|
13
|
-
var index = require('./index-
|
|
13
|
+
var index = require('./index-BdqtLS-k.js');
|
|
14
14
|
var useEnterprise = require('./useEnterprise-IHd3AKd2.js');
|
|
15
15
|
var styledComponents = require('styled-components');
|
|
16
16
|
var useWebhooks = require('./useWebhooks-CROc5Uno.js');
|
|
@@ -663,7 +663,7 @@ const Message = ({ statusCode, message })=>{
|
|
|
663
663
|
const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, triggerResponse, data })=>{
|
|
664
664
|
const { formatMessage } = reactIntl.useIntl();
|
|
665
665
|
const [showTriggerResponse, setShowTriggerResponse] = React__namespace.useState(false);
|
|
666
|
-
const EventTable = useEnterprise.useEnterprise(EventTableCE, async ()=>(await Promise.resolve().then(function () { return require('./EventsTable-
|
|
666
|
+
const EventTable = useEnterprise.useEnterprise(EventTableCE, async ()=>(await Promise.resolve().then(function () { return require('./EventsTable-C1FNa1mh.js'); })).EventsTableEE);
|
|
667
667
|
/**
|
|
668
668
|
* Map the headers into a form that can be used within the formik form
|
|
669
669
|
*/ const mapHeaders = (headers)=>{
|
|
@@ -1007,4 +1007,4 @@ var EditPage$1 = /*#__PURE__*/Object.freeze({
|
|
|
1007
1007
|
exports.EditPage = EditPage;
|
|
1008
1008
|
exports.EditPage$1 = EditPage$1;
|
|
1009
1009
|
exports.Events = Events;
|
|
1010
|
-
//# sourceMappingURL=EditPage-
|
|
1010
|
+
//# sourceMappingURL=EditPage-CK8pIRKZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPage-CycQlsFL.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/components/Events.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/EventsTable.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx","../../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Flex,\n RawTable as Table,\n RawTbody as Tbody,\n RawTd as Td,\n RawTh as Th,\n RawThead as Thead,\n RawTr as Tr,\n Typography,\n VisuallyHidden,\n Field,\n CheckboxProps,\n} from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRootProps {\n children: React.ReactNode;\n}\n\nconst EventsRoot = ({ children }: EventsRootProps) => {\n const { formatMessage } = useIntl();\n\n const label = formatMessage({\n id: 'Settings.webhooks.form.events',\n defaultMessage: 'Events',\n });\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Label aria-hidden>{label}</Field.Label>\n {/* @ts-expect-error – TODO: add colCount & rowCount */}\n <StyledTable aria-label={label}>{children}</StyledTable>\n </Flex>\n );\n};\n\n// TODO check whether we want to move alternating background colour tables to the design system\nconst StyledTable = styled(Table)`\n tbody tr:nth-child(odd) {\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n thead th span {\n color: ${({ theme }) => theme.colors.neutral500};\n }\n\n td,\n th {\n padding-block-start: ${({ theme }) => theme.spaces[3]};\n padding-block-end: ${({ theme }) => theme.spaces[3]};\n width: 6%;\n vertical-align: middle;\n }\n\n tbody tr td:first-child {\n /**\n * Add padding to the start of the first column to avoid the checkbox appearing\n * too close to the edge of the table\n */\n padding-inline-start: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EventsHeaders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsHeadersProps {\n getHeaders?: typeof getCEHeaders;\n}\n\nconst getCEHeaders = (): MessageDescriptor[] => {\n const headers = [\n { id: 'Settings.webhooks.events.create', defaultMessage: 'Create' },\n { id: 'Settings.webhooks.events.update', defaultMessage: 'Update' },\n { id: 'app.utils.delete', defaultMessage: 'Delete' },\n { id: 'app.utils.publish', defaultMessage: 'Publish' },\n { id: 'app.utils.unpublish', defaultMessage: 'Unpublish' },\n ];\n\n return headers;\n};\n\nconst EventsHeaders = ({ getHeaders = getCEHeaders }: EventsHeadersProps) => {\n const { formatMessage } = useIntl();\n const headers = getHeaders();\n\n return (\n <Thead>\n <Tr>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.event.select',\n defaultMessage: 'Select event',\n })}\n </VisuallyHidden>\n </Th>\n {headers.map((header) => {\n if (['app.utils.publish', 'app.utils.unpublish'].includes(header?.id ?? '')) {\n return (\n <Th\n key={header.id}\n title={formatMessage({\n id: 'Settings.webhooks.event.publish-tooltip',\n defaultMessage: 'This event only exists for content with draft & publish enabled',\n })}\n >\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n }\n\n return (\n <Th key={header.id}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n })}\n </Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsBody\n * -----------------------------------------------------------------------------------------------*/\ninterface FormikContextValue {\n events: string[];\n}\n\ninterface EventsBodyProps {\n providedEvents?: Record<string, FormikContextValue['events']>;\n}\n\nconst EventsBody = ({ providedEvents }: EventsBodyProps) => {\n const events = providedEvents || getCEEvents();\n const { value = [], onChange } = useField<string[]>('events');\n\n const inputName = 'events';\n const inputValue = value;\n const disabledEvents: string[] = [];\n\n const formattedValue = inputValue.reduce<Record<string, string[]>>((acc, curr) => {\n const key = curr.split('.')[0];\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(curr);\n\n return acc;\n }, {});\n\n const handleSelect: EventsRowProps['handleSelect'] = (name, value) => {\n const set = new Set(inputValue);\n\n if (value) {\n set.add(name);\n } else {\n set.delete(name);\n }\n\n onChange(inputName, Array.from(set));\n };\n\n const handleSelectAll: EventsRowProps['handleSelectAll'] = (name, value) => {\n const set = new Set(inputValue);\n\n if (value) {\n events[name].forEach((event) => {\n if (!disabledEvents.includes(event)) {\n set.add(event);\n }\n });\n } else {\n events[name].forEach((event) => set.delete(event));\n }\n\n onChange(inputName, Array.from(set));\n };\n\n return (\n <Tbody>\n {Object.entries(events).map(([event, value]) => {\n return (\n <EventsRow\n disabledEvents={disabledEvents}\n key={event}\n name={event}\n events={value}\n inputValue={formattedValue[event]}\n handleSelect={handleSelect}\n handleSelectAll={handleSelectAll}\n />\n );\n })}\n </Tbody>\n );\n};\n\nconst getCEEvents = (): Required<Pick<EventsBodyProps, 'providedEvents'>>['providedEvents'] => {\n const entryEvents: FormikContextValue['events'] = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n ];\n\n return {\n entry: entryEvents,\n media: ['media.create', 'media.update', 'media.delete'],\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRowProps {\n disabledEvents?: string[];\n events?: string[];\n inputValue?: string[];\n handleSelect: (name: string, value: boolean) => void;\n handleSelectAll: (name: string, value: boolean) => void;\n name: string;\n}\n\nconst EventsRow = ({\n disabledEvents = [],\n name,\n events = [],\n inputValue = [],\n handleSelect,\n handleSelectAll,\n}: EventsRowProps) => {\n const { formatMessage } = useIntl();\n const enabledCheckboxes = events.filter((event) => !disabledEvents.includes(event));\n\n const hasSomeCheckboxSelected = inputValue.length > 0;\n const areAllCheckboxesSelected = inputValue.length === enabledCheckboxes.length;\n\n const onChangeAll: CheckboxProps['onCheckedChange'] = () => {\n const valueToSet = !areAllCheckboxesSelected;\n\n handleSelectAll(name, valueToSet);\n };\n\n const targetColumns = 5;\n\n return (\n <Tr>\n <Td>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n name={name}\n checked={\n hasSomeCheckboxSelected && !areAllCheckboxesSelected\n ? 'indeterminate'\n : areAllCheckboxesSelected\n }\n onCheckedChange={onChangeAll}\n >\n {removeHyphensAndTitleCase(name)}\n </Checkbox>\n </Td>\n\n {events.map((event) => {\n return (\n <Td key={event} textAlign=\"center\">\n <Flex width=\"100%\" justifyContent=\"center\">\n <Checkbox\n disabled={disabledEvents.includes(event)}\n aria-label={event}\n name={event}\n checked={inputValue.includes(event)}\n onCheckedChange={(value) => handleSelect(event, !!value)}\n />\n </Flex>\n </Td>\n );\n })}\n {events.length < targetColumns && <Td colSpan={targetColumns - events.length} />}\n </Tr>\n );\n};\n\n/**\n * Converts a string to title case and removes hyphens.\n */\nconst removeHyphensAndTitleCase = (str: string): string =>\n str\n .replace(/-/g, ' ')\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n\nconst Events = { Root: EventsRoot, Headers: EventsHeaders, Body: EventsBody, Row: EventsRow };\n\nexport { Events };\nexport type { EventsRowProps, EventsHeadersProps, EventsRootProps, EventsBodyProps };\n","import { Events } from './Events';\n\nconst EventTableCE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n </Events.Root>\n );\n};\n\nexport { EventTableCE };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"string\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n handleChange(value);\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n","import { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check, Cross, Loader } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\n/* -------------------------------------------------------------------------------------------------\n * TriggerContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TriggerContainerProps extends Pick<StatusProps, 'isPending'> {\n onCancel: () => void;\n response?: {\n statusCode: number;\n message?: string;\n };\n}\n\nconst TriggerContainer = ({ isPending, onCancel, response }: TriggerContainerProps) => {\n const { statusCode, message } = response ?? {};\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={5} shadow=\"filterShadow\" hasRadius>\n <Grid.Root gap={4} style={{ alignItems: 'center' }}>\n <Grid.Item col={3} direction=\"column\" alignItems=\"stretch\">\n <Typography>\n {formatMessage({\n id: 'Settings.webhooks.trigger.test',\n defaultMessage: 'Test-trigger',\n })}\n </Typography>\n </Grid.Item>\n <Grid.Item col={3} direction=\"column\" alignItems=\"stretch\">\n <Status isPending={isPending} statusCode={statusCode} />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n {!isPending ? (\n <Message statusCode={statusCode} message={message} />\n ) : (\n <Flex justifyContent=\"flex-end\">\n <button onClick={onCancel} type=\"button\">\n <Flex gap={2} alignItems=\"center\">\n <Typography textColor=\"neutral400\">\n {formatMessage({\n id: 'Settings.webhooks.trigger.cancel',\n defaultMessage: 'cancel',\n })}\n </Typography>\n <Cross fill=\"neutral400\" height=\"1.2rem\" width=\"1.2rem\" />\n </Flex>\n </button>\n </Flex>\n )}\n </Grid.Item>\n </Grid.Root>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StatusProps {\n isPending: boolean;\n statusCode?: number;\n}\n\nconst Status = ({ isPending, statusCode }: StatusProps) => {\n const { formatMessage } = useIntl();\n\n if (isPending || !statusCode) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Loader height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.pending', defaultMessage: 'pending' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Check fill=\"success700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.success', defaultMessage: 'success' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Cross fill=\"danger700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.error', defaultMessage: 'error' })} {statusCode}\n </Typography>\n </Flex>\n );\n }\n\n return null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Message\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MessageProps {\n statusCode?: number;\n message?: string;\n}\n\nconst Message = ({ statusCode, message }: MessageProps) => {\n const { formatMessage } = useIntl();\n\n if (!statusCode) {\n return null;\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Typography textColor=\"neutral600\" ellipsis>\n {formatMessage({\n id: 'Settings.webhooks.trigger.success.label',\n defaultMessage: 'Trigger succeeded',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Flex maxWidth={`25rem`} justifyContent=\"flex-end\" title={message}>\n <Typography ellipsis textColor=\"neutral600\">\n {message}\n </Typography>\n </Flex>\n </Flex>\n );\n }\n\n return null;\n};\n\nexport { TriggerContainer };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, TextInput } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={<BackButton fallback=\"../webhooks\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormProps, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n /**\n * Prevents the notifications from showing up twice because the function identity\n * coming from the helper plugin is not stable\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableFormatAPIError = React.useCallback(formatAPIError, []);\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: stableFormatAPIError(error),\n });\n }\n }, [error, toggleNotification, stableFormatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit: WebhookFormProps['handleSubmit'] = async (data, helpers) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(`../webhooks/${res.data.id}`, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["EventsRoot","children","formatMessage","useIntl","label","id","defaultMessage","_jsxs","Flex","direction","alignItems","gap","_jsx","Field","Label","aria-hidden","StyledTable","aria-label","styled","Table","theme","colors","neutral100","neutral500","spaces","getCEHeaders","headers","EventsHeaders","getHeaders","Thead","Tr","Th","VisuallyHidden","map","header","includes","title","Typography","variant","textColor","EventsBody","providedEvents","events","getCEEvents","value","onChange","useField","inputName","inputValue","disabledEvents","formattedValue","reduce","acc","curr","key","split","push","handleSelect","name","set","Set","add","delete","Array","from","handleSelectAll","forEach","event","Tbody","Object","entries","EventsRow","entryEvents","entry","media","enabledCheckboxes","filter","hasSomeCheckboxSelected","length","areAllCheckboxesSelected","onChangeAll","valueToSet","targetColumns","Td","Checkbox","checked","onCheckedChange","removeHyphensAndTitleCase","textAlign","width","justifyContent","disabled","colSpan","str","replace","word","charAt","toUpperCase","slice","toLowerCase","join","Events","Root","Headers","Body","Row","EventTableCE","AddHeaderButton","TextButton","HeadersInput","addFieldRow","useForm","state","removeFieldRow","setFieldValue","removeRow","index","DSField","Box","padding","background","hasRadius","val","Grid","Item","col","HeaderCombobox","style","flex","StringInput","type","IconButton","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","field","useEffect","headerOptions","some","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error","TriggerContainer","isPending","onCancel","response","statusCode","message","shadow","Status","Message","button","Cross","fill","Loader","Check","ellipsis","maxWidth","WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","showTriggerResponse","setShowTriggerResponse","EventTable","useEnterprise","EventsTableEE","mapHeaders","keys","Form","initialValues","url","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","Publish","loading","navigationAction","BackButton","fallback","Content","required","size","InputRenderer","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of","cleanData","EditPage","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","stableFormatAPIError","useCallback","setIsTriggering","setTriggerResponse","isLoading","webhooks","createWebhook","updateWebhook","useWebhooks","skip","handleTriggerWebhook","res","helpers","isBaseQueryError","setErrors","Page","Loading","webhook","Main","Title","ProtectedEditPage","permissions","useTypedSelector","selectAdminPermissions","Protect","settings","update"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,UAAa,GAAA,CAAC,EAAEC,QAAQ,EAAmB,GAAA;IAC/C,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,QAAQF,aAAc,CAAA;QAC1BG,EAAI,EAAA,+BAAA;QACJC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,qBACEC,eAACC,CAAAA,iBAAAA,EAAAA;QAAKC,SAAU,EAAA,QAAA;QAASC,UAAW,EAAA,SAAA;QAAUC,GAAK,EAAA,CAAA;;AACjD,0BAAAC,cAAA,CAACC,mBAAMC,KAAK,EAAA;gBAACC,aAAW,EAAA,IAAA;AAAEX,gBAAAA,QAAAA,EAAAA;;0BAE1BQ,cAACI,CAAAA,WAAAA,EAAAA;gBAAYC,YAAYb,EAAAA,KAAAA;AAAQH,gBAAAA,QAAAA,EAAAA;;;;AAGvC,CAAA;AAEA;AACA,MAAMe,WAAAA,GAAcE,uBAAOC,CAAAA,qBAAAA,CAAM;;gBAEjB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;;WAI9C,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACE,UAAU,CAAC;;;;;yBAK3B,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAMI,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;uBACnC,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAMI,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;;;;;;;;0BAU9B,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAMI,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;AAE3D,CAAC;AAUD,MAAMC,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,OAAU,GAAA;AACd,QAAA;YAAErB,EAAI,EAAA,iCAAA;YAAmCC,cAAgB,EAAA;AAAS,SAAA;AAClE,QAAA;YAAED,EAAI,EAAA,iCAAA;YAAmCC,cAAgB,EAAA;AAAS,SAAA;AAClE,QAAA;YAAED,EAAI,EAAA,kBAAA;YAAoBC,cAAgB,EAAA;AAAS,SAAA;AACnD,QAAA;YAAED,EAAI,EAAA,mBAAA;YAAqBC,cAAgB,EAAA;AAAU,SAAA;AACrD,QAAA;YAAED,EAAI,EAAA,qBAAA;YAAuBC,cAAgB,EAAA;AAAY;AAC1D,KAAA;IAED,OAAOoB,OAAAA;AACT,CAAA;AAEA,MAAMC,aAAgB,GAAA,CAAC,EAAEC,UAAAA,GAAaH,YAAY,EAAsB,GAAA;IACtE,MAAM,EAAEvB,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMuB,OAAUE,GAAAA,UAAAA,EAAAA;AAEhB,IAAA,qBACEhB,cAACiB,CAAAA,qBAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAtB,eAACuB,CAAAA,kBAAAA,EAAAA;;8BACClB,cAACmB,CAAAA,kBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAnB,cAACoB,CAAAA,2BAAAA,EAAAA;kCACE9B,aAAc,CAAA;4BACbG,EAAI,EAAA,gCAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA;;;gBAGHoB,OAAQO,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;oBACZ,IAAI;AAAC,wBAAA,mBAAA;AAAqB,wBAAA;AAAsB,qBAAA,CAACC,QAAQ,CAACD,MAAQ7B,EAAAA,EAAAA,IAAM,EAAK,CAAA,EAAA;AAC3E,wBAAA,qBACEO,cAACmB,CAAAA,kBAAAA,EAAAA;AAECK,4BAAAA,KAAAA,EAAOlC,aAAc,CAAA;gCACnBG,EAAI,EAAA,yCAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA,CAAA;AAEA,4BAAA,QAAA,gBAAAM,cAACyB,CAAAA,uBAAAA,EAAAA;gCAAWC,OAAQ,EAAA,OAAA;gCAAQC,SAAU,EAAA,YAAA;0CACnCrC,aAAcgC,CAAAA,MAAAA;;AAPZA,yBAAAA,EAAAA,MAAAA,CAAO7B,EAAE,CAAA;AAWpB;AAEA,oBAAA,qBACEO,cAACmB,CAAAA,kBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAnB,cAACyB,CAAAA,uBAAAA,EAAAA;4BAAWC,OAAQ,EAAA,OAAA;4BAAQC,SAAU,EAAA,YAAA;sCACnCrC,aAAcgC,CAAAA,MAAAA;;AAFVA,qBAAAA,EAAAA,MAAAA,CAAO7B,EAAE,CAAA;AAMtB,iBAAA;;;;AAIR,CAAA;AAaA,MAAMmC,UAAa,GAAA,CAAC,EAAEC,cAAc,EAAmB,GAAA;AACrD,IAAA,MAAMC,SAASD,cAAkBE,IAAAA,WAAAA,EAAAA;AACjC,IAAA,MAAM,EAAEC,KAAQ,GAAA,EAAE,EAAEC,QAAQ,EAAE,GAAGC,cAAmB,CAAA,QAAA,CAAA;AAEpD,IAAA,MAAMC,SAAY,GAAA,QAAA;AAClB,IAAA,MAAMC,UAAaJ,GAAAA,KAAAA;AACnB,IAAA,MAAMK,iBAA2B,EAAE;AAEnC,IAAA,MAAMC,cAAiBF,GAAAA,UAAAA,CAAWG,MAAM,CAA2B,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;AACvE,QAAA,MAAMC,MAAMD,IAAKE,CAAAA,KAAK,CAAC,GAAA,CAAI,CAAC,CAAE,CAAA;AAE9B,QAAA,IAAI,CAACH,GAAG,CAACE,GAAAA,CAAI,EAAE;YACbF,GAAG,CAACE,GAAI,CAAA,GAAG,EAAE;AACf;AACAF,QAAAA,GAAG,CAACE,GAAAA,CAAI,CAACE,IAAI,CAACH,IAAAA,CAAAA;QAEd,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;IAEJ,MAAMK,YAAAA,GAA+C,CAACC,IAAMd,EAAAA,KAAAA,GAAAA;QAC1D,MAAMe,GAAAA,GAAM,IAAIC,GAAIZ,CAAAA,UAAAA,CAAAA;AAEpB,QAAA,IAAIJ,KAAO,EAAA;AACTe,YAAAA,GAAAA,CAAIE,GAAG,CAACH,IAAAA,CAAAA;SACH,MAAA;AACLC,YAAAA,GAAAA,CAAIG,MAAM,CAACJ,IAAAA,CAAAA;AACb;QAEAb,QAASE,CAAAA,SAAAA,EAAWgB,KAAMC,CAAAA,IAAI,CAACL,GAAAA,CAAAA,CAAAA;AACjC,KAAA;IAEA,MAAMM,eAAAA,GAAqD,CAACP,IAAMd,EAAAA,KAAAA,GAAAA;QAChE,MAAMe,GAAAA,GAAM,IAAIC,GAAIZ,CAAAA,UAAAA,CAAAA;AAEpB,QAAA,IAAIJ,KAAO,EAAA;AACTF,YAAAA,MAAM,CAACgB,IAAAA,CAAK,CAACQ,OAAO,CAAC,CAACC,KAAAA,GAAAA;AACpB,gBAAA,IAAI,CAAClB,cAAAA,CAAed,QAAQ,CAACgC,KAAQ,CAAA,EAAA;AACnCR,oBAAAA,GAAAA,CAAIE,GAAG,CAACM,KAAAA,CAAAA;AACV;AACF,aAAA,CAAA;SACK,MAAA;YACLzB,MAAM,CAACgB,KAAK,CAACQ,OAAO,CAAC,CAACC,KAAAA,GAAUR,GAAIG,CAAAA,MAAM,CAACK,KAAAA,CAAAA,CAAAA;AAC7C;QAEAtB,QAASE,CAAAA,SAAAA,EAAWgB,KAAMC,CAAAA,IAAI,CAACL,GAAAA,CAAAA,CAAAA;AACjC,KAAA;AAEA,IAAA,qBACE/C,cAACwD,CAAAA,qBAAAA,EAAAA;kBACEC,MAAOC,CAAAA,OAAO,CAAC5B,MAAQT,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACkC,OAAOvB,KAAM,CAAA,GAAA;AACzC,YAAA,qBACEhC,cAAC2D,CAAAA,SAAAA,EAAAA;gBACCtB,cAAgBA,EAAAA,cAAAA;gBAEhBS,IAAMS,EAAAA,KAAAA;gBACNzB,MAAQE,EAAAA,KAAAA;gBACRI,UAAYE,EAAAA,cAAc,CAACiB,KAAM,CAAA;gBACjCV,YAAcA,EAAAA,YAAAA;gBACdQ,eAAiBA,EAAAA;AALZE,aAAAA,EAAAA,KAAAA,CAAAA;AAQX,SAAA;;AAGN,CAAA;AAEA,MAAMxB,WAAc,GAAA,IAAA;AAClB,IAAA,MAAM6B,WAA4C,GAAA;AAChD,QAAA,cAAA;AACA,QAAA,cAAA;AACA,QAAA,cAAA;AACA,QAAA,eAAA;AACA,QAAA;AACD,KAAA;IAED,OAAO;QACLC,KAAOD,EAAAA,WAAAA;QACPE,KAAO,EAAA;AAAC,YAAA,cAAA;AAAgB,YAAA,cAAA;AAAgB,YAAA;AAAe;AACzD,KAAA;AACF,CAAA;AAeA,MAAMH,YAAY,CAAC,EACjBtB,cAAiB,GAAA,EAAE,EACnBS,IAAI,EACJhB,MAAS,GAAA,EAAE,EACXM,UAAa,GAAA,EAAE,EACfS,YAAY,EACZQ,eAAe,EACA,GAAA;IACf,MAAM,EAAE/D,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMwE,iBAAAA,GAAoBjC,OAAOkC,MAAM,CAAC,CAACT,KAAU,GAAA,CAAClB,cAAed,CAAAA,QAAQ,CAACgC,KAAAA,CAAAA,CAAAA;IAE5E,MAAMU,uBAAAA,GAA0B7B,UAAW8B,CAAAA,MAAM,GAAG,CAAA;AACpD,IAAA,MAAMC,wBAA2B/B,GAAAA,UAAAA,CAAW8B,MAAM,KAAKH,kBAAkBG,MAAM;AAE/E,IAAA,MAAME,WAAgD,GAAA,IAAA;AACpD,QAAA,MAAMC,aAAa,CAACF,wBAAAA;AAEpBd,QAAAA,eAAAA,CAAgBP,IAAMuB,EAAAA,UAAAA,CAAAA;AACxB,KAAA;AAEA,IAAA,MAAMC,aAAgB,GAAA,CAAA;AAEtB,IAAA,qBACE3E,eAACuB,CAAAA,kBAAAA,EAAAA;;0BACClB,cAACuE,CAAAA,kBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAvE,cAACwE,CAAAA,qBAAAA,EAAAA;AACCnE,oBAAAA,YAAAA,EAAYf,aAAc,CAAA;wBACxBG,EAAI,EAAA,2BAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAoD,IAAMA,EAAAA,IAAAA;oBACN2B,OACER,EAAAA,uBAAAA,IAA2B,CAACE,wBAAAA,GACxB,eACAA,GAAAA,wBAAAA;oBAENO,eAAiBN,EAAAA,WAAAA;8BAEhBO,yBAA0B7B,CAAAA,IAAAA;;;YAI9BhB,MAAOT,CAAAA,GAAG,CAAC,CAACkC,KAAAA,GAAAA;AACX,gBAAA,qBACEvD,cAACuE,CAAAA,kBAAAA,EAAAA;oBAAeK,SAAU,EAAA,QAAA;AACxB,oBAAA,QAAA,gBAAA5E,cAACJ,CAAAA,iBAAAA,EAAAA;wBAAKiF,KAAM,EAAA,MAAA;wBAAOC,cAAe,EAAA,QAAA;AAChC,wBAAA,QAAA,gBAAA9E,cAACwE,CAAAA,qBAAAA,EAAAA;4BACCO,QAAU1C,EAAAA,cAAAA,CAAed,QAAQ,CAACgC,KAAAA,CAAAA;4BAClClD,YAAYkD,EAAAA,KAAAA;4BACZT,IAAMS,EAAAA,KAAAA;4BACNkB,OAASrC,EAAAA,UAAAA,CAAWb,QAAQ,CAACgC,KAAAA,CAAAA;AAC7BmB,4BAAAA,eAAAA,EAAiB,CAAC1C,KAAAA,GAAUa,YAAaU,CAAAA,KAAAA,EAAO,CAAC,CAACvB,KAAAA;;;AAP/CuB,iBAAAA,EAAAA,KAAAA,CAAAA;AAYb,aAAA,CAAA;YACCzB,MAAOoC,CAAAA,MAAM,GAAGI,aAAAA,kBAAiBtE,cAACuE,CAAAA,kBAAAA,EAAAA;gBAAGS,OAASV,EAAAA,aAAAA,GAAgBxC,OAAOoC;;;;AAG5E,CAAA;AAEA;;AAEC,IACD,MAAMS,yBAAAA,GAA4B,CAACM,GAAAA,GACjCA,GACGC,CAAAA,OAAO,CAAC,IAAA,EAAM,GACdvC,CAAAA,CAAAA,KAAK,CAAC,GAAA,CAAA,CACNtB,GAAG,CAAC,CAAC8D,IAAAA,GAASA,IAAKC,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,IAAKG,CAAAA,KAAK,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,CAAA,CACtEC,IAAI,CAAC,GAAA,CAAA;AAEV,MAAMC,MAAS,GAAA;IAAEC,IAAMtG,EAAAA,UAAAA;IAAYuG,OAAS5E,EAAAA,aAAAA;IAAe6E,IAAMhE,EAAAA,UAAAA;IAAYiE,GAAKlC,EAAAA;AAAU;;ACzT5F,MAAMmC,YAAe,GAAA,IAAA;IACnB,qBACEnG,eAAA,CAAC8F,OAAOC,IAAI,EAAA;;AACV,0BAAA1F,cAAA,CAACyF,OAAOE,OAAO,EAAA,EAAA,CAAA;AACf,0BAAA3F,cAAA,CAACyF,OAAOG,IAAI,EAAA,EAAA;;;AAGlB,CAAA;;ACWA,MAAMG,eAAAA,GAAkBzF,uBAAO0F,CAAAA,uBAAAA,CAAW;;AAE1C,CAAC;AAWD,MAAMC,YAAe,GAAA,IAAA;IACnB,MAAM,EAAE3G,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAM2G,cAAcC,aAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,WAAW,CAAA;AACxE,IAAA,MAAMG,iBAAiBF,aAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMC,cAAc,CAAA;AAC9E,IAAA,MAAMC,gBAAgBH,aAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMnE,QAAQ,CAAA;AACvE,IAAA,MAAM,EAAED,KAAAA,GAAQ,EAAE,EAAE,GAAGE,cAAmB,CAAA,SAAA,CAAA;AAE1C,IAAA,MAAMqE,YAAY,CAACC,KAAAA,GAAAA;;QAEjB,IAAIxE,KAAAA,CAAMkC,MAAM,KAAK,CAAG,EAAA;AACtBoC,YAAAA,aAAAA,CAAc,SAAW,EAAA;AAAC,gBAAA;oBAAE5D,GAAK,EAAA,EAAA;oBAAIV,KAAO,EAAA;AAAG;AAAE,aAAA,CAAA;SAC5C,MAAA;AACLqE,YAAAA,cAAAA,CAAe,SAAWG,EAAAA,KAAAA,CAAAA;AAC5B;AACF,KAAA;AAEA,IAAA,qBACE7G,eAACC,CAAAA,iBAAAA,EAAAA;QAAKC,SAAU,EAAA,QAAA;QAASC,UAAW,EAAA,SAAA;QAAUC,GAAK,EAAA,CAAA;;AACjD,0BAAAC,cAAA,CAACyG,mBAAQvG,KAAK,EAAA;0BACXZ,aAAc,CAAA;oBACbG,EAAI,EAAA,gCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFC,eAAC+G,CAAAA,gBAAAA,EAAAA;gBAAIC,OAAS,EAAA,CAAA;gBAAGC,UAAW,EAAA,YAAA;gBAAaC,SAAS,EAAA,IAAA;;oBAC/C7E,KAAMX,CAAAA,GAAG,CAAC,CAACyF,GAAKN,EAAAA,OAAAA,GAAAA;wBACf,qBACE7G,eAAA,CAACoH,kBAAKrB,IAAI,EAAA;4BAA6C3F,GAAK,EAAA,CAAA;4BAAG4G,OAAS,EAAA,CAAA;;AACtE,8CAAA3G,cAAA,CAAC+G,kBAAKC,IAAI,EAAA;oCAACC,GAAK,EAAA,CAAA;oCAAGpH,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;AAC/C,oCAAA,QAAA,gBAAAE,cAACkH,CAAAA,cAAAA,EAAAA;AACCpE,wCAAAA,IAAAA,EAAM,CAAC,QAAQ,EAAE0D,OAAAA,CAAM,IAAI,CAAC;AAC5BnG,wCAAAA,YAAAA,EAAY,CAAC,IAAI,EAAEmG,OAAQ,GAAA,CAAA,CAAE,IAAI,CAAC;AAClChH,wCAAAA,KAAAA,EAAOF,aAAc,CAAA;4CACnBG,EAAI,EAAA,uBAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;;AAGJ,8CAAAM,cAAA,CAAC+G,kBAAKC,IAAI,EAAA;oCAACC,GAAK,EAAA,CAAA;oCAAGpH,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;AAC/C,oCAAA,QAAA,gBAAAH,eAACC,CAAAA,iBAAAA,EAAAA;wCAAKE,UAAW,EAAA,UAAA;wCAAWC,GAAK,EAAA,CAAA;;0DAC/BC,cAAC0G,CAAAA,gBAAAA,EAAAA;gDAAIS,KAAO,EAAA;oDAAEC,IAAM,EAAA;AAAE,iDAAA;AACpB,gDAAA,QAAA,gBAAApH,cAACqH,CAAAA,yBAAAA,EAAAA;AACCvE,oDAAAA,IAAAA,EAAM,CAAC,QAAQ,EAAE0D,OAAAA,CAAM,MAAM,CAAC;AAC9BnG,oDAAAA,YAAAA,EAAY,CAAC,IAAI,EAAEmG,OAAQ,GAAA,CAAA,CAAE,MAAM,CAAC;AACpChH,oDAAAA,KAAAA,EAAOF,aAAc,CAAA;wDACnBG,EAAI,EAAA,yBAAA;wDACJC,cAAgB,EAAA;AAClB,qDAAA,CAAA;oDACA4H,IAAK,EAAA;;;0DAGTtH,cAACuH,CAAAA,uBAAAA,EAAAA;gDACC1C,KAAM,EAAA,MAAA;gDACN2C,MAAO,EAAA,MAAA;AACPC,gDAAAA,OAAAA,EAAS,IAAMlB,SAAUC,CAAAA,OAAAA,CAAAA;gDACzBkB,KAAM,EAAA,YAAA;AACNlI,gDAAAA,KAAAA,EAAOF,aACL,CAAA;oDACEG,EAAI,EAAA,kCAAA;oDACJC,cAAgB,EAAA;iDAElB,EAAA;AAAEiI,oDAAAA,MAAAA,EAAQnB,OAAQ,GAAA;AAAE,iDAAA,CAAA;gDAEtBc,IAAK,EAAA,QAAA;AAEL,gDAAA,QAAA,gBAAAtH,cAAC4H,CAAAA,WAAAA,EAAAA;oDAAM/C,KAAM,EAAA;;;;;;;2BAtCL,CAAC,EAAE2B,OAAM,CAAA,CAAC,EAAEqB,IAAAA,CAAKC,SAAS,CAAChB,GAAAA,CAAIpE,GAAG,CAAA,CAAE,CAAC,CAAA;AA4CzD,qBAAA,CAAA;kCACA1C,cAAC0G,CAAAA,gBAAAA,EAAAA;wBAAIqB,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAA/H,cAAC+F,CAAAA,eAAAA,EAAAA;4BACCuB,IAAK,EAAA,QAAA;4BACLG,OAAS,EAAA,IAAA;AACPvB,gCAAAA,WAAAA,CAAY,SAAW,EAAA;oCAAExD,GAAK,EAAA,EAAA;oCAAIV,KAAO,EAAA;AAAG,iCAAA,CAAA;AAC9C,6BAAA;AACAgG,4BAAAA,SAAAA,gBAAWhI,cAACiI,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;sCAEX3I,aAAc,CAAA;gCACbG,EAAI,EAAA,iCAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;;;;;;AAMZ,CAAA;AAWA,MAAMwH,cAAAA,GAAiB,CAAC,EAAEpE,IAAI,EAAEtD,KAAK,EAAE,GAAG0I,SAAgC,EAAA,GAAA;AACxE,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,gBAAAA,CAAMC,QAAQ,CAAgB;AAAIC,QAAAA,GAAAA;AAAa,KAAA,CAAA;AAC7E,IAAA,MAAM,EAAEvG,KAAAA,EAAOlB,OAAO,EAAE,GAAGoB,cAAmB,CAAA,SAAA,CAAA;AAC9C,IAAA,MAAMsG,QAAQtG,cAASY,CAAAA,IAAAA,CAAAA;AAEvBuF,IAAAA,gBAAAA,CAAMI,SAAS,CAAC,IAAA;AACd,QAAA,MAAMC,gBAAgBH,YAAavE,CAAAA,MAAM,CACvC,CAACtB,GAAAA,GAAQ,CAAC5B,OAAS6H,EAAAA,IAAAA,CAAK,CAACrH,MAAWA,GAAAA,MAAAA,CAAOoB,GAAG,KAAK8F,KAAAA,CAAMxG,KAAK,IAAIV,MAAAA,CAAOoB,GAAG,KAAKA,GAAAA,CAAAA,CAAAA;QAGnF0F,UAAWM,CAAAA,aAAAA,CAAAA;KACV,EAAA;AAAC5H,QAAAA,OAAAA;AAAS0H,QAAAA,KAAAA,CAAMxG;AAAM,KAAA,CAAA;AAEzB,IAAA,MAAM4G,eAA0C,CAAC5G,KAAAA,GAAAA;QAC/CwG,KAAMvG,CAAAA,QAAQ,CAACa,IAAMd,EAAAA,KAAAA,CAAAA;AACvB,KAAA;AAEA,IAAA,MAAM6G,qBAAqB,CAAC7G,KAAAA,GAAAA;AAC1BoG,QAAAA,UAAAA,CAAW,CAACU,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAM9G,gBAAAA;AAAqB,aAAA,CAAA;QAEpD4G,YAAa5G,CAAAA,KAAAA,CAAAA;AACf,KAAA;IAEA,qBACErC,eAAA,CAAC8G,mBAAQf,IAAI,EAAA;QAAC5C,IAAMA,EAAAA,IAAAA;AAAMiG,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;;AAC1C,0BAAA/I,cAAA,CAACyG,mBAAQvG,KAAK,EAAA;AAAEV,gBAAAA,QAAAA,EAAAA;;0BAChBQ,cAACgJ,CAAAA,qBAAAA,EAAAA;AACE,gBAAA,GAAGd,SAAS;AACbe,gBAAAA,OAAAA,EAAS,IAAML,YAAa,CAAA,EAAA,CAAA;gBAC5B3G,QAAU2G,EAAAA,YAAAA;gBACVM,cAAgBL,EAAAA,kBAAAA;gBAChBM,WAAY,EAAA,EAAA;gBACZC,SAAS,EAAA,IAAA;AACTpH,gBAAAA,KAAAA,EAAOwG,MAAMxG,KAAK;AAEjBmG,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQ9G,GAAG,CAAC,CAACqB,GAAAA,iBACZ1C,cAACqJ,CAAAA,2BAAAA,EAAAA;wBAAerH,KAAOU,EAAAA,GAAAA;AACpBA,wBAAAA,QAAAA,EAAAA;AAD8BA,qBAAAA,EAAAA,GAAAA,CAAAA;;AAKrC,0BAAA1C,cAAA,CAACyG,mBAAQ6C,KAAK,EAAA,EAAA;;;AAGpB,CAAA;AAEA,MAAMf,YAAe,GAAA;AACnB,IAAA,MAAA;AACA,IAAA,QAAA;AACA,IAAA,gBAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,+BAAA;AACA,IAAA,gCAAA;AACA,IAAA,eAAA;AACA,IAAA,eAAA;AACA,IAAA,YAAA;AACA,IAAA,gBAAA;AACA,IAAA,cAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,QAAA;AACA,IAAA,WAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,mBAAA;AACA,IAAA,eAAA;AACA,IAAA,UAAA;AACA,IAAA,qBAAA;AACA,IAAA,cAAA;AACA,IAAA,QAAA;AACA,IAAA,QAAA;AACA,IAAA,qBAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,IAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,KAAA;AACA,IAAA;AACD,CAAA;;ACxMD,MAAMgB,gBAAAA,GAAmB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAyB,GAAA;AAChF,IAAA,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAE,GAAGF,YAAY,EAAC;IAC7C,MAAM,EAAEpK,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACES,cAAC0G,CAAAA,gBAAAA,EAAAA;QAAIE,UAAW,EAAA,UAAA;QAAWD,OAAS,EAAA,CAAA;QAAGkD,MAAO,EAAA,cAAA;QAAehD,SAAS,EAAA,IAAA;gCACpElH,eAAA,CAACoH,kBAAKrB,IAAI,EAAA;YAAC3F,GAAK,EAAA,CAAA;YAAGoH,KAAO,EAAA;gBAAErH,UAAY,EAAA;AAAS,aAAA;;AAC/C,8BAAAE,cAAA,CAAC+G,kBAAKC,IAAI,EAAA;oBAACC,GAAK,EAAA,CAAA;oBAAGpH,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;AAC/C,oBAAA,QAAA,gBAAAE,cAACyB,CAAAA,uBAAAA,EAAAA;kCACEnC,aAAc,CAAA;4BACbG,EAAI,EAAA,gCAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA;;;AAGJ,8BAAAM,cAAA,CAAC+G,kBAAKC,IAAI,EAAA;oBAACC,GAAK,EAAA,CAAA;oBAAGpH,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;AAC/C,oBAAA,QAAA,gBAAAE,cAAC8J,CAAAA,MAAAA,EAAAA;wBAAON,SAAWA,EAAAA,SAAAA;wBAAWG,UAAYA,EAAAA;;;AAE5C,8BAAA3J,cAAA,CAAC+G,kBAAKC,IAAI,EAAA;oBAACC,GAAK,EAAA,CAAA;oBAAGpH,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;AAC9C,oBAAA,QAAA,EAAA,CAAC0J,0BACAxJ,cAAC+J,CAAAA,OAAAA,EAAAA;wBAAQJ,UAAYA,EAAAA,UAAAA;wBAAYC,OAASA,EAAAA;uCAE1C5J,cAACJ,CAAAA,iBAAAA,EAAAA;wBAAKkF,cAAe,EAAA,UAAA;AACnB,wBAAA,QAAA,gBAAA9E,cAACgK,CAAAA,QAAAA,EAAAA;4BAAOvC,OAASgC,EAAAA,QAAAA;4BAAUnC,IAAK,EAAA,QAAA;AAC9B,4BAAA,QAAA,gBAAA3H,eAACC,CAAAA,iBAAAA,EAAAA;gCAAKG,GAAK,EAAA,CAAA;gCAAGD,UAAW,EAAA,QAAA;;kDACvBE,cAACyB,CAAAA,uBAAAA,EAAAA;wCAAWE,SAAU,EAAA,YAAA;kDACnBrC,aAAc,CAAA;4CACbG,EAAI,EAAA,kCAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;kDAEFM,cAACiK,CAAAA,WAAAA,EAAAA;wCAAMC,IAAK,EAAA,YAAA;wCAAa1C,MAAO,EAAA,QAAA;wCAAS3C,KAAM,EAAA;;;;;;;;;;AASjE,CAAA;AAWA,MAAMiF,SAAS,CAAC,EAAEN,SAAS,EAAEG,UAAU,EAAe,GAAA;IACpD,MAAM,EAAErK,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,IAAIiK,SAAAA,IAAa,CAACG,UAAY,EAAA;AAC5B,QAAA,qBACEhK,eAACC,CAAAA,iBAAAA,EAAAA;YAAKG,GAAK,EAAA,CAAA;YAAGD,UAAW,EAAA,QAAA;;8BACvBE,cAACmK,CAAAA,YAAAA,EAAAA;oBAAO3C,MAAO,EAAA,QAAA;oBAAS3C,KAAM,EAAA;;8BAC9B7E,cAACyB,CAAAA,uBAAAA,EAAAA;8BACEnC,aAAc,CAAA;wBAAEG,EAAI,EAAA,mCAAA;wBAAqCC,cAAgB,EAAA;AAAU,qBAAA;;;;AAI5F;IAEA,IAAIiK,UAAAA,IAAc,GAAOA,IAAAA,UAAAA,GAAa,GAAK,EAAA;AACzC,QAAA,qBACEhK,eAACC,CAAAA,iBAAAA,EAAAA;YAAKG,GAAK,EAAA,CAAA;YAAGD,UAAW,EAAA,QAAA;;8BACvBE,cAACoK,CAAAA,WAAAA,EAAAA;oBAAMF,IAAK,EAAA,YAAA;oBAAa1C,MAAO,EAAA,QAAA;oBAAS3C,KAAM,EAAA;;8BAC/C7E,cAACyB,CAAAA,uBAAAA,EAAAA;8BACEnC,aAAc,CAAA;wBAAEG,EAAI,EAAA,mCAAA;wBAAqCC,cAAgB,EAAA;AAAU,qBAAA;;;;AAI5F;AAEA,IAAA,IAAIiK,cAAc,GAAK,EAAA;AACrB,QAAA,qBACEhK,eAACC,CAAAA,iBAAAA,EAAAA;YAAKG,GAAK,EAAA,CAAA;YAAGD,UAAW,EAAA,QAAA;;8BACvBE,cAACiK,CAAAA,WAAAA,EAAAA;oBAAMC,IAAK,EAAA,WAAA;oBAAY1C,MAAO,EAAA,QAAA;oBAAS3C,KAAM,EAAA;;8BAC9ClF,eAAC8B,CAAAA,uBAAAA,EAAAA;;wBACEnC,aAAc,CAAA;4BAAEG,EAAI,EAAA,gBAAA;4BAAkBC,cAAgB,EAAA;AAAQ,yBAAA,CAAA;AAAG,wBAAA,GAAA;AAAEiK,wBAAAA;;;;;AAI5E;IAEA,OAAO,IAAA;AACT,CAAA;AAWA,MAAMI,UAAU,CAAC,EAAEJ,UAAU,EAAEC,OAAO,EAAgB,GAAA;IACpD,MAAM,EAAEtK,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAI,CAACoK,UAAY,EAAA;QACf,OAAO,IAAA;AACT;IAEA,IAAIA,UAAAA,IAAc,GAAOA,IAAAA,UAAAA,GAAa,GAAK,EAAA;AACzC,QAAA,qBACE3J,cAACJ,CAAAA,iBAAAA,EAAAA;YAAKkF,cAAe,EAAA,UAAA;AACnB,YAAA,QAAA,gBAAA9E,cAACyB,CAAAA,uBAAAA,EAAAA;gBAAWE,SAAU,EAAA,YAAA;gBAAa0I,QAAQ,EAAA,IAAA;0BACxC/K,aAAc,CAAA;oBACbG,EAAI,EAAA,yCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;;AAIR;AAEA,IAAA,IAAIiK,cAAc,GAAK,EAAA;AACrB,QAAA,qBACE3J,cAACJ,CAAAA,iBAAAA,EAAAA;YAAKkF,cAAe,EAAA,UAAA;AACnB,YAAA,QAAA,gBAAA9E,cAACJ,CAAAA,iBAAAA,EAAAA;gBAAK0K,QAAU,EAAA,CAAC,KAAK,CAAC;gBAAExF,cAAe,EAAA,UAAA;gBAAWtD,KAAOoI,EAAAA,OAAAA;AACxD,gBAAA,QAAA,gBAAA5J,cAACyB,CAAAA,uBAAAA,EAAAA;oBAAW4I,QAAQ,EAAA,IAAA;oBAAC1I,SAAU,EAAA,YAAA;AAC5BiI,oBAAAA,QAAAA,EAAAA;;;;AAKX;IAEA,OAAO,IAAA;AACT,CAAA;;AC7GA,MAAMW,WAAc,GAAA,CAAC,EACnBC,YAAY,EACZC,cAAc,EACdC,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,IAAI,EACa,GAAA;IACjB,MAAM,EAAEvL,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACuL,mBAAqBC,EAAAA,sBAAAA,CAAuB,GAAG1C,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACrE,MAAM0C,UAAAA,GAAaC,2BACjBnF,CAAAA,YAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,2BACF,KAAA,EACAoF,aAAa,CAAA;AAGnB;;MAGA,MAAMC,aAAa,CAACrK,OAAAA,GAAAA;AAClB,QAAA,IAAI,CAAC2C,MAAO2H,CAAAA,IAAI,CAACtK,OAAAA,CAAAA,CAASoD,MAAM,EAAE;YAChC,OAAO;AAAC,gBAAA;oBAAExB,GAAK,EAAA,EAAA;oBAAIV,KAAO,EAAA;AAAG;AAAE,aAAA;AACjC;QAEA,OAAOyB,MAAAA,CAAOC,OAAO,CAAC5C,OAASO,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACqB,GAAAA,EAAKV,KAAM,CAAA,IAAM;AAAEU,gBAAAA,GAAAA;AAAKV,gBAAAA;aAAM,CAAA,CAAA;AACrE,KAAA;;AAGA,IAAA,IAAI,CAACgJ,UAAY,EAAA;QACf,OAAO,IAAA;AACT;AAEA,IAAA,qBACEhL,cAACqL,CAAAA,UAAAA,EAAAA;QACCC,aAAe,EAAA;AACbxI,YAAAA,IAAAA,EAAM+H,MAAM/H,IAAQ,IAAA,EAAA;AACpByI,YAAAA,GAAAA,EAAKV,MAAMU,GAAO,IAAA,EAAA;YAClBzK,OAASqK,EAAAA,UAAAA,CAAWN,IAAM/J,EAAAA,OAAAA,IAAW,EAAC,CAAA;YACtCgB,MAAQ+I,EAAAA,IAAAA,EAAM/I,UAAU;AAC1B,SAAA;AACA0J,QAAAA,MAAAA,EAAQd,aAAa,MAAS,GAAA,KAAA;QAC9Be,QAAUjB,EAAAA,YAAAA;AACVkB,QAAAA,gBAAAA,EAAkBC,2BAA4B,CAAA;AAAErM,YAAAA;AAAc,SAAA,CAAA;AAE7D,QAAA,QAAA,EAAA,CAAC,EAAEsM,YAAY,EAAEC,QAAQ,EAAE,iBAC1BlM,eAAA,CAAAmM,mBAAA,EAAA;;AACE,kCAAA9L,cAAA,CAAC+L,cAAQC,MAAM,EAAA;AACbC,wBAAAA,aAAAA,gBACEtM,eAACC,CAAAA,iBAAAA,EAAAA;4BAAKG,GAAK,EAAA,CAAA;;8CACTC,cAACkM,CAAAA,mBAAAA,EAAAA;oCACCzE,OAAS,EAAA,IAAA;AACPgD,wCAAAA,cAAAA,EAAAA;wCACAM,sBAAuB,CAAA,IAAA,CAAA;AACzB,qCAAA;oCACArJ,OAAQ,EAAA,UAAA;AACRsG,oCAAAA,SAAAA,gBAAWhI,cAACmM,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACZpH,oCAAAA,QAAAA,EAAU2F,UAAcC,IAAAA,YAAAA;8CAEvBrL,aAAc,CAAA;wCACbG,EAAI,EAAA,2BAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;8CAEFM,cAACkM,CAAAA,mBAAAA,EAAAA;AACClE,oCAAAA,SAAAA,gBAAWhI,cAACoK,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;oCACZ9C,IAAK,EAAA,QAAA;AACLvC,oCAAAA,QAAAA,EAAU,CAAC8G,QAAAA;oCACXO,OAASR,EAAAA,YAAAA;8CAERtM,aAAc,CAAA;wCACbG,EAAI,EAAA,aAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;;;AAIN8B,wBAAAA,KAAAA,EACEkJ,aACIpL,aAAc,CAAA;4BACZG,EAAI,EAAA,0BAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA,CAAA,GACAmL,IAAM/H,EAAAA,IAAAA;AAEZuJ,wBAAAA,gBAAAA,gBAAkBrM,cAACsM,CAAAA,gBAAAA,EAAAA;4BAAWC,QAAS,EAAA;;;AAEzC,kCAAAvM,cAAA,CAAC+L,cAAQS,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA7M,eAACC,CAAAA,iBAAAA,EAAAA;4BAAKC,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;4BAAUC,GAAK,EAAA,CAAA;;AAChD+K,gCAAAA,mBAAAA,kBACC9K,cAACuJ,CAAAA,gBAAAA,EAAAA;oCACCC,SAAWmB,EAAAA,YAAAA;oCACXjB,QAAUkB,EAAAA,eAAAA;AACVnB,oCAAAA,QAAAA,EAAU,IAAMsB,sBAAuB,CAAA,KAAA;;8CAG3C/K,cAAC0G,CAAAA,gBAAAA,EAAAA;oCAAIE,UAAW,EAAA,UAAA;oCAAWD,OAAS,EAAA,CAAA;oCAAGkD,MAAO,EAAA,cAAA;oCAAehD,SAAS,EAAA,IAAA;AACpE,oCAAA,QAAA,gBAAAlH,eAACC,CAAAA,iBAAAA,EAAAA;wCAAKC,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUC,GAAK,EAAA,CAAA;;AACjD,0DAAAC,cAAA,CAAC+G,kBAAKrB,IAAI,EAAA;gDAAC3F,GAAK,EAAA,CAAA;AACb,gDAAA,QAAA,EAAA;AACC,oDAAA;AACEP,wDAAAA,KAAAA,EAAOF,aAAc,CAAA;4DACnBG,EAAI,EAAA,aAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAoD,IAAM,EAAA,MAAA;wDACN2J,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,CAAA;wDACNpF,IAAM,EAAA;AACR,qDAAA;AACA,oDAAA;AACE9H,wDAAAA,KAAAA,EAAOF,aAAc,CAAA;4DACnBG,EAAI,EAAA,+BAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAoD,IAAM,EAAA,KAAA;wDACN2J,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,EAAA;wDACNpF,IAAM,EAAA;AACR;iDACD,CAACjG,GAAG,CAAC,CAAC,EAAEqL,IAAI,EAAE,GAAGlE,KAAO,EAAA,iBACvBxI,cAAC+G,CAAAA,iBAAAA,CAAKC,IAAI,EAAA;wDAERC,GAAKyF,EAAAA,IAAAA;wDACL7M,SAAU,EAAA,QAAA;wDACVC,UAAW,EAAA,SAAA;AAEX,wDAAA,QAAA,gBAAAE,cAAC2M,CAAAA,2BAAAA,EAAAA;AAAe,4DAAA,GAAGnE;;AALdA,qDAAAA,EAAAA,KAAAA,CAAM1F,IAAI,CAAA;;0DASrB9C,cAACiG,CAAAA,YAAAA,EAAAA,EAAAA,CAAAA;0DACDjG,cAACgL,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;;;;;AASnB,CAAA;AAEA,MAAM4B,UAAa,GAAA,iCAAA;AACnB,MAAMC,SAAY,GAAA,mCAAA;AAElB,MAAMlB,2BAAAA,GAA8B,CAAC,EAAErM,aAAa,EAAoC,GACtFwN,cAAIC,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;AACjBlK,QAAAA,IAAAA,EAAMgK,eACHG,MAAM,EAAA,CACNC,QAAQ,EACRT,CAAAA,QAAQ,CACPnN,aAAc,CAAA;YACZG,EAAI,EAAA,4CAAA;YACJC,cAAgB,EAAA;SAGnByN,CAAAA,CAAAA,CAAAA,OAAO,CACNP,UAAAA,EACAtN,aAAc,CAAA;YACZG,EAAI,EAAA,yCAAA;YACJC,cACE,EAAA;AACJ,SAAA,CAAA,CAAA;AAEJ6L,QAAAA,GAAAA,EAAKuB,eACFG,MAAM,EAAA,CACNC,QAAQ,EACRT,CAAAA,QAAQ,CACPnN,aAAc,CAAA;YACZG,EAAI,EAAA,2CAAA;YACJC,cAAgB,EAAA;SAGnByN,CAAAA,CAAAA,CAAAA,OAAO,CACNN,SAAAA,EACAvN,aAAc,CAAA;YACZG,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA,CAAA;QAEJoB,OAASgM,EAAAA,cAAAA,CAAIM,IAAI,CAAC,CAACC,KAAAA,GAAAA;YACjB,MAAMC,UAAAA,GAAaR,eAAIO,KAAK,EAAA;YAE5B,IAAIA,KAAAA,CAAMnJ,MAAM,KAAK,CAAG,EAAA;gBACtB,MAAM,EAAExB,GAAG,EAAEV,KAAK,EAAE,GAAGqL,KAAK,CAAC,CAAE,CAAA;gBAE/B,IAAI,CAAC3K,GAAO,IAAA,CAACV,KAAO,EAAA;oBAClB,OAAOsL,UAAAA;AACT;AACF;AAEA,YAAA,OAAOA,WAAWC,EAAE,CAClBT,eAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACjBtK,gBAAAA,GAAAA,EAAKoK,cACFG,CAAAA,MAAM,EACNR,CAAAA,QAAQ,CACPnN,aAAc,CAAA;oBACZG,EAAI,EAAA,kCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwN,QAAQ,EAAA;AACXlL,gBAAAA,KAAAA,EAAO8K,cACJG,CAAAA,MAAM,EACNR,CAAAA,QAAQ,CACPnN,aAAc,CAAA;oBACZG,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwN,QAAQ;AACb,aAAA,CAAA,CAAA;AAEJ,SAAA,CAAA;AACApL,QAAAA,MAAAA,EAAQgL,eAAIO,KAAK;AACnB,KAAA,CAAA;;AC/OF;;AAEkG,qGAElG,MAAMG,SAAAA,GAAY,CAChB3C,IAAAA,IAC6D;AAC7D,QAAA,GAAGA,IAAI;QACP/J,OAAS+J,EAAAA,IAAAA,CAAK/J,OAAO,CAACyB,MAAM,CAA0C,CAACC,GAAAA,EAAK,EAAEE,GAAG,EAAEV,KAAK,EAAE,GAAA;AACxF,YAAA,IAAIU,QAAQ,EAAI,EAAA;gBACdF,GAAG,CAACE,IAAI,GAAGV,KAAAA;AACb;YAEA,OAAOQ,GAAAA;AACT,SAAA,EAAG,EAAC;KACN,CAAA;AAEA,MAAMiL,QAAW,GAAA,IAAA;IACf,MAAM,EAAEnO,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMmO,QAAQC,uBAAS,CAAA,wBAAA,CAAA;IACvB,MAAMlO,EAAAA,GAAKiO,OAAOE,MAAOnO,CAAAA,EAAAA;AACzB,IAAA,MAAMiL,aAAajL,EAAO,KAAA,QAAA;AAE1B,IAAA,MAAMoO,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,qBAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,wBAAAA,EAAAA;AAEJ;;;AAGC;AAED,IAAA,MAAMC,oBAAuBjG,GAAAA,gBAAAA,CAAMkG,WAAW,CAACL,gBAAgB,EAAE,CAAA;AACjE,IAAA,MAAM,CAACvD,YAAc6D,EAAAA,eAAAA,CAAgB,GAAGnG,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACvD,IAAA,MAAM,CAACsC,eAAAA,EAAiB6D,kBAAmB,CAAA,GAAGpG,iBAAMC,QAAQ,EAAA;AAE5D,IAAA,MAAM,EAAEoG,SAAS,EAAEC,QAAQ,EAAE5F,KAAK,EAAE6F,aAAa,EAAEC,aAAa,EAAEpE,cAAc,EAAE,GAAGqE,uBACnF,CAAA;QAAErP,EAAIA,EAAAA;KACN,EAAA;QACEsP,IAAMrE,EAAAA;AACR,KAAA,CAAA;AAGFrC,IAAAA,gBAAAA,CAAMI,SAAS,CAAC,IAAA;AACd,QAAA,IAAIM,KAAO,EAAA;YACTgF,kBAAmB,CAAA;gBACjBzG,IAAM,EAAA,QAAA;AACNsC,gBAAAA,OAAAA,EAAS0E,oBAAqBvF,CAAAA,KAAAA;AAChC,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOgF,QAAAA,kBAAAA;AAAoBO,QAAAA;AAAqB,KAAA,CAAA;AAEpD,IAAA,MAAMU,oBAAuB,GAAA,UAAA;QAC3B,IAAI;YACFR,eAAgB,CAAA,IAAA,CAAA;YAEhB,MAAMS,GAAAA,GAAM,MAAMxE,cAAehL,CAAAA,EAAAA,CAAAA;AAEjC,YAAA,IAAI,WAAWwP,GAAK,EAAA;gBAClBlB,kBAAmB,CAAA;oBACjBzG,IAAM,EAAA,QAAA;oBACNsC,OAASsE,EAAAA,cAAAA,CAAee,IAAIlG,KAAK;AACnC,iBAAA,CAAA;AAEA,gBAAA;AACF;AAEA0F,YAAAA,kBAAAA,CAAmBQ,IAAIpE,IAAI,CAAA;AAC7B,SAAA,CAAE,OAAM;YACNkD,kBAAmB,CAAA;gBACjBzG,IAAM,EAAA,QAAA;AACNsC,gBAAAA,OAAAA,EAAStK,aAAc,CAAA;oBACrBG,EAAI,EAAA,oBAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;SACQ,QAAA;YACR8O,eAAgB,CAAA,KAAA,CAAA;AAClB;AACF,KAAA;IAEA,MAAMhE,YAAAA,GAAiD,OAAOK,IAAMqE,EAAAA,OAAAA,GAAAA;QAClE,IAAI;AACF,YAAA,IAAIxE,UAAY,EAAA;gBACd,MAAMuE,GAAAA,GAAM,MAAML,aAAAA,CAAcpB,SAAU3C,CAAAA,IAAAA,CAAAA,CAAAA;AAE1C,gBAAA,IAAI,WAAWoE,GAAK,EAAA;oBAClB,IAAIE,sBAAAA,CAAiBF,IAAIlG,KAAK,CAAA,IAAKkG,IAAIlG,KAAK,CAACjG,IAAI,KAAK,iBAAmB,EAAA;AACvEoM,wBAAAA,OAAAA,CAAQE,SAAS,CAAChB,sBAAuBa,CAAAA,GAAAA,CAAIlG,KAAK,CAAA,CAAA;qBAC7C,MAAA;wBACLgF,kBAAmB,CAAA;4BACjBzG,IAAM,EAAA,QAAA;4BACNsC,OAASsE,EAAAA,cAAAA,CAAee,IAAIlG,KAAK;AACnC,yBAAA,CAAA;AACF;AAEA,oBAAA;AACF;gBAEAgF,kBAAmB,CAAA;oBACjBzG,IAAM,EAAA,SAAA;AACNsC,oBAAAA,OAAAA,EAAStK,aAAc,CAAA;wBAAEG,EAAI,EAAA;AAA4B,qBAAA;AAC3D,iBAAA,CAAA;gBAEAoO,QAAS,CAAA,CAAC,YAAY,EAAEoB,GAAAA,CAAIpE,IAAI,CAACpL,EAAE,CAAC,CAAC,EAAE;oBAAEyF,OAAS,EAAA;AAAK,iBAAA,CAAA;aAClD,MAAA;gBACL,MAAM+J,GAAAA,GAAM,MAAMJ,aAAc,CAAA;oBAAEpP,EAAIA,EAAAA,EAAAA;AAAK,oBAAA,GAAG+N,UAAU3C,IAAK;AAAC,iBAAA,CAAA;AAE9D,gBAAA,IAAI,WAAWoE,GAAK,EAAA;oBAClB,IAAIE,sBAAAA,CAAiBF,IAAIlG,KAAK,CAAA,IAAKkG,IAAIlG,KAAK,CAACjG,IAAI,KAAK,iBAAmB,EAAA;AACvEoM,wBAAAA,OAAAA,CAAQE,SAAS,CAAChB,sBAAuBa,CAAAA,GAAAA,CAAIlG,KAAK,CAAA,CAAA;qBAC7C,MAAA;wBACLgF,kBAAmB,CAAA;4BACjBzG,IAAM,EAAA,QAAA;4BACNsC,OAASsE,EAAAA,cAAAA,CAAee,IAAIlG,KAAK;AACnC,yBAAA,CAAA;AACF;AAEA,oBAAA;AACF;gBAEAgF,kBAAmB,CAAA;oBACjBzG,IAAM,EAAA,SAAA;AACNsC,oBAAAA,OAAAA,EAAStK,aAAc,CAAA;wBAAEG,EAAI,EAAA;AAAmC,qBAAA;AAClE,iBAAA,CAAA;AACF;AACF,SAAA,CAAE,OAAM;YACNsO,kBAAmB,CAAA;gBACjBzG,IAAM,EAAA,QAAA;AACNsC,gBAAAA,OAAAA,EAAStK,aAAc,CAAA;oBACrBG,EAAI,EAAA,oBAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;AAEA,IAAA,IAAIgP,SAAW,EAAA;QACb,qBAAO1O,cAAA,CAACqP,WAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,MAAM,CAACC,OAAAA,CAAQ,GAAGZ,QAAAA,IAAY,EAAE;AAEhC,IAAA,qBACEhP,eAAC6P,CAAAA,iBAAAA,EAAAA;;AACC,0BAAAxP,cAAA,CAACqP,WAAKI,KAAK,EAAA;0BACRnQ,aACC,CAAA;oBAAEG,EAAI,EAAA,oBAAA;oBAAsBC,cAAgB,EAAA;iBAC5C,EAAA;oBACEoD,IAAM,EAAA;AACR,iBAAA;;0BAGJ9C,cAACuK,CAAAA,WAAAA,EAAAA;gBACCM,IAAM0E,EAAAA,OAAAA;gBACN/E,YAAcA,EAAAA,YAAAA;gBACdC,cAAgBuE,EAAAA,oBAAAA;gBAChBtE,UAAYA,EAAAA,UAAAA;gBACZC,YAAcA,EAAAA,YAAAA;gBACdC,eAAiBA,EAAAA;;;;AAIzB;AAEA;;AAEkG,qGAElG,MAAM8E,iBAAoB,GAAA,IAAA;AACxB,IAAA,MAAMC,cAAcC,sBAAiBC,CAAAA,gCAAAA,CAAAA;IAErC,qBACE7P,cAAA,CAACqP,WAAKS,OAAO,EAAA;QAACH,WAAaA,EAAAA,WAAAA,CAAYI,QAAQ,EAAEpB,QAASqB,CAAAA,MAAAA;AACxD,QAAA,QAAA,gBAAAhQ,cAACyN,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP,CAAA;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"EditPage-CK8pIRKZ.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/components/Events.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/EventsTable.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.tsx","../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx","../../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Flex,\n RawTable as Table,\n RawTbody as Tbody,\n RawTd as Td,\n RawTh as Th,\n RawThead as Thead,\n RawTr as Tr,\n Typography,\n VisuallyHidden,\n Field,\n CheckboxProps,\n} from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRootProps {\n children: React.ReactNode;\n}\n\nconst EventsRoot = ({ children }: EventsRootProps) => {\n const { formatMessage } = useIntl();\n\n const label = formatMessage({\n id: 'Settings.webhooks.form.events',\n defaultMessage: 'Events',\n });\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Label aria-hidden>{label}</Field.Label>\n {/* @ts-expect-error – TODO: add colCount & rowCount */}\n <StyledTable aria-label={label}>{children}</StyledTable>\n </Flex>\n );\n};\n\n// TODO check whether we want to move alternating background colour tables to the design system\nconst StyledTable = styled(Table)`\n tbody tr:nth-child(odd) {\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n thead th span {\n color: ${({ theme }) => theme.colors.neutral500};\n }\n\n td,\n th {\n padding-block-start: ${({ theme }) => theme.spaces[3]};\n padding-block-end: ${({ theme }) => theme.spaces[3]};\n width: 6%;\n vertical-align: middle;\n }\n\n tbody tr td:first-child {\n /**\n * Add padding to the start of the first column to avoid the checkbox appearing\n * too close to the edge of the table\n */\n padding-inline-start: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EventsHeaders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsHeadersProps {\n getHeaders?: typeof getCEHeaders;\n}\n\nconst getCEHeaders = (): MessageDescriptor[] => {\n const headers = [\n { id: 'Settings.webhooks.events.create', defaultMessage: 'Create' },\n { id: 'Settings.webhooks.events.update', defaultMessage: 'Update' },\n { id: 'app.utils.delete', defaultMessage: 'Delete' },\n { id: 'app.utils.publish', defaultMessage: 'Publish' },\n { id: 'app.utils.unpublish', defaultMessage: 'Unpublish' },\n ];\n\n return headers;\n};\n\nconst EventsHeaders = ({ getHeaders = getCEHeaders }: EventsHeadersProps) => {\n const { formatMessage } = useIntl();\n const headers = getHeaders();\n\n return (\n <Thead>\n <Tr>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.event.select',\n defaultMessage: 'Select event',\n })}\n </VisuallyHidden>\n </Th>\n {headers.map((header) => {\n if (['app.utils.publish', 'app.utils.unpublish'].includes(header?.id ?? '')) {\n return (\n <Th\n key={header.id}\n title={formatMessage({\n id: 'Settings.webhooks.event.publish-tooltip',\n defaultMessage: 'This event only exists for content with draft & publish enabled',\n })}\n >\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n }\n\n return (\n <Th key={header.id}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n })}\n </Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsBody\n * -----------------------------------------------------------------------------------------------*/\ninterface FormikContextValue {\n events: string[];\n}\n\ninterface EventsBodyProps {\n providedEvents?: Record<string, FormikContextValue['events']>;\n}\n\nconst EventsBody = ({ providedEvents }: EventsBodyProps) => {\n const events = providedEvents || getCEEvents();\n const { value = [], onChange } = useField<string[]>('events');\n\n const inputName = 'events';\n const inputValue = value;\n const disabledEvents: string[] = [];\n\n const formattedValue = inputValue.reduce<Record<string, string[]>>((acc, curr) => {\n const key = curr.split('.')[0];\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(curr);\n\n return acc;\n }, {});\n\n const handleSelect: EventsRowProps['handleSelect'] = (name, value) => {\n const set = new Set(inputValue);\n\n if (value) {\n set.add(name);\n } else {\n set.delete(name);\n }\n\n onChange(inputName, Array.from(set));\n };\n\n const handleSelectAll: EventsRowProps['handleSelectAll'] = (name, value) => {\n const set = new Set(inputValue);\n\n if (value) {\n events[name].forEach((event) => {\n if (!disabledEvents.includes(event)) {\n set.add(event);\n }\n });\n } else {\n events[name].forEach((event) => set.delete(event));\n }\n\n onChange(inputName, Array.from(set));\n };\n\n return (\n <Tbody>\n {Object.entries(events).map(([event, value]) => {\n return (\n <EventsRow\n disabledEvents={disabledEvents}\n key={event}\n name={event}\n events={value}\n inputValue={formattedValue[event]}\n handleSelect={handleSelect}\n handleSelectAll={handleSelectAll}\n />\n );\n })}\n </Tbody>\n );\n};\n\nconst getCEEvents = (): Required<Pick<EventsBodyProps, 'providedEvents'>>['providedEvents'] => {\n const entryEvents: FormikContextValue['events'] = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n ];\n\n return {\n entry: entryEvents,\n media: ['media.create', 'media.update', 'media.delete'],\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRowProps {\n disabledEvents?: string[];\n events?: string[];\n inputValue?: string[];\n handleSelect: (name: string, value: boolean) => void;\n handleSelectAll: (name: string, value: boolean) => void;\n name: string;\n}\n\nconst EventsRow = ({\n disabledEvents = [],\n name,\n events = [],\n inputValue = [],\n handleSelect,\n handleSelectAll,\n}: EventsRowProps) => {\n const { formatMessage } = useIntl();\n const enabledCheckboxes = events.filter((event) => !disabledEvents.includes(event));\n\n const hasSomeCheckboxSelected = inputValue.length > 0;\n const areAllCheckboxesSelected = inputValue.length === enabledCheckboxes.length;\n\n const onChangeAll: CheckboxProps['onCheckedChange'] = () => {\n const valueToSet = !areAllCheckboxesSelected;\n\n handleSelectAll(name, valueToSet);\n };\n\n const targetColumns = 5;\n\n return (\n <Tr>\n <Td>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n name={name}\n checked={\n hasSomeCheckboxSelected && !areAllCheckboxesSelected\n ? 'indeterminate'\n : areAllCheckboxesSelected\n }\n onCheckedChange={onChangeAll}\n >\n {removeHyphensAndTitleCase(name)}\n </Checkbox>\n </Td>\n\n {events.map((event) => {\n return (\n <Td key={event} textAlign=\"center\">\n <Flex width=\"100%\" justifyContent=\"center\">\n <Checkbox\n disabled={disabledEvents.includes(event)}\n aria-label={event}\n name={event}\n checked={inputValue.includes(event)}\n onCheckedChange={(value) => handleSelect(event, !!value)}\n />\n </Flex>\n </Td>\n );\n })}\n {events.length < targetColumns && <Td colSpan={targetColumns - events.length} />}\n </Tr>\n );\n};\n\n/**\n * Converts a string to title case and removes hyphens.\n */\nconst removeHyphensAndTitleCase = (str: string): string =>\n str\n .replace(/-/g, ' ')\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n\nconst Events = { Root: EventsRoot, Headers: EventsHeaders, Body: EventsBody, Row: EventsRow };\n\nexport { Events };\nexport type { EventsRowProps, EventsHeadersProps, EventsRootProps, EventsBodyProps };\n","import { Events } from './Events';\n\nconst EventTableCE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n </Events.Root>\n );\n};\n\nexport { EventTableCE };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"string\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n handleChange(value);\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n","import { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check, Cross, Loader } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\n/* -------------------------------------------------------------------------------------------------\n * TriggerContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TriggerContainerProps extends Pick<StatusProps, 'isPending'> {\n onCancel: () => void;\n response?: {\n statusCode: number;\n message?: string;\n };\n}\n\nconst TriggerContainer = ({ isPending, onCancel, response }: TriggerContainerProps) => {\n const { statusCode, message } = response ?? {};\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={5} shadow=\"filterShadow\" hasRadius>\n <Grid.Root gap={4} style={{ alignItems: 'center' }}>\n <Grid.Item col={3} direction=\"column\" alignItems=\"stretch\">\n <Typography>\n {formatMessage({\n id: 'Settings.webhooks.trigger.test',\n defaultMessage: 'Test-trigger',\n })}\n </Typography>\n </Grid.Item>\n <Grid.Item col={3} direction=\"column\" alignItems=\"stretch\">\n <Status isPending={isPending} statusCode={statusCode} />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n {!isPending ? (\n <Message statusCode={statusCode} message={message} />\n ) : (\n <Flex justifyContent=\"flex-end\">\n <button onClick={onCancel} type=\"button\">\n <Flex gap={2} alignItems=\"center\">\n <Typography textColor=\"neutral400\">\n {formatMessage({\n id: 'Settings.webhooks.trigger.cancel',\n defaultMessage: 'cancel',\n })}\n </Typography>\n <Cross fill=\"neutral400\" height=\"1.2rem\" width=\"1.2rem\" />\n </Flex>\n </button>\n </Flex>\n )}\n </Grid.Item>\n </Grid.Root>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StatusProps {\n isPending: boolean;\n statusCode?: number;\n}\n\nconst Status = ({ isPending, statusCode }: StatusProps) => {\n const { formatMessage } = useIntl();\n\n if (isPending || !statusCode) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Loader height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.pending', defaultMessage: 'pending' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Check fill=\"success700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.success', defaultMessage: 'success' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Cross fill=\"danger700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.error', defaultMessage: 'error' })} {statusCode}\n </Typography>\n </Flex>\n );\n }\n\n return null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Message\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MessageProps {\n statusCode?: number;\n message?: string;\n}\n\nconst Message = ({ statusCode, message }: MessageProps) => {\n const { formatMessage } = useIntl();\n\n if (!statusCode) {\n return null;\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Typography textColor=\"neutral600\" ellipsis>\n {formatMessage({\n id: 'Settings.webhooks.trigger.success.label',\n defaultMessage: 'Trigger succeeded',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Flex maxWidth={`25rem`} justifyContent=\"flex-end\" title={message}>\n <Typography ellipsis textColor=\"neutral600\">\n {message}\n </Typography>\n </Flex>\n </Flex>\n );\n }\n\n return null;\n};\n\nexport { TriggerContainer };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, TextInput } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={<BackButton fallback=\"../webhooks\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormProps, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n /**\n * Prevents the notifications from showing up twice because the function identity\n * coming from the helper plugin is not stable\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableFormatAPIError = React.useCallback(formatAPIError, []);\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: stableFormatAPIError(error),\n });\n }\n }, [error, toggleNotification, stableFormatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit: WebhookFormProps['handleSubmit'] = async (data, helpers) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(`../webhooks/${res.data.id}`, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["EventsRoot","children","formatMessage","useIntl","label","id","defaultMessage","_jsxs","Flex","direction","alignItems","gap","_jsx","Field","Label","aria-hidden","StyledTable","aria-label","styled","Table","theme","colors","neutral100","neutral500","spaces","getCEHeaders","headers","EventsHeaders","getHeaders","Thead","Tr","Th","VisuallyHidden","map","header","includes","title","Typography","variant","textColor","EventsBody","providedEvents","events","getCEEvents","value","onChange","useField","inputName","inputValue","disabledEvents","formattedValue","reduce","acc","curr","key","split","push","handleSelect","name","set","Set","add","delete","Array","from","handleSelectAll","forEach","event","Tbody","Object","entries","EventsRow","entryEvents","entry","media","enabledCheckboxes","filter","hasSomeCheckboxSelected","length","areAllCheckboxesSelected","onChangeAll","valueToSet","targetColumns","Td","Checkbox","checked","onCheckedChange","removeHyphensAndTitleCase","textAlign","width","justifyContent","disabled","colSpan","str","replace","word","charAt","toUpperCase","slice","toLowerCase","join","Events","Root","Headers","Body","Row","EventTableCE","AddHeaderButton","TextButton","HeadersInput","addFieldRow","useForm","state","removeFieldRow","setFieldValue","removeRow","index","DSField","Box","padding","background","hasRadius","val","Grid","Item","col","HeaderCombobox","style","flex","StringInput","type","IconButton","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","field","useEffect","headerOptions","some","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error","TriggerContainer","isPending","onCancel","response","statusCode","message","shadow","Status","Message","button","Cross","fill","Loader","Check","ellipsis","maxWidth","WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","showTriggerResponse","setShowTriggerResponse","EventTable","useEnterprise","EventsTableEE","mapHeaders","keys","Form","initialValues","url","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","Publish","loading","navigationAction","BackButton","fallback","Content","required","size","InputRenderer","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of","cleanData","EditPage","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","stableFormatAPIError","useCallback","setIsTriggering","setTriggerResponse","isLoading","webhooks","createWebhook","updateWebhook","useWebhooks","skip","handleTriggerWebhook","res","helpers","isBaseQueryError","setErrors","Page","Loading","webhook","Main","Title","ProtectedEditPage","permissions","useTypedSelector","selectAdminPermissions","Protect","settings","update"],"mappings":"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"}
|
|
@@ -8,14 +8,14 @@ var pick = require('lodash/pick');
|
|
|
8
8
|
var reactIntl = require('react-intl');
|
|
9
9
|
var reactRouterDom = require('react-router-dom');
|
|
10
10
|
var yup = require('yup');
|
|
11
|
-
var index = require('./index-
|
|
11
|
+
var index = require('./index-BdqtLS-k.js');
|
|
12
12
|
var Theme = require('./Theme-DDlJz91O.js');
|
|
13
13
|
var useEnterprise = require('./useEnterprise-IHd3AKd2.js');
|
|
14
14
|
var selectors = require('./selectors-Bf-6Fmez.js');
|
|
15
15
|
var admin = require('./admin-udBiOv2o.js');
|
|
16
16
|
var users = require('./users-D-oKxjK9.js');
|
|
17
|
-
var SelectRoles = require('./SelectRoles-
|
|
18
|
-
var validation = require('./validation-
|
|
17
|
+
var SelectRoles = require('./SelectRoles-ChZyGpDA.js');
|
|
18
|
+
var validation = require('./validation-sucpUItn.js');
|
|
19
19
|
require('react-dom/client');
|
|
20
20
|
require('invariant');
|
|
21
21
|
require('lodash/isFunction');
|
|
@@ -44,7 +44,7 @@ require('lodash/defaultsDeep');
|
|
|
44
44
|
require('lodash/trimEnd');
|
|
45
45
|
require('@reduxjs/toolkit/query/react');
|
|
46
46
|
require('lodash/fp/pipe');
|
|
47
|
-
require('./useAdminRoles-
|
|
47
|
+
require('./useAdminRoles-Dy5KXk0R.js');
|
|
48
48
|
|
|
49
49
|
function _interopNamespaceDefault(e) {
|
|
50
50
|
var n = Object.create(null);
|
|
@@ -93,7 +93,7 @@ const fieldsToPick = [
|
|
|
93
93
|
const id = match?.params?.id ?? '';
|
|
94
94
|
const navigate = reactRouterDom.useNavigate();
|
|
95
95
|
const { toggleNotification } = Theme.useNotification();
|
|
96
|
-
const MagicLink = useEnterprise.useEnterprise(SelectRoles.MagicLinkCE, async ()=>(await Promise.resolve().then(function () { return require('./MagicLinkEE-
|
|
96
|
+
const MagicLink = useEnterprise.useEnterprise(SelectRoles.MagicLinkCE, async ()=>(await Promise.resolve().then(function () { return require('./MagicLinkEE-DZLJwQiC.js'); })).MagicLinkEE);
|
|
97
97
|
const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = Theme.useAPIErrorHandler();
|
|
98
98
|
const permissions = Theme.useTypedSelector(selectors.selectAdminPermissions);
|
|
99
99
|
const { isLoading: isLoadingRBAC, allowedActions: { canUpdate } } = Theme.useRBAC({
|
|
@@ -417,4 +417,4 @@ const ProtectedEditPage = ()=>{
|
|
|
417
417
|
|
|
418
418
|
exports.EditPage = EditPage;
|
|
419
419
|
exports.ProtectedEditPage = ProtectedEditPage;
|
|
420
|
-
//# sourceMappingURL=EditPage-
|
|
420
|
+
//# sourceMappingURL=EditPage-DHtr1mq1.js.map
|