@strapi/admin 5.10.3 → 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":"ListPage-CWINpwfS.js","sources":["../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, ButtonProps } from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = React.forwardRef<HTMLButtonElement, CreateActionCEProps>((props, ref) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button ref={ref} startIcon={<Mail />} size=\"S\" {...props}>\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n});\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n <Typography>{isActive ? 'Active' : 'Inactive'}</Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["CreateActionCE","React","forwardRef","props","ref","formatMessage","useIntl","_jsx","Button","startIcon","Mail","size","id","defaultMessage","ModalForm","onToggle","currentStep","setStep","useState","registrationToken","setRegistrationToken","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","field","Item","col","InputRenderer","disabled","placeholder","xs","SelectRoles","undefined","hint","Footer","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create","ListPageCE","isModalOpened","setIsModalOpen","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","CreateActionEE","headers","TABLE_HEADERS","header","title","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","err","handleRowClick","toString","handleDeleteClick","confirmDelete","Page","Error","Main","aria-busy","Title","Layouts","primaryAction","subtitle","Action","startActions","SearchInput","target","Filters","options","FILTERS","Trigger","Popover","List","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","textColor","e","stopPropagation","justifyContent","IconButton","NavLink","to","getDisplayName","Pencil","Trash","Pagination","PageSize","Links","Dialog","open","ConfirmDialog","onConfirm","sortable","role","join","isActive","Status","borderWidth","background","color","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAMA,cAAiBC,iBAAAA,gBAAAA,CAAMC,UAAU,CAAyC,CAACC,KAAOC,EAAAA,GAAAA,GAAAA;IACtF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAACC,CAAAA,mBAAAA,EAAAA;QAAOJ,GAAKA,EAAAA,GAAAA;AAAKK,QAAAA,SAAAA,gBAAWF,cAACG,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;QAASC,IAAK,EAAA,GAAA;AAAK,QAAA,GAAGR,KAAK;kBACtDE,aAAc,CAAA;YACbO,EAAI,EAAA,mCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;;AAGN,CAAA,CAAA;;ACiBA,MAAMC,SAAY,GAAA,CAAC,EAAEC,QAAQ,EAAkB,GAAA;AAC7C,IAAA,MAAM,CAACC,WAAaC,EAAAA,OAAAA,CAAQ,GAAGhB,gBAAAA,CAAMiB,QAAQ,CAAuB,QAAA,CAAA;AACpE,IAAA,MAAM,CAACC,iBAAmBC,EAAAA,oBAAAA,CAAqB,GAAGnB,gBAAAA,CAAMiB,QAAQ,CAAC,EAAA,CAAA;IACjE,MAAM,EAAEb,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEe,kBAAkB,EAAE,GAAGC,qBAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,wBAAAA,EAAAA;AACJ,IAAA,MAAMC,UAAaC,GAAAA,2BAAAA,CACjBC,WACA,EAAA,UACE,CACE,MAAM,oDACJ,yBAAA,KACF,EACAA,WAAW,EACf;QACEC,OAAQC,CAAAA,CAAAA,OAAO,EAAEC,OAAO,EAAA;YACtB,OAAO;AAAID,gBAAAA,GAAAA,OAAAA;AAAYC,gBAAAA,GAAAA;AAAQ,aAAA;AACjC,SAAA;AAEAC,QAAAA,YAAAA,EAAc;AAChB,KAAA,CAAA;AAGF,IAAA,MAAMC,aAAgBN,GAAAA,2BAAAA,CACpBO,mBACA,EAAA,UACE,CACE,MAAM,oDACJ,yBAAA,KACF,EACAA,mBAAmB,EACvB;QACEL,OAAQM,CAAAA,CAAAA,QAAQ,EAAEC,QAAQ,EAAA;YACxB,OAAO;AACL,gBAAA,GAAGD,QAAQ;AACX,gBAAA,GAAGC;AACL,aAAA;AACF,SAAA;QAEAJ,YAAcE,EAAAA;AAChB,KAAA,CAAA;IAEF,MAAMG,SAAAA,GAAYV,2BAChBW,CAAAA,uBAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,2BACF,KAAA,EACAC,WAAW,CAAA;IAGjB,MAAM,CAACC,WAAW,GAAGC,2BAAAA,EAAAA;AAErB,IAAA,MAAMC,cAAcvC,aAAc,CAAA;QAChCO,EAAI,EAAA,mCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMgC,YAAe,GAAA,OAAOC,IAAmB,EAAA,EAAEC,SAAS,EAA4B,GAAA;QACpF,MAAMC,GAAAA,GAAM,MAAMN,UAAW,CAAA;AAC3B,YAAA,GAAGI,IAAI;YACPG,KAAOH,EAAAA,IAAAA,CAAKG,KAAK,IAAI;AACvB,SAAA,CAAA;AAEA,QAAA,IAAI,UAAUD,GAAK,EAAA;;AAEjB,YAAA,IAAIA,GAAIE,CAAAA,IAAI,CAAC/B,iBAAiB,EAAE;gBAC9BC,oBAAqB4B,CAAAA,GAAAA,CAAIE,IAAI,CAAC/B,iBAAiB,CAAA;AACjD;AAEAgC,YAAAA,MAAAA,EAAAA;SACK,MAAA;YACL9B,kBAAmB,CAAA;gBACjB+B,IAAM,EAAA,QAAA;gBACNC,OAAS7B,EAAAA,cAAAA,CAAewB,IAAIM,KAAK;AACnC,aAAA,CAAA;YAEA,IAAIC,sBAAAA,CAAiBP,IAAIM,KAAK,CAAA,IAAKN,IAAIM,KAAK,CAACE,IAAI,KAAK,iBAAmB,EAAA;gBACvET,SAAUrB,CAAAA,sBAAAA,CAAuBsB,IAAIM,KAAK,CAAA,CAAA;AAC5C;AACF;AACF,KAAA;AAEA,IAAA,MAAMH,MAAS,GAAA,IAAA;AACb,QAAA,IAAIM,IAAM,EAAA;YACRxC,OAAQwC,CAAAA,IAAAA,CAAAA;SACH,MAAA;AACL1C,YAAAA,QAAAA,EAAAA;AACF;AACF,KAAA;IAEA,MAAM,EAAE2C,iBAAiB,EAAEC,UAAU,EAAEF,IAAI,EAAE,GAAGG,OAAO,CAAC5C,WAAY,CAAA;;AAGpE,IAAA,IAAI,CAACuB,SAAW,EAAA;QACd,OAAO,IAAA;AACT;IAEA,qBACEhC,cAAA,CAACsD,mBAAMC,IAAI,EAAA;QAACC,WAAW,EAAA,IAAA;QAACC,YAAcjD,EAAAA,QAAAA;gCACpCkD,eAAA,CAACJ,mBAAMK,OAAO,EAAA;;AACZ,8BAAA3D,cAAA,CAACsD,mBAAMM,MAAM,EAAA;AAIX,oBAAA,QAAA,gBAAA5D,cAAC6D,CAAAA,wBAAAA,EAAAA;wBAAYC,KAAOzB,EAAAA,WAAAA;AAClB,wBAAA,QAAA,gBAAArC,cAAC+D,CAAAA,kBAAAA,EAAAA;4BAAMC,SAAS,EAAA,IAAA;AAAE3B,4BAAAA,QAAAA,EAAAA;;;;8BAGtBrC,cAACiE,CAAAA,UAAAA,EAAAA;oBACCC,MAAQzD,EAAAA,WAAAA,KAAgB,WAAW,MAAS,GAAA,KAAA;AAC5CmB,oBAAAA,aAAAA,EAAeA,iBAAiB,EAAC;oBACjCuC,QAAU7B,EAAAA,YAAAA;oBACV8B,gBAAkBC,EAAAA,WAAAA;8BAEjB,CAAC,EAAEC,YAAY,EAAE,GAAA;wBAChB,qBACEZ,eAAA,CAAAa,mBAAA,EAAA;;AACE,8CAAAvE,cAAA,CAACsD,mBAAMkB,IAAI,EAAA;AACT,oCAAA,QAAA,gBAAAd,eAACe,CAAAA,iBAAAA,EAAAA;wCAAKC,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUC,GAAK,EAAA,CAAA;;AAChDnE,4CAAAA,WAAAA,KAAgB,0BACfT,cAACgC,CAAAA,SAAAA,EAAAA;gDAAUpB,iBAAmBA,EAAAA;;0DAEhC8C,eAACmB,CAAAA,gBAAAA,EAAAA;;kEACC7E,cAAC8E,CAAAA,uBAAAA,EAAAA;wDAAWC,OAAQ,EAAA,MAAA;wDAAOC,GAAI,EAAA,IAAA;kEAC5BlF,aAAc,CAAA;4DACbO,EAAI,EAAA,0DAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA;;kEAEFN,cAAC6E,CAAAA,gBAAAA,EAAAA;wDAAII,UAAY,EAAA,CAAA;AACf,wDAAA,QAAA,gBAAAjF,cAACyE,CAAAA,iBAAAA,EAAAA;4DAAKC,SAAU,EAAA,QAAA;4DAASC,UAAW,EAAA,SAAA;4DAAUC,GAAK,EAAA,CAAA;oFACjD5E,cAAA,CAACkF,kBAAK3B,IAAI,EAAA;gEAACqB,GAAK,EAAA,CAAA;0EACbO,WAAYC,CAAAA,GAAG,CAAC,CAACC,GAAAA,GAAAA;oEAChB,OAAOA,GAAAA,CAAID,GAAG,CAAC,CAAC,EAAEhF,IAAI,EAAE,GAAGkF,KAAO,EAAA,GAAA;wEAChC,qBACEtF,cAAA,CAACkF,kBAAKK,IAAI,EAAA;4EAERC,GAAKpF,EAAAA,IAAAA;4EACLsE,SAAU,EAAA,QAAA;4EACVC,UAAW,EAAA,SAAA;AAEX,4EAAA,QAAA,gBAAA3E,cAACyF,CAAAA,2BAAAA,EAAAA;AACE,gFAAA,GAAGH,KAAK;gFACTI,QAAUtC,EAAAA,UAAAA;gFACVU,KAAOhE,EAAAA,aAAAA,CAAcwF,MAAMxB,KAAK,CAAA;gFAChC6B,WAAa7F,EAAAA,aAAAA,CAAcwF,MAAMK,WAAW;;AATzCL,yEAAAA,EAAAA,KAAAA,CAAMrC,IAAI,CAAA;AAarB,qEAAA,CAAA;AACF,iEAAA;;;;;;0DAKRS,eAACmB,CAAAA,gBAAAA,EAAAA;;kEACC7E,cAAC8E,CAAAA,uBAAAA,EAAAA;wDAAWC,OAAQ,EAAA,MAAA;wDAAOC,GAAI,EAAA,IAAA;kEAC5BlF,aAAc,CAAA;4DACbO,EAAI,EAAA,cAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA;;kEAEFN,cAAC6E,CAAAA,gBAAAA,EAAAA;wDAAII,UAAY,EAAA,CAAA;gFACfvB,eAAA,CAACwB,kBAAK3B,IAAI,EAAA;4DAACqB,GAAK,EAAA,CAAA;;AACd,8EAAA5E,cAAA,CAACkF,kBAAKK,IAAI,EAAA;oEAACC,GAAK,EAAA,CAAA;oEAAGI,EAAI,EAAA,EAAA;oEAAIlB,SAAU,EAAA,QAAA;oEAASC,UAAW,EAAA,SAAA;AACvD,oEAAA,QAAA,gBAAA3E,cAAC6F,CAAAA,uBAAAA,EAAAA;wEAAYH,QAAUtC,EAAAA;;;gEAExB/B,UAAW+D,CAAAA,GAAG,CAAC,CAACC,GAAAA,GAAAA;oEACf,OAAOA,GAAAA,CAAID,GAAG,CAAC,CAAC,EAAEhF,IAAI,EAAE,GAAGkF,KAAO,EAAA,GAAA;wEAChC,qBACEtF,cAAA,CAACkF,kBAAKK,IAAI,EAAA;4EAERC,GAAKpF,EAAAA,IAAAA;4EACLsE,SAAU,EAAA,QAAA;4EACVC,UAAW,EAAA,SAAA;AAEX,4EAAA,QAAA,gBAAA3E,cAACyF,CAAAA,2BAAAA,EAAAA;AACE,gFAAA,GAAGH,KAAK;gFACTI,QAAUtC,EAAAA,UAAAA;gFACVU,KAAOhE,EAAAA,aAAAA,CAAcwF,MAAMxB,KAAK,CAAA;AAChC6B,gFAAAA,WAAAA,EACEL,MAAMK,WAAW,GACb7F,aAAcwF,CAAAA,KAAAA,CAAMK,WAAW,CAC/BG,GAAAA,SAAAA;AAENC,gFAAAA,IAAAA,EAAMT,MAAMS,IAAI,GAAGjG,aAAcwF,CAAAA,KAAAA,CAAMS,IAAI,CAAID,GAAAA;;AAd5CR,yEAAAA,EAAAA,KAAAA,CAAMrC,IAAI,CAAA;AAkBrB,qEAAA,CAAA;AACF,iEAAA;;;;;;;;;AAMV,8CAAAS,eAAA,CAACJ,mBAAM0C,MAAM,EAAA;;sDACXhG,cAACC,CAAAA,mBAAAA,EAAAA;4CAAO8E,OAAQ,EAAA,UAAA;4CAAWkB,OAASzF,EAAAA,QAAAA;4CAAUqC,IAAK,EAAA,QAAA;sDAChD/C,aAAc,CAAA;gDACbO,EAAI,EAAA,8BAAA;gDACJC,cAAgB,EAAA;AAClB,6CAAA;;AAEDG,wCAAAA,WAAAA,KAAgB,yBACfT,cAACC,CAAAA,mBAAAA,EAAAA;4CAAO4C,IAAK,EAAA,QAAA;4CAASqD,OAAS5B,EAAAA,YAAAA;sDAC5BxE,aAAcqD,CAAAA,iBAAAA;2DAGjBnD,cAACC,CAAAA,mBAAAA,EAAAA;4CAAO4C,IAAK,EAAA,QAAA;4CAASqD,OAAS5B,EAAAA,YAAAA;4CAAc2B,OAASzF,EAAAA,QAAAA;sDACnDV,aAAcqD,CAAAA,iBAAAA;;;;;;AAM3B;;;;;AAKV,CAAA;AAUA,MAAMtB,mBAAsB,GAAA;IAC1BsE,SAAW,EAAA,EAAA;IACXC,QAAU,EAAA,EAAA;IACVC,KAAO,EAAA,EAAA;AACP3D,IAAAA,KAAAA,EAAO;AACT,CAAA;AAEA,MAAMnB,cAA0B,EAAE;AAElC,MAAM4D,WAAc,GAAA;AAClB,IAAA;AACE,QAAA;YACErB,KAAO,EAAA;gBACLzD,EAAI,EAAA,2BAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,WAAA;YACN0C,WAAa,EAAA;gBACXtF,EAAI,EAAA,iCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;YACAuC,IAAM,EAAA,QAAA;YACNzC,IAAM,EAAA,CAAA;YACNkG,QAAU,EAAA;AACZ,SAAA;AACA,QAAA;YACExC,KAAO,EAAA;gBACLzD,EAAI,EAAA,0BAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,UAAA;YACN0C,WAAa,EAAA;gBACXtF,EAAI,EAAA,gCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;YACAuC,IAAM,EAAA,QAAA;YACNzC,IAAM,EAAA;AACR;AACD,KAAA;AACD,IAAA;AACE,QAAA;YACE0D,KAAO,EAAA;gBACLzD,EAAI,EAAA,uBAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,OAAA;YACN0C,WAAa,EAAA;gBACXtF,EAAI,EAAA,6BAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;YACAuC,IAAM,EAAA,OAAA;YACNzC,IAAM,EAAA,CAAA;YACNkG,QAAU,EAAA;AACZ;AACD;AACF,CAAA;AAED,MAAMjC,WAAckC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACrCN,IAAAA,SAAAA,EAAWI,eACRG,MAAM,EAAA,CACNC,IAAI,EAAA,CACJL,QAAQ,CAAC;QACRjG,EAAIuG,EAAAA,iBAAAA,CAAiBN,QAAQ,CAACjG,EAAE;QAChCC,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCuG,QAAQ,EAAA;AACXT,IAAAA,QAAAA,EAAUG,eAAIG,MAAM,EAAA;IACpBL,KAAOE,EAAAA,cAAAA,CACJG,MAAM,EACNL,CAAAA,KAAK,CAACO,iBAAiBP,CAAAA,KAAK,CAC5BC,CAAAA,QAAQ,CAAC;QACRjG,EAAIuG,EAAAA,iBAAAA,CAAiBN,QAAQ,CAACjG,EAAE;QAChCC,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCuG,QAAQ,EAAA;AACXnE,IAAAA,KAAAA,EAAO6D,cACJO,CAAAA,KAAK,EACLC,CAAAA,GAAG,CAAC,CAAG,EAAA;QACN1G,EAAIuG,EAAAA,iBAAAA,CAAiBN,QAAQ,CAACjG,EAAE;QAChCC,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCgG,QAAQ,CAAC;QACRjG,EAAIuG,EAAAA,iBAAAA,CAAiBN,QAAQ,CAACjG,EAAE;QAChCC,cAAgB,EAAA;AAClB,KAAA;AACJ,CAAA,CAAA;AAEA,MAAM+C,OAAU,GAAA;IACd2D,MAAQ,EAAA;QACN7D,iBAAmB,EAAA;YACjB9C,EAAI,EAAA,sDAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACA8C,UAAY,EAAA,KAAA;QACZF,IAAM,EAAA;AACR,KAAA;IACA,YAAc,EAAA;QACZC,iBAAmB,EAAA;YAAE9C,EAAI,EAAA,eAAA;YAAiBC,cAAgB,EAAA;AAAS,SAAA;QACnE8C,UAAY,EAAA,IAAA;QACZF,IAAM,EAAA;AACR;AACF,CAAA;;ACzVA;;AAEkG,2GAE5F+D,UAAa,GAAA,IAAA;AACjB,IAAA,MAAM,EAAEjG,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,wBAAAA,EAAAA;AACpD,IAAA,MAAM,CAAC8F,aAAeC,EAAAA,cAAAA,CAAe,GAAGzH,gBAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AACvD,IAAA,MAAMyG,cAAcC,sBAAiB,CAAA,CAACC,QAAUA,KAAMC,CAAAA,SAAS,CAACH,WAAW,CAAA;AAC3E,IAAA,MAAM,EACJI,cAAAA,EAAgB,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,EAClD,GAAGC,aAAQR,CAAAA,WAAAA,CAAYS,QAAQ,EAAEC,KAAAA,CAAAA;AAClC,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,EAAElH,kBAAkB,EAAE,GAAGC,qBAAAA,EAAAA;IAC/B,MAAM,EAAEjB,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEkI,MAAM,EAAE,GAAGC,0BAAAA,EAAAA;AACnB,IAAA,MAAM,CAACC,sBAAwBC,EAAAA,yBAAAA,CAA0B,GAAG1I,gBAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AAC3E,IAAA,MAAM,CAAC0H,WAAaC,EAAAA,cAAAA,CAAe,GAAG5I,gBAAMiB,CAAAA,QAAQ,CAAkC,EAAE,CAAA;AACxF,IAAA,MAAM,EAAEgC,IAAI,EAAE4F,OAAO,EAAEC,SAAS,EAAE,GAAGC,mBAAcC,CAAAA,aAAAA,CAAGC,KAAK,CAACV,MAAQ,EAAA;QAAEW,iBAAmB,EAAA;AAAK,KAAA,CAAA,CAAA;IAE9F,MAAM,EAAEC,UAAU,SAAEf,OAAAA,GAAQ,EAAE,EAAE,GAAGnF,QAAQ,EAAC;IAE5C,MAAMmG,YAAAA,GAAexH,2BACnB7B,CAAAA,cAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,8BACF,KAAA,EACAsJ,cAAc,CAAA;AAGpB,IAAA,MAAMC,UAAUC,aAAc7D,CAAAA,GAAG,CAAC,CAAC8D,UAAY;AAC7C,YAAA,GAAGA,MAAM;YACTpF,KAAOhE,EAAAA,aAAAA,CAAcoJ,OAAOpF,KAAK;SACnC,CAAA,CAAA;AAEA,IAAA,MAAMqF,QAAQrJ,aAAc,CAAA;QAC1BO,EAAI,EAAA,cAAA;QACJC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,MAAM8I,YAAe,GAAA,IAAA;QACnBjC,cAAe,CAAA,CAACkC,OAAS,CAACA,IAAAA,CAAAA;AAC5B,KAAA;IAEA,MAAM,CAACC,UAAU,GAAGC,gCAAAA,EAAAA;AACpB,IAAA,MAAMC,kBAAkB,OAAOC,GAAAA,GAAAA;QAC7B,IAAI;YACF,MAAMhH,GAAAA,GAAM,MAAM6G,SAAU,CAAA;AAAEG,gBAAAA;AAAI,aAAA,CAAA;AAElC,YAAA,IAAI,WAAWhH,GAAK,EAAA;gBAClB3B,kBAAmB,CAAA;oBACjB+B,IAAM,EAAA,QAAA;oBACNC,OAAS7B,EAAAA,cAAAA,CAAewB,IAAIM,KAAK;AACnC,iBAAA,CAAA;AACF;AACF,SAAA,CAAE,OAAO2G,GAAK,EAAA;YACZ5I,kBAAmB,CAAA;gBACjB+B,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAShD,aAAc,CAAA;oBACrBO,EAAI,EAAA,cAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,MAAMqJ,cAAAA,GAAiB,CAACtJ,EAAiC,GAAA,IAAA;AACvD,YAAA,IAAIsH,OAAS,EAAA;AACXI,gBAAAA,QAAAA,CAAS1H,GAAGuJ,QAAQ,EAAA,CAAA;AACtB;AACF,SAAA;IAEA,MAAMC,iBAAAA,GAAoB,CAACxJ,EAAiC,GAAA,UAAA;YAC1DiI,cAAe,CAAA;AAACjI,gBAAAA;AAAG,aAAA,CAAA;YACnB+H,yBAA0B,CAAA,IAAA,CAAA;AAC5B,SAAA;AAEA,IAAA,MAAM0B,aAAgB,GAAA,UAAA;AACpB,QAAA,MAAMN,eAAgBnB,CAAAA,WAAAA,CAAAA;QACtBD,yBAA0B,CAAA,KAAA,CAAA;AAC5B,KAAA;;AAGA,IAAA,IAAI,CAACU,YAAc,EAAA;QACjB,OAAO,IAAA;AACT;AAEA,IAAA,IAAIP,OAAS,EAAA;QACX,qBAAOvI,cAAA,CAAC+J,WAAKC,KAAK,EAAA,EAAA,CAAA;AACpB;IAEA,qBACEtG,eAAA,CAACqG,WAAKE,IAAI,EAAA;QAACC,WAAW1B,EAAAA,SAAAA;;AACpB,0BAAAxI,cAAA,CAAC+J,WAAKI,KAAK,EAAA;0BACRrK,aACC,CAAA;oBAAEO,EAAI,EAAA,oBAAA;oBAAsBC,cAAgB,EAAA;iBAC5C,EAAA;oBACE2C,IAAM,EAAA;AACR,iBAAA;;AAGJ,0BAAAjD,cAAA,CAACoK,cAAQxG,MAAM,EAAA;AACbyG,gBAAAA,aAAAA,EAAe5C,2BAAazH,cAAC8I,CAAAA,YAAAA,EAAAA;oBAAa7C,OAASmD,EAAAA;;gBACnDD,KAAOA,EAAAA,KAAAA;AACPmB,gBAAAA,QAAAA,EAAUxK,aAAc,CAAA;oBACtBO,EAAI,EAAA,qDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAN,cAAA,CAACoK,cAAQG,MAAM,EAAA;gBACbC,YACE,gBAAA9G,eAAA,CAAAa,mBAAA,EAAA;;sCACEvE,cAACyK,CAAAA,iBAAAA,EAAAA;AACC3G,4BAAAA,KAAAA,EAAOhE,aACL,CAAA;gCAAEO,EAAI,EAAA,4BAAA;gCAA8BC,cAAgB,EAAA;6BACpD,EAAA;gCAAEoK,MAAQvB,EAAAA;AAAM,6BAAA;;AAGpB,sCAAAzF,eAAA,CAACiH,cAAQpH,IAAI,EAAA;4BAACqH,OAASC,EAAAA,OAAAA;;AACrB,8CAAA7K,cAAA,CAAC2K,cAAQG,OAAO,EAAA,EAAA,CAAA;AAChB,8CAAA9K,cAAA,CAAC2K,cAAQI,OAAO,EAAA,EAAA,CAAA;AAChB,8CAAA/K,cAAA,CAAC2K,cAAQK,IAAI,EAAA,EAAA;;;;;;AAKrB,0BAAAtH,eAAA,CAAC0G,cAAQzG,OAAO,EAAA;;AACd,kCAAAD,eAAA,CAACuH,YAAM1H,IAAI,EAAA;wBAAC2H,IAAMpD,EAAAA,OAAAA;wBAAOkB,OAASA,EAAAA,OAAAA;;AAChC,0CAAAhJ,cAAA,CAACiL,YAAME,SAAS,EAAA,EAAA,CAAA;AAChB,0CAAAzH,eAAA,CAACuH,YAAMtH,OAAO,EAAA;;AACZ,kDAAAD,eAAA,CAACuH,YAAMG,IAAI,EAAA;;4CACR1D,SAAY,iBAAA1H,cAAA,CAACiL,WAAMI,CAAAA,kBAAkB,EAAM,EAAA,CAAA,GAAA,IAAA;AAC3CrC,4CAAAA,OAAAA,CAAQ5D,GAAG,CAAC,CAAC8D,MACZ,iBAAAlJ,cAAA,CAACiL,YAAMK,UAAU,EAAA;AAAoB,oDAAA,GAAGpC;AAAjBA,iDAAAA,EAAAA,MAAAA,CAAOjG,IAAI,CAAA;;;AAGtC,kDAAAjD,cAAA,CAACiL,YAAMM,KAAK,EAAA,EAAA,CAAA;AACZ,kDAAAvL,cAAA,CAACiL,YAAMO,OAAO,EAAA,EAAA,CAAA;AACd,kDAAAxL,cAAA,CAACiL,YAAMzG,IAAI,EAAA;AACRsD,wCAAAA,QAAAA,EAAAA,OAAAA,CAAM1C,GAAG,CAAC,CAACqG,IACV,iBAAA/H,eAAA,CAACuH,YAAMS,GAAG,EAAA;gDAERzF,OAAS0D,EAAAA,cAAAA,CAAe8B,KAAKpL,EAAE,CAAA;AAC/BsL,gDAAAA,MAAAA,EAAQhE,UAAU,SAAY,GAAA,SAAA;;oDAE7BD,SAAY,iBAAA1H,cAAA,CAACiL,YAAMW,YAAY,EAAA;AAACvL,wDAAAA,EAAAA,EAAIoL,KAAKpL;AAAS,qDAAA,CAAA,GAAA,IAAA;oDAClD2I,OAAQ5D,CAAAA,GAAG,CAAC,CAAC,EAAEyG,aAAa,EAAE5I,IAAI,EAAE,GAAG6I,IAAM,EAAA,GAAA;wDAC5C,qBACE9L,cAAA,CAACiL,YAAMc,IAAI,EAAA;sEACR,OAAOF,aAAAA,KAAkB,UACxBA,GAAAA,aAAAA,CAAcJ,IAAM,EAAA;AAAExI,gEAAAA,IAAAA;AAAM,gEAAA,GAAG6I;AAAK,6DAAA,CAAA;0EAGpC9L,cAAC8E,CAAAA,uBAAAA,EAAAA;gEAAWkH,SAAU,EAAA,YAAA;0EAAcP,IAAI,CAACxI,KAAK,IAAI;;AALrCA,yDAAAA,EAAAA,IAAAA,CAAAA;AASrB,qDAAA,CAAA;oDACC0E,OAAWD,IAAAA,SAAAA,iBACV1H,cAACiL,CAAAA,WAAAA,CAAMc,IAAI,EAAA;wDAAC9F,OAAS,EAAA,CAACgG,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;AAC3C,wDAAA,QAAA,gBAAAxI,eAACe,CAAAA,iBAAAA,EAAAA;4DAAK0H,cAAe,EAAA,KAAA;;AAClBxE,gEAAAA,OAAAA,iBACC3H,cAACoM,CAAAA,uBAAAA,EAAAA;oEACCpH,GAAKqH,EAAAA,sBAAAA;oEACLC,EAAIb,EAAAA,IAAAA,CAAKpL,EAAE,CAACuJ,QAAQ,EAAA;AACpB9F,oEAAAA,KAAAA,EAAOhE,aACL,CAAA;wEAAEO,EAAI,EAAA,0BAAA;wEAA4BC,cAAgB,EAAA;qEAClD,EAAA;AAAEoK,wEAAAA,MAAAA,EAAQ6B,oBAAed,CAAAA,IAAAA;AAAM,qEAAA,CAAA;oEAEjC1G,OAAQ,EAAA,OAAA;AAER,oEAAA,QAAA,gBAAA/E,cAACwM,CAAAA,YAAAA,EAAAA,EAAAA;AAED,iEAAA,CAAA,GAAA,IAAA;AACH9E,gEAAAA,SAAAA,iBACC1H,cAACoM,CAAAA,uBAAAA,EAAAA;oEACCnG,OAAS4D,EAAAA,iBAAAA,CAAkB4B,KAAKpL,EAAE,CAAA;AAClCyD,oEAAAA,KAAAA,EAAOhE,aACL,CAAA;wEAAEO,EAAI,EAAA,sBAAA;wEAAwBC,cAAgB,EAAA;qEAC9C,EAAA;AAAEoK,wEAAAA,MAAAA,EAAQ6B,oBAAed,CAAAA,IAAAA;AAAM,qEAAA,CAAA;oEAEjC1G,OAAQ,EAAA,OAAA;AAER,oEAAA,QAAA,gBAAA/E,cAACyM,CAAAA,WAAAA,EAAAA,EAAAA;AAED,iEAAA,CAAA,GAAA;;;AAGN,qDAAA,CAAA,GAAA;;AA/CChB,6CAAAA,EAAAA,IAAAA,CAAKpL,EAAE,CAAA;;;;;;AAqDtB,kCAAAqD,eAAA,CAACgJ,iBAAWnJ,IAAI,EAAA;AAAE,wBAAA,GAAGsF,UAAU;;AAC7B,0CAAA7I,cAAA,CAAC0M,iBAAWC,QAAQ,EAAA,EAAA,CAAA;AACpB,0CAAA3M,cAAA,CAAC0M,iBAAWE,KAAK,EAAA,EAAA;;;;;AAGpB1F,YAAAA,aAAAA,kBAAiBlH,cAACO,CAAAA,SAAAA,EAAAA;gBAAUC,QAAU4I,EAAAA;;AACvC,0BAAApJ,cAAA,CAAC6M,oBAAOtJ,IAAI,EAAA;gBAACuJ,IAAM3E,EAAAA,sBAAAA;gBAAwB1E,YAAc2E,EAAAA,yBAAAA;AACvD,gBAAA,QAAA,gBAAApI,cAAC+M,CAAAA,mBAAAA,EAAAA;oBAAcC,SAAWlD,EAAAA;;;;;AAIlC;AAEA,MAAMb,aAEF,GAAA;AACF,IAAA;QACEhG,IAAM,EAAA,WAAA;QACNa,KAAO,EAAA;YACLzD,EAAI,EAAA,sCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACA2M,QAAU,EAAA;AACZ,KAAA;AACA,IAAA;QACEhK,IAAM,EAAA,UAAA;QACNa,KAAO,EAAA;YACLzD,EAAI,EAAA,qCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACA2M,QAAU,EAAA;AACZ,KAAA;AACA,IAAA;QACEhK,IAAM,EAAA,OAAA;QACNa,KAAO,EAAA;YAAEzD,EAAI,EAAA,kCAAA;YAAoCC,cAAgB,EAAA;AAAQ,SAAA;QACzE2M,QAAU,EAAA;AACZ,KAAA;AACA,IAAA;QACEhK,IAAM,EAAA,OAAA;QACNa,KAAO,EAAA;YACLzD,EAAI,EAAA,kCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACA2M,QAAU,EAAA,KAAA;QACVpB,aAAc,CAAA,CAAA,EAAEnJ,KAAK,EAAE,EAAA;AACrB,YAAA,qBACE1C,cAAC8E,CAAAA,uBAAAA,EAAAA;gBAAWkH,SAAU,EAAA,YAAA;0BAActJ,KAAM0C,CAAAA,GAAG,CAAC,CAAC8H,IAAAA,GAASA,KAAKjK,IAAI,CAAA,CAAEkK,IAAI,CAAC,KAAA;;AAE5E;AACF,KAAA;AACA,IAAA;QACElK,IAAM,EAAA,UAAA;QACNa,KAAO,EAAA;YACLzD,EAAI,EAAA,qCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACA2M,QAAU,EAAA;AACZ,KAAA;AACA,IAAA;QACEhK,IAAM,EAAA,UAAA;QACNa,KAAO,EAAA;YACLzD,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACA2M,QAAU,EAAA,KAAA;QACVpB,aAAc,CAAA,CAAA,EAAEuB,QAAQ,EAAE,EAAA;AACxB,YAAA,qBACEpN,cAACyE,CAAAA,iBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAzE,cAACqN,CAAAA,mBAAAA,EAAAA;oBACCjN,IAAK,EAAA,GAAA;oBACLkN,WAAa,EAAA,CAAA;oBACbC,UAAW,EAAA,aAAA;oBACXC,KAAM,EAAA,YAAA;AACNzI,oBAAAA,OAAAA,EAASqI,WAAW,SAAY,GAAA,QAAA;AAEhC,oBAAA,QAAA,gBAAApN,cAAC8E,CAAAA,uBAAAA,EAAAA;AAAYsI,wBAAAA,QAAAA,EAAAA,QAAAA,GAAW,QAAW,GAAA;;;;AAI3C;AACF;AACD,CAAA;AAED,MAAMvC,OAAU,GAAA;AACd,IAAA;QACE5H,IAAM,EAAA,WAAA;QACNa,KAAO,EAAA,WAAA;QACPjB,IAAM,EAAA;AACR,KAAA;AACA,IAAA;QACEI,IAAM,EAAA,UAAA;QACNa,KAAO,EAAA,UAAA;QACPjB,IAAM,EAAA;AACR,KAAA;AACA,IAAA;QACEI,IAAM,EAAA,OAAA;QACNa,KAAO,EAAA,OAAA;QACPjB,IAAM,EAAA;AACR,KAAA;AACA,IAAA;QACEI,IAAM,EAAA,UAAA;QACNa,KAAO,EAAA,UAAA;QACPjB,IAAM,EAAA;AACR,KAAA;AACA,IAAA;QACEI,IAAM,EAAA,UAAA;QACNa,KAAO,EAAA,aAAA;QACPjB,IAAM,EAAA;AACR;AACD,CAAA;AAED;;AAEkG;AAGlG,MAAM4K,QAAW,GAAA,IAAA;AACf,IAAA,MAAMC,aAAgBpM,GAAAA,2BAAAA,CACpB2F,UACA,EAAA;AAEG,QAAA,CAAA,MAAM,oDAAO,wBAAA,KAAwE,EACnF0G,cAAc,CAAA;;AAIrB,IAAA,IAAI,CAACD,aAAe,EAAA;QAClB,OAAO,IAAA;AACT;AAEA,IAAA,qBAAO1N,cAAC0N,CAAAA,aAAAA,EAAAA,EAAAA,CAAAA;AACV;AAEA;;AAEkG,2GAE5FE,iBAAoB,GAAA,IAAA;IACxB,MAAMxG,WAAAA,GAAcC,sBAAiB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACS,QAAQ,EAAEC,KAAM+F,CAAAA,IAAAA,CAAAA;IAE5F,qBACE7N,cAAA,CAAC+J,WAAK+D,OAAO,EAAA;QAAC1G,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAApH,cAACyN,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;;;"}
|
|
1
|
+
{"version":3,"file":"ListPage-BRVhZryp.js","sources":["../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, ButtonProps } from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = React.forwardRef<HTMLButtonElement, CreateActionCEProps>((props, ref) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button ref={ref} startIcon={<Mail />} size=\"S\" {...props}>\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n});\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n <Typography>{isActive ? 'Active' : 'Inactive'}</Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["CreateActionCE","React","forwardRef","props","ref","formatMessage","useIntl","_jsx","Button","startIcon","Mail","size","id","defaultMessage","ModalForm","onToggle","currentStep","setStep","useState","registrationToken","setRegistrationToken","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","field","Item","col","InputRenderer","disabled","placeholder","xs","SelectRoles","undefined","hint","Footer","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create","ListPageCE","isModalOpened","setIsModalOpen","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","CreateActionEE","headers","TABLE_HEADERS","header","title","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","err","handleRowClick","toString","handleDeleteClick","confirmDelete","Page","Error","Main","aria-busy","Title","Layouts","primaryAction","subtitle","Action","startActions","SearchInput","target","Filters","options","FILTERS","Trigger","Popover","List","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","textColor","e","stopPropagation","justifyContent","IconButton","NavLink","to","getDisplayName","Pencil","Trash","Pagination","PageSize","Links","Dialog","open","ConfirmDialog","onConfirm","sortable","role","join","isActive","Status","borderWidth","background","color","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ import { Plus, Duplicate, Pencil, Trash } from '@strapi/icons';
|
|
|
5
5
|
import { produce } from 'immer';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
|
7
7
|
import { useNavigate } from 'react-router-dom';
|
|
8
|
-
import { n as useFetchClient, b as Layouts, S as SearchInput, C as ConfirmDialog } from './index-
|
|
8
|
+
import { n as useFetchClient, b as Layouts, S as SearchInput, C as ConfirmDialog } from './index-C3BO0YZa.mjs';
|
|
9
9
|
import { b as useTypedSelector, P as Page, e as useAPIErrorHandler, a as useNotification, n as useQueryParams, k as useRBAC } from './Theme-C3oHrQcy.mjs';
|
|
10
|
-
import { u as useAdminRoles } from './useAdminRoles-
|
|
10
|
+
import { u as useAdminRoles } from './useAdminRoles-D68i2BI_.mjs';
|
|
11
11
|
import { s as selectAdminPermissions } from './selectors-Dej_6h4x.mjs';
|
|
12
12
|
import { c as isFetchError } from './admin-BBS7sDVu.mjs';
|
|
13
13
|
import 'react-dom/client';
|
|
@@ -370,4 +370,4 @@ const reducer = (state, action)=>produce(state, (draftState)=>{
|
|
|
370
370
|
};
|
|
371
371
|
|
|
372
372
|
export { ListPage, ProtectedListPage };
|
|
373
|
-
//# sourceMappingURL=ListPage-
|
|
373
|
+
//# sourceMappingURL=ListPage-BuFQNHRU.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-srJutHdv.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'children' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n cursor?: string;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n cursor,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n cursor={cursor}\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`13rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`25rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) => {\n if (icon) {\n return (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton {...icon} variant=\"ghost\" />\n </Box>\n );\n }\n\n return null;\n })}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Dialog,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isFetchError } from '../../../../utils/getFetchClient';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (isFetchError(error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n />\n {canRead && (\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <Layouts.Content>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n cursor=\"pointer\"\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n children: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n children: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n children: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </Layouts.Content>\n )}\n <Dialog.Root open={isWarningDeleteAllOpened} onOpenChange={handleToggleModal}>\n <ConfirmDialog onConfirm={handleDeleteData} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["RoleRow","id","name","description","usersCount","icons","rowIndex","canUpdate","cursor","formatMessage","useIntl","editObject","usersCountText","defaultMessage","number","_jsxs","Tr","aria-rowindex","onClick","undefined","_jsx","Td","maxWidth","Typography","ellipsis","textColor","Flex","justifyContent","e","stopPropagation","map","icon","i","Box","paddingLeft","IconButton","variant","label","ListPage","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","$containsi","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","preventDefault","handleClickDuplicate","rowCount","length","colCount","Page","Loading","Main","Title","Layouts","Header","primaryAction","Button","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","target","Content","Table","footer","TFooter","Thead","Th","VisuallyHidden","Tbody","index","children","Duplicate","toString","Pencil","Trash","filter","Boolean","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMA,UAAU,CAAC,EACfC,EAAE,EACFC,IAAI,EACJC,WAAW,EACXC,UAAU,EACVC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACO,GAAA;IACb,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,GAAGC,WAAW,GAAGN,KAAAA;AAEvB,IAAA,MAAMO,iBAAiBH,aACrB,CAAA;QACER,EAAI,EAAA,CAAC,wBAAwB,CAAC;QAC9BY,cAAgB,EAAA;KAElB,EAAA;QAAEC,MAAQV,EAAAA;AAAW,KAAA,CAAA;AAGvB,IAAA,qBACEW,IAACC,CAAAA,EAAAA,EAAAA;QACCR,MAAQA,EAAAA,MAAAA;QACRS,eAAeX,EAAAA,QAAAA;;QAGfY,OAASX,EAAAA,SAAAA,GAAYI,UAAWO,CAAAA,OAAO,GAAGC,SAAAA;;0BAE1CC,GAACC,CAAAA,EAAAA,EAAAA;gBAAGC,QAAU,EAAA,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,UAAAA,EAAAA;oBAAWC,QAAQ,EAAA,IAAA;oBAACC,SAAU,EAAA,YAAA;AAC5BvB,oBAAAA,QAAAA,EAAAA;;;0BAGLkB,GAACC,CAAAA,EAAAA,EAAAA;gBAAGC,QAAU,EAAA,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,UAAAA,EAAAA;oBAAWC,QAAQ,EAAA,IAAA;oBAACC,SAAU,EAAA,YAAA;AAC5BtB,oBAAAA,QAAAA,EAAAA;;;0BAGLiB,GAACC,CAAAA,EAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACG,CAAAA,UAAAA,EAAAA;oBAAWE,SAAU,EAAA,YAAA;AAAcb,oBAAAA,QAAAA,EAAAA;;;0BAEtCQ,GAACC,CAAAA,EAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACM,CAAAA,IAAAA,EAAAA;oBAAKC,cAAe,EAAA,UAAA;oBAAWT,OAAS,EAAA,CAACU,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;8BAC9DxB,KAAMyB,CAAAA,GAAG,CAAC,CAACC,IAAMC,EAAAA,CAAAA,GAAAA;AAChB,wBAAA,IAAID,IAAM,EAAA;AACR,4BAAA,qBACEX,GAACa,CAAAA,GAAAA,EAAAA;gCAAqBC,WAAaF,EAAAA,CAAAA,KAAM,IAAI,CAAI,GAAA,CAAA;AAC/C,gCAAA,QAAA,gBAAAZ,GAACe,CAAAA,UAAAA,EAAAA;AAAY,oCAAA,GAAGJ,IAAI;oCAAEK,OAAQ,EAAA;;AADtBL,6BAAAA,EAAAA,IAAAA,CAAKM,KAAK,CAAA;AAIxB;wBAEA,OAAO,IAAA;AACT,qBAAA;;;;AA7BCpC,KAAAA,EAAAA,EAAAA,CAAAA;AAkCX,CAAA;;ACpCA,MAAMqC,QAAW,GAAA,IAAA;IACf,MAAM,EAAE7B,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM6B,cAAcC,gBAAiBC,CAAAA,sBAAAA,CAAAA;IACrC,MAAM,EAAEC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;IAC3B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,CAACC,wBAA0BC,EAAAA,4BAAAA,CAA6B,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAChF,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAM,EACJC,SAAWC,EAAAA,uBAAuB,EAClCC,cAAgB,EAAA,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAElD,SAAS,EAAE,EAC7D,GAAGmD,OAAQnB,CAAAA,WAAAA,CAAYoB,QAAQ,EAAEC,KAAAA,CAAAA;AAElC,IAAA,MAAM,EAAEA,KAAK,EAAEC,SAASC,YAAY,EAAE,GAAGC,aACvC,CAAA;AAAEC,QAAAA,OAAAA,EAASd,OAAOe,EAAK,GAAA;YAAE/D,IAAM,EAAA;AAAEgE,gBAAAA,UAAAA,EAAYhB,MAAMe;AAAG;SAAM9C,GAAAA;KAC5D,EAAA;QACEgD,yBAA2B,EAAA,IAAA;AAC3BC,QAAAA,IAAAA,EAAMf,2BAA2B,CAACI;AACpC,KAAA,CAAA;AAGF,IAAA,MAAMY,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,CAAC,EAAEC,YAAY,EAAE,EAAEC,SAAS,GAAGxB,KAAAA,CAAMyB,UAAU,CAACC,OAASC,EAAAA,YAAAA,CAAAA;IAC/D,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,gBAAmB,GAAA,UAAA;QACvB,IAAI;YACFN,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AAEA,YAAA,MAAMH,KAAK,2BAA6B,EAAA;gBACtCI,GAAK,EAAA;AAACT,oBAAAA;AAAa;AACrB,aAAA,CAAA;YAEA,MAAMT,YAAAA,EAAAA;YAENU,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;AACd,YAAA,IAAIC,aAAaD,KAAQ,CAAA,EAAA;gBACvBrC,kBAAmB,CAAA;oBACjBmC,IAAM,EAAA,QAAA;AACNI,oBAAAA,OAAAA,EAASzC,cAAeuC,CAAAA,KAAAA;AAC1B,iBAAA,CAAA;AACF;AACF;AACF,KAAA;IAEA,MAAMG,kBAAAA,GAAqB,IAAMf,QAAS,CAAA,KAAA,CAAA;AAE1C,IAAA,MAAMgB,iBAAoB,GAAA,IAAMtC,4BAA6B,CAAA,CAACuC,OAAS,CAACA,IAAAA,CAAAA;IAExE,MAAMC,iBAAAA,GAAoB,CAACC,IAAAA,GAAoB,CAAC5D,CAAAA,GAAAA;AAC9CA,YAAAA,CAAAA,CAAE6D,cAAc,EAAA;AAChB7D,YAAAA,CAAAA,CAAEC,eAAe,EAAA;YAEjB,IAAI2D,IAAAA,CAAKpF,UAAU,EAAE;gBACnBwC,kBAAmB,CAAA;oBACjBmC,IAAM,EAAA,MAAA;AACNI,oBAAAA,OAAAA,EAAS1E,aAAc,CAAA;wBAAER,EAAI,EAAA;AAAiD,qBAAA;AAChF,iBAAA,CAAA;aACK,MAAA;gBACLuE,QAAS,CAAA;oBACPO,IAAM,EAAA,oBAAA;AACN9E,oBAAAA,EAAAA,EAAIuF,KAAKvF;AACX,iBAAA,CAAA;AAEAoF,gBAAAA,iBAAAA,EAAAA;AACF;AACF,SAAA;IAEA,MAAMK,oBAAAA,GAAuB,CAACF,IAAAA,GAAoB,CAAC5D,CAAAA,GAAAA;AACjDA,YAAAA,CAAAA,CAAE6D,cAAc,EAAA;AAChB7D,YAAAA,CAAAA,CAAEC,eAAe,EAAA;AAEjBwC,YAAAA,QAAAA,CAAS,CAAC,UAAU,EAAEmB,IAAKvF,CAAAA,EAAE,CAAC,CAAC,CAAA;AACjC,SAAA;IAEA,MAAM0F,QAAAA,GAAW/B,KAAMgC,CAAAA,MAAM,GAAG,CAAA;AAChC,IAAA,MAAMC,QAAW,GAAA,CAAA;AAEjB,IAAA,IAAIxC,uBAAyB,EAAA;QAC3B,qBAAOjC,GAAA,CAAC0E,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,qBACEhF,IAAA,CAAC+E,KAAKE,IAAI,EAAA;;AACR,0BAAA5E,GAAA,CAAC0E,KAAKG,KAAK,EAAA;0BACRxF,aACC,CAAA;oBAAER,EAAI,EAAA,oBAAA;oBAAsBY,cAAgB,EAAA;iBAC5C,EAAA;oBACEX,IAAM,EAAA;AACR,iBAAA;;AAGJ,0BAAAkB,GAAA,CAAC8E,QAAQC,MAAM,EAAA;AACbC,gBAAAA,aAAAA,EACE7C,0BACEnC,GAACiF,CAAAA,MAAAA,EAAAA;oBAAOnF,OAASkE,EAAAA,kBAAAA;AAAoBkB,oBAAAA,SAAAA,gBAAWlF,GAACmF,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,IAAK,EAAA,GAAA;8BAC5D/F,aAAc,CAAA;wBACbR,EAAI,EAAA,gCAAA;wBACJY,cAAgB,EAAA;AAClB,qBAAA;AAEA,iBAAA,CAAA,GAAA,IAAA;AAEN4F,gBAAAA,KAAAA,EAAOhG,aAAc,CAAA;oBACnBR,EAAI,EAAA,cAAA;oBACJY,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACA6F,gBAAAA,QAAAA,EAAUjG,aAAc,CAAA;oBACtBR,EAAI,EAAA,iCAAA;oBACJY,cAAgB,EAAA;AAClB,iBAAA;;YAED4C,OACC,kBAAArC,GAAA,CAAC8E,QAAQS,MAAM,EAAA;AACbC,gBAAAA,YAAAA,gBACExF,GAACyF,CAAAA,WAAAA,EAAAA;AACCxE,oBAAAA,KAAAA,EAAO5B,aACL,CAAA;wBAAER,EAAI,EAAA,4BAAA;wBAA8BY,cAAgB,EAAA;qBACpD,EAAA;AACEiG,wBAAAA,MAAAA,EAAQrG,aAAc,CAAA;4BACpBR,EAAI,EAAA,cAAA;4BACJY,cAAgB,EAAA;AAClB,yBAAA;AACF,qBAAA;;;YAMT4C,OACC,kBAAArC,GAAA,CAAC8E,QAAQa,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAhG,IAACiG,CAAAA,KAAAA,EAAAA;oBACCnB,QAAUA,EAAAA,QAAAA;oBACVF,QAAUA,EAAAA,QAAAA;AACVsB,oBAAAA,MAAAA,EACE1D,0BACEnC,GAAC8F,CAAAA,OAAAA,EAAAA;wBAAQ1G,MAAO,EAAA,SAAA;wBAAUU,OAASkE,EAAAA,kBAAAA;AAAoBrD,wBAAAA,IAAAA,gBAAMX,GAACmF,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;kCAC3D9F,aAAc,CAAA;4BACbR,EAAI,EAAA,gCAAA;4BACJY,cAAgB,EAAA;AAClB,yBAAA;AAEA,qBAAA,CAAA,GAAA,IAAA;;sCAGNO,GAAC+F,CAAAA,KAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAApG,IAACC,CAAAA,EAAAA,EAAAA;gCAAGC,eAAe,EAAA,CAAA;;kDACjBG,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,aAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,oBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,cAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACiG,CAAAA,cAAAA,EAAAA;sDACE5G,aAAc,CAAA;gDACbR,EAAI,EAAA,gBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;;;;sCAKRO,GAACkG,CAAAA,KAAAA,EAAAA;AACE1D,4BAAAA,QAAAA,EAAAA,KAAAA,EAAO9B,GAAI,CAAA,CAAC0D,IAAM+B,EAAAA,KAAAA,iBACjBnG,GAACpB,CAAAA,OAAAA,EAAAA;oCACCQ,MAAO,EAAA,SAAA;AAEPP,oCAAAA,EAAAA,EAAIuF,KAAKvF,EAAE;AACXC,oCAAAA,IAAAA,EAAMsF,KAAKtF,IAAI;AACfC,oCAAAA,WAAAA,EAAaqF,KAAKrF,WAAW;AAC7BC,oCAAAA,UAAAA,EAAYoF,KAAKpF,UAAU;oCAC3BC,KACE,EAAA;wCACEkD,SACG,IAAA;AACCrC,4CAAAA,OAAAA,EAASwE,oBAAqBF,CAAAA,IAAAA,CAAAA;AAC9BnD,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDACnBR,EAAI,EAAA,qBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA,CAAA;AACA2G,4CAAAA,QAAAA,gBAAUpG,GAACqG,CAAAA,SAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFlH,SACG,IAAA;AACCW,4CAAAA,OAAAA,EAAS,IAAMmD,QAAAA,CAASmB,IAAKvF,CAAAA,EAAE,CAACyH,QAAQ,EAAA,CAAA;AACxCrF,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDAAER,EAAI,EAAA,gBAAA;gDAAkBY,cAAgB,EAAA;AAAO,6CAAA,CAAA;AACpE2G,4CAAAA,QAAAA,gBAAUpG,GAACuG,CAAAA,MAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFnE,SACG,IAAA;AACCtC,4CAAAA,OAAAA,EAASqE,iBAAkBC,CAAAA,IAAAA,CAAAA;AAC3BnD,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDAAER,EAAI,EAAA,eAAA;gDAAiBY,cAAgB,EAAA;AAAS,6CAAA,CAAA;AACrE2G,4CAAAA,QAAAA,gBAAUpG,GAACwG,CAAAA,KAAAA,EAAAA,EAAAA;AACb;AACH,qCAAA,CAACC,MAAM,CAACC,OAAAA,CAAAA;AAEXxH,oCAAAA,QAAAA,EAAUiH,KAAQ,GAAA,CAAA;oCAClBhH,SAAWA,EAAAA;AA/BNiF,iCAAAA,EAAAA,IAAAA,CAAKvF,EAAE,CAAA;;;;;AAsCxB,0BAAAmB,GAAA,CAAC2G,OAAOC,IAAI,EAAA;gBAACC,IAAMnF,EAAAA,wBAAAA;gBAA0BoF,YAAc7C,EAAAA,iBAAAA;AACzD,gBAAA,QAAA,gBAAAjE,GAAC+G,CAAAA,aAAAA,EAAAA;oBAAcC,SAAWtD,EAAAA;;;;;AAIlC;AAgBA,MAAMH,YAAe,GAAA;IACnBJ,YAAc,EAAA,IAAA;IACd8D,6BAA+B,EAAA,KAAA;IAC/BC,iBAAmB,EAAA;AACrB,CAAA;AAwBA,MAAM5D,UAAU,CAAC6D,KAAAA,EAAcC,MAC7BC,GAAAA,OAAAA,CAAQF,OAAO,CAACG,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOzD,IAAI;YACjB,KAAK,iBAAA;AAAmB,gBAAA;AACtB2D,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,IAAA;AAC3C,oBAAA;AACF;YACA,KAAK,2BAAA;AAA6B,gBAAA;AAChCK,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,IAAA;AAC/BI,oBAAAA,UAAAA,CAAWnE,YAAY,GAAG,IAAA;AAC1B,oBAAA;AACF;YACA,KAAK,sBAAA;AAAwB,gBAAA;AAC3BmE,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,KAAA;AAC/BI,oBAAAA,UAAAA,CAAWnE,YAAY,GAAG,IAAA;AAC1BmE,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,KAAA;AAC3C,oBAAA;AACF;YACA,KAAK,oBAAA;AAAsB,gBAAA;oBACzBK,UAAWnE,CAAAA,YAAY,GAAGiE,MAAAA,CAAOvI,EAAE;AAEnC,oBAAA;AACF;AACA,YAAA;gBACE,OAAOyI,UAAAA;AACX;AACF,KAAA,CAAA;AAEF;;AAEkG,2GAE5FC,iBAAoB,GAAA,IAAA;IACxB,MAAMpG,WAAAA,GAAcC,gBAAiB,CAAA,CAAC+F,KAAUA,GAAAA,KAAAA,CAAMK,SAAS,CAACrG,WAAW,CAACoB,QAAQ,EAAEC,KAAMiF,CAAAA,IAAAA,CAAAA;IAE5F,qBACEzH,GAAA,CAAC0E,KAAKgD,OAAO,EAAA;QAACvG,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAnB,GAACkB,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
1
|
+
{"version":3,"file":"ListPage-BuFQNHRU.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'children' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n cursor?: string;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n cursor,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n cursor={cursor}\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`13rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`25rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) => {\n if (icon) {\n return (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton {...icon} variant=\"ghost\" />\n </Box>\n );\n }\n\n return null;\n })}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Dialog,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isFetchError } from '../../../../utils/getFetchClient';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (isFetchError(error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n />\n {canRead && (\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <Layouts.Content>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n cursor=\"pointer\"\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n children: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n children: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n children: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </Layouts.Content>\n )}\n <Dialog.Root open={isWarningDeleteAllOpened} onOpenChange={handleToggleModal}>\n <ConfirmDialog onConfirm={handleDeleteData} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["RoleRow","id","name","description","usersCount","icons","rowIndex","canUpdate","cursor","formatMessage","useIntl","editObject","usersCountText","defaultMessage","number","_jsxs","Tr","aria-rowindex","onClick","undefined","_jsx","Td","maxWidth","Typography","ellipsis","textColor","Flex","justifyContent","e","stopPropagation","map","icon","i","Box","paddingLeft","IconButton","variant","label","ListPage","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","$containsi","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","preventDefault","handleClickDuplicate","rowCount","length","colCount","Page","Loading","Main","Title","Layouts","Header","primaryAction","Button","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","target","Content","Table","footer","TFooter","Thead","Th","VisuallyHidden","Tbody","index","children","Duplicate","toString","Pencil","Trash","filter","Boolean","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMA,UAAU,CAAC,EACfC,EAAE,EACFC,IAAI,EACJC,WAAW,EACXC,UAAU,EACVC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACO,GAAA;IACb,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,GAAGC,WAAW,GAAGN,KAAAA;AAEvB,IAAA,MAAMO,iBAAiBH,aACrB,CAAA;QACER,EAAI,EAAA,CAAC,wBAAwB,CAAC;QAC9BY,cAAgB,EAAA;KAElB,EAAA;QAAEC,MAAQV,EAAAA;AAAW,KAAA,CAAA;AAGvB,IAAA,qBACEW,IAACC,CAAAA,EAAAA,EAAAA;QACCR,MAAQA,EAAAA,MAAAA;QACRS,eAAeX,EAAAA,QAAAA;;QAGfY,OAASX,EAAAA,SAAAA,GAAYI,UAAWO,CAAAA,OAAO,GAAGC,SAAAA;;0BAE1CC,GAACC,CAAAA,EAAAA,EAAAA;gBAAGC,QAAU,EAAA,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,UAAAA,EAAAA;oBAAWC,QAAQ,EAAA,IAAA;oBAACC,SAAU,EAAA,YAAA;AAC5BvB,oBAAAA,QAAAA,EAAAA;;;0BAGLkB,GAACC,CAAAA,EAAAA,EAAAA;gBAAGC,QAAU,EAAA,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,UAAAA,EAAAA;oBAAWC,QAAQ,EAAA,IAAA;oBAACC,SAAU,EAAA,YAAA;AAC5BtB,oBAAAA,QAAAA,EAAAA;;;0BAGLiB,GAACC,CAAAA,EAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACG,CAAAA,UAAAA,EAAAA;oBAAWE,SAAU,EAAA,YAAA;AAAcb,oBAAAA,QAAAA,EAAAA;;;0BAEtCQ,GAACC,CAAAA,EAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACM,CAAAA,IAAAA,EAAAA;oBAAKC,cAAe,EAAA,UAAA;oBAAWT,OAAS,EAAA,CAACU,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;8BAC9DxB,KAAMyB,CAAAA,GAAG,CAAC,CAACC,IAAMC,EAAAA,CAAAA,GAAAA;AAChB,wBAAA,IAAID,IAAM,EAAA;AACR,4BAAA,qBACEX,GAACa,CAAAA,GAAAA,EAAAA;gCAAqBC,WAAaF,EAAAA,CAAAA,KAAM,IAAI,CAAI,GAAA,CAAA;AAC/C,gCAAA,QAAA,gBAAAZ,GAACe,CAAAA,UAAAA,EAAAA;AAAY,oCAAA,GAAGJ,IAAI;oCAAEK,OAAQ,EAAA;;AADtBL,6BAAAA,EAAAA,IAAAA,CAAKM,KAAK,CAAA;AAIxB;wBAEA,OAAO,IAAA;AACT,qBAAA;;;;AA7BCpC,KAAAA,EAAAA,EAAAA,CAAAA;AAkCX,CAAA;;ACpCA,MAAMqC,QAAW,GAAA,IAAA;IACf,MAAM,EAAE7B,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM6B,cAAcC,gBAAiBC,CAAAA,sBAAAA,CAAAA;IACrC,MAAM,EAAEC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;IAC3B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,CAACC,wBAA0BC,EAAAA,4BAAAA,CAA6B,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAChF,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAM,EACJC,SAAWC,EAAAA,uBAAuB,EAClCC,cAAgB,EAAA,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAElD,SAAS,EAAE,EAC7D,GAAGmD,OAAQnB,CAAAA,WAAAA,CAAYoB,QAAQ,EAAEC,KAAAA,CAAAA;AAElC,IAAA,MAAM,EAAEA,KAAK,EAAEC,SAASC,YAAY,EAAE,GAAGC,aACvC,CAAA;AAAEC,QAAAA,OAAAA,EAASd,OAAOe,EAAK,GAAA;YAAE/D,IAAM,EAAA;AAAEgE,gBAAAA,UAAAA,EAAYhB,MAAMe;AAAG;SAAM9C,GAAAA;KAC5D,EAAA;QACEgD,yBAA2B,EAAA,IAAA;AAC3BC,QAAAA,IAAAA,EAAMf,2BAA2B,CAACI;AACpC,KAAA,CAAA;AAGF,IAAA,MAAMY,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,CAAC,EAAEC,YAAY,EAAE,EAAEC,SAAS,GAAGxB,KAAAA,CAAMyB,UAAU,CAACC,OAASC,EAAAA,YAAAA,CAAAA;IAC/D,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,gBAAmB,GAAA,UAAA;QACvB,IAAI;YACFN,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AAEA,YAAA,MAAMH,KAAK,2BAA6B,EAAA;gBACtCI,GAAK,EAAA;AAACT,oBAAAA;AAAa;AACrB,aAAA,CAAA;YAEA,MAAMT,YAAAA,EAAAA;YAENU,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;AACd,YAAA,IAAIC,aAAaD,KAAQ,CAAA,EAAA;gBACvBrC,kBAAmB,CAAA;oBACjBmC,IAAM,EAAA,QAAA;AACNI,oBAAAA,OAAAA,EAASzC,cAAeuC,CAAAA,KAAAA;AAC1B,iBAAA,CAAA;AACF;AACF;AACF,KAAA;IAEA,MAAMG,kBAAAA,GAAqB,IAAMf,QAAS,CAAA,KAAA,CAAA;AAE1C,IAAA,MAAMgB,iBAAoB,GAAA,IAAMtC,4BAA6B,CAAA,CAACuC,OAAS,CAACA,IAAAA,CAAAA;IAExE,MAAMC,iBAAAA,GAAoB,CAACC,IAAAA,GAAoB,CAAC5D,CAAAA,GAAAA;AAC9CA,YAAAA,CAAAA,CAAE6D,cAAc,EAAA;AAChB7D,YAAAA,CAAAA,CAAEC,eAAe,EAAA;YAEjB,IAAI2D,IAAAA,CAAKpF,UAAU,EAAE;gBACnBwC,kBAAmB,CAAA;oBACjBmC,IAAM,EAAA,MAAA;AACNI,oBAAAA,OAAAA,EAAS1E,aAAc,CAAA;wBAAER,EAAI,EAAA;AAAiD,qBAAA;AAChF,iBAAA,CAAA;aACK,MAAA;gBACLuE,QAAS,CAAA;oBACPO,IAAM,EAAA,oBAAA;AACN9E,oBAAAA,EAAAA,EAAIuF,KAAKvF;AACX,iBAAA,CAAA;AAEAoF,gBAAAA,iBAAAA,EAAAA;AACF;AACF,SAAA;IAEA,MAAMK,oBAAAA,GAAuB,CAACF,IAAAA,GAAoB,CAAC5D,CAAAA,GAAAA;AACjDA,YAAAA,CAAAA,CAAE6D,cAAc,EAAA;AAChB7D,YAAAA,CAAAA,CAAEC,eAAe,EAAA;AAEjBwC,YAAAA,QAAAA,CAAS,CAAC,UAAU,EAAEmB,IAAKvF,CAAAA,EAAE,CAAC,CAAC,CAAA;AACjC,SAAA;IAEA,MAAM0F,QAAAA,GAAW/B,KAAMgC,CAAAA,MAAM,GAAG,CAAA;AAChC,IAAA,MAAMC,QAAW,GAAA,CAAA;AAEjB,IAAA,IAAIxC,uBAAyB,EAAA;QAC3B,qBAAOjC,GAAA,CAAC0E,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,qBACEhF,IAAA,CAAC+E,KAAKE,IAAI,EAAA;;AACR,0BAAA5E,GAAA,CAAC0E,KAAKG,KAAK,EAAA;0BACRxF,aACC,CAAA;oBAAER,EAAI,EAAA,oBAAA;oBAAsBY,cAAgB,EAAA;iBAC5C,EAAA;oBACEX,IAAM,EAAA;AACR,iBAAA;;AAGJ,0BAAAkB,GAAA,CAAC8E,QAAQC,MAAM,EAAA;AACbC,gBAAAA,aAAAA,EACE7C,0BACEnC,GAACiF,CAAAA,MAAAA,EAAAA;oBAAOnF,OAASkE,EAAAA,kBAAAA;AAAoBkB,oBAAAA,SAAAA,gBAAWlF,GAACmF,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,IAAK,EAAA,GAAA;8BAC5D/F,aAAc,CAAA;wBACbR,EAAI,EAAA,gCAAA;wBACJY,cAAgB,EAAA;AAClB,qBAAA;AAEA,iBAAA,CAAA,GAAA,IAAA;AAEN4F,gBAAAA,KAAAA,EAAOhG,aAAc,CAAA;oBACnBR,EAAI,EAAA,cAAA;oBACJY,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACA6F,gBAAAA,QAAAA,EAAUjG,aAAc,CAAA;oBACtBR,EAAI,EAAA,iCAAA;oBACJY,cAAgB,EAAA;AAClB,iBAAA;;YAED4C,OACC,kBAAArC,GAAA,CAAC8E,QAAQS,MAAM,EAAA;AACbC,gBAAAA,YAAAA,gBACExF,GAACyF,CAAAA,WAAAA,EAAAA;AACCxE,oBAAAA,KAAAA,EAAO5B,aACL,CAAA;wBAAER,EAAI,EAAA,4BAAA;wBAA8BY,cAAgB,EAAA;qBACpD,EAAA;AACEiG,wBAAAA,MAAAA,EAAQrG,aAAc,CAAA;4BACpBR,EAAI,EAAA,cAAA;4BACJY,cAAgB,EAAA;AAClB,yBAAA;AACF,qBAAA;;;YAMT4C,OACC,kBAAArC,GAAA,CAAC8E,QAAQa,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAhG,IAACiG,CAAAA,KAAAA,EAAAA;oBACCnB,QAAUA,EAAAA,QAAAA;oBACVF,QAAUA,EAAAA,QAAAA;AACVsB,oBAAAA,MAAAA,EACE1D,0BACEnC,GAAC8F,CAAAA,OAAAA,EAAAA;wBAAQ1G,MAAO,EAAA,SAAA;wBAAUU,OAASkE,EAAAA,kBAAAA;AAAoBrD,wBAAAA,IAAAA,gBAAMX,GAACmF,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;kCAC3D9F,aAAc,CAAA;4BACbR,EAAI,EAAA,gCAAA;4BACJY,cAAgB,EAAA;AAClB,yBAAA;AAEA,qBAAA,CAAA,GAAA,IAAA;;sCAGNO,GAAC+F,CAAAA,KAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAApG,IAACC,CAAAA,EAAAA,EAAAA;gCAAGC,eAAe,EAAA,CAAA;;kDACjBG,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,aAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,oBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,cAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACiG,CAAAA,cAAAA,EAAAA;sDACE5G,aAAc,CAAA;gDACbR,EAAI,EAAA,gBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;;;;sCAKRO,GAACkG,CAAAA,KAAAA,EAAAA;AACE1D,4BAAAA,QAAAA,EAAAA,KAAAA,EAAO9B,GAAI,CAAA,CAAC0D,IAAM+B,EAAAA,KAAAA,iBACjBnG,GAACpB,CAAAA,OAAAA,EAAAA;oCACCQ,MAAO,EAAA,SAAA;AAEPP,oCAAAA,EAAAA,EAAIuF,KAAKvF,EAAE;AACXC,oCAAAA,IAAAA,EAAMsF,KAAKtF,IAAI;AACfC,oCAAAA,WAAAA,EAAaqF,KAAKrF,WAAW;AAC7BC,oCAAAA,UAAAA,EAAYoF,KAAKpF,UAAU;oCAC3BC,KACE,EAAA;wCACEkD,SACG,IAAA;AACCrC,4CAAAA,OAAAA,EAASwE,oBAAqBF,CAAAA,IAAAA,CAAAA;AAC9BnD,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDACnBR,EAAI,EAAA,qBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA,CAAA;AACA2G,4CAAAA,QAAAA,gBAAUpG,GAACqG,CAAAA,SAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFlH,SACG,IAAA;AACCW,4CAAAA,OAAAA,EAAS,IAAMmD,QAAAA,CAASmB,IAAKvF,CAAAA,EAAE,CAACyH,QAAQ,EAAA,CAAA;AACxCrF,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDAAER,EAAI,EAAA,gBAAA;gDAAkBY,cAAgB,EAAA;AAAO,6CAAA,CAAA;AACpE2G,4CAAAA,QAAAA,gBAAUpG,GAACuG,CAAAA,MAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFnE,SACG,IAAA;AACCtC,4CAAAA,OAAAA,EAASqE,iBAAkBC,CAAAA,IAAAA,CAAAA;AAC3BnD,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDAAER,EAAI,EAAA,eAAA;gDAAiBY,cAAgB,EAAA;AAAS,6CAAA,CAAA;AACrE2G,4CAAAA,QAAAA,gBAAUpG,GAACwG,CAAAA,KAAAA,EAAAA,EAAAA;AACb;AACH,qCAAA,CAACC,MAAM,CAACC,OAAAA,CAAAA;AAEXxH,oCAAAA,QAAAA,EAAUiH,KAAQ,GAAA,CAAA;oCAClBhH,SAAWA,EAAAA;AA/BNiF,iCAAAA,EAAAA,IAAAA,CAAKvF,EAAE,CAAA;;;;;AAsCxB,0BAAAmB,GAAA,CAAC2G,OAAOC,IAAI,EAAA;gBAACC,IAAMnF,EAAAA,wBAAAA;gBAA0BoF,YAAc7C,EAAAA,iBAAAA;AACzD,gBAAA,QAAA,gBAAAjE,GAAC+G,CAAAA,aAAAA,EAAAA;oBAAcC,SAAWtD,EAAAA;;;;;AAIlC;AAgBA,MAAMH,YAAe,GAAA;IACnBJ,YAAc,EAAA,IAAA;IACd8D,6BAA+B,EAAA,KAAA;IAC/BC,iBAAmB,EAAA;AACrB,CAAA;AAwBA,MAAM5D,UAAU,CAAC6D,KAAAA,EAAcC,MAC7BC,GAAAA,OAAAA,CAAQF,OAAO,CAACG,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOzD,IAAI;YACjB,KAAK,iBAAA;AAAmB,gBAAA;AACtB2D,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,IAAA;AAC3C,oBAAA;AACF;YACA,KAAK,2BAAA;AAA6B,gBAAA;AAChCK,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,IAAA;AAC/BI,oBAAAA,UAAAA,CAAWnE,YAAY,GAAG,IAAA;AAC1B,oBAAA;AACF;YACA,KAAK,sBAAA;AAAwB,gBAAA;AAC3BmE,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,KAAA;AAC/BI,oBAAAA,UAAAA,CAAWnE,YAAY,GAAG,IAAA;AAC1BmE,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,KAAA;AAC3C,oBAAA;AACF;YACA,KAAK,oBAAA;AAAsB,gBAAA;oBACzBK,UAAWnE,CAAAA,YAAY,GAAGiE,MAAAA,CAAOvI,EAAE;AAEnC,oBAAA;AACF;AACA,YAAA;gBACE,OAAOyI,UAAAA;AACX;AACF,KAAA,CAAA;AAEF;;AAEkG,2GAE5FC,iBAAoB,GAAA,IAAA;IACxB,MAAMpG,WAAAA,GAAcC,gBAAiB,CAAA,CAAC+F,KAAUA,GAAAA,KAAAA,CAAMK,SAAS,CAACrG,WAAW,CAACoB,QAAQ,EAAEC,KAAMiF,CAAAA,IAAAA,CAAAA;IAE5F,qBACEzH,GAAA,CAAC0E,KAAKgD,OAAO,EAAA;QAACvG,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAnB,GAACkB,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
@@ -7,9 +7,9 @@ var icons = require('@strapi/icons');
|
|
|
7
7
|
var immer = require('immer');
|
|
8
8
|
var reactIntl = require('react-intl');
|
|
9
9
|
var reactRouterDom = require('react-router-dom');
|
|
10
|
-
var index = require('./index-
|
|
10
|
+
var index = require('./index-BdqtLS-k.js');
|
|
11
11
|
var Theme = require('./Theme-DDlJz91O.js');
|
|
12
|
-
var useAdminRoles = require('./useAdminRoles-
|
|
12
|
+
var useAdminRoles = require('./useAdminRoles-Dy5KXk0R.js');
|
|
13
13
|
var selectors = require('./selectors-Bf-6Fmez.js');
|
|
14
14
|
var admin = require('./admin-udBiOv2o.js');
|
|
15
15
|
require('react-dom/client');
|
|
@@ -392,4 +392,4 @@ const reducer = (state, action)=>immer.produce(state, (draftState)=>{
|
|
|
392
392
|
|
|
393
393
|
exports.ListPage = ListPage;
|
|
394
394
|
exports.ProtectedListPage = ProtectedListPage;
|
|
395
|
-
//# sourceMappingURL=ListPage-
|
|
395
|
+
//# sourceMappingURL=ListPage-C46MNvAQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-CLXy5r60.js","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'children' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n cursor?: string;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n cursor,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n cursor={cursor}\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`13rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`25rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) => {\n if (icon) {\n return (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton {...icon} variant=\"ghost\" />\n </Box>\n );\n }\n\n return null;\n })}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Dialog,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isFetchError } from '../../../../utils/getFetchClient';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (isFetchError(error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n />\n {canRead && (\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <Layouts.Content>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n cursor=\"pointer\"\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n children: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n children: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n children: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </Layouts.Content>\n )}\n <Dialog.Root open={isWarningDeleteAllOpened} onOpenChange={handleToggleModal}>\n <ConfirmDialog onConfirm={handleDeleteData} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["RoleRow","id","name","description","usersCount","icons","rowIndex","canUpdate","cursor","formatMessage","useIntl","editObject","usersCountText","defaultMessage","number","_jsxs","Tr","aria-rowindex","onClick","undefined","_jsx","Td","maxWidth","Typography","ellipsis","textColor","Flex","justifyContent","e","stopPropagation","map","icon","i","Box","paddingLeft","IconButton","variant","label","ListPage","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","$containsi","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","preventDefault","handleClickDuplicate","rowCount","length","colCount","Page","Loading","Main","Title","Layouts","Header","primaryAction","Button","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","target","Content","Table","footer","TFooter","Thead","Th","VisuallyHidden","Tbody","index","children","Duplicate","toString","Pencil","Trash","filter","Boolean","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage-C46MNvAQ.js","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'children' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n cursor?: string;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n cursor,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n cursor={cursor}\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`13rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`25rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) => {\n if (icon) {\n return (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton {...icon} variant=\"ghost\" />\n </Box>\n );\n }\n\n return null;\n })}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Dialog,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isFetchError } from '../../../../utils/getFetchClient';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (isFetchError(error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n />\n {canRead && (\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <Layouts.Content>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n cursor=\"pointer\"\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n children: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n children: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n children: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </Layouts.Content>\n )}\n <Dialog.Root open={isWarningDeleteAllOpened} onOpenChange={handleToggleModal}>\n <ConfirmDialog onConfirm={handleDeleteData} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["RoleRow","id","name","description","usersCount","icons","rowIndex","canUpdate","cursor","formatMessage","useIntl","editObject","usersCountText","defaultMessage","number","_jsxs","Tr","aria-rowindex","onClick","undefined","_jsx","Td","maxWidth","Typography","ellipsis","textColor","Flex","justifyContent","e","stopPropagation","map","icon","i","Box","paddingLeft","IconButton","variant","label","ListPage","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","$containsi","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","preventDefault","handleClickDuplicate","rowCount","length","colCount","Page","Loading","Main","Title","Layouts","Header","primaryAction","Button","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","target","Content","Table","footer","TFooter","Thead","Th","VisuallyHidden","Tbody","index","children","Duplicate","toString","Pencil","Trash","filter","Boolean","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { JSONInput, Modal as Modal$1, Breadcrumbs, Crumb, Flex, Loader, Box, Typography, Grid, Field, Combobox, ComboboxOption, IconButton } from '@strapi/design-system';
|
|
3
3
|
import { Eye } from '@strapi/icons';
|
|
4
4
|
import { useIntl } from 'react-intl';
|
|
5
|
-
import { k as useAdminUsers, u as useField, b as Layouts, s as Filters, T as Table, P as Pagination } from './index-
|
|
5
|
+
import { k as useAdminUsers, u as useField, b as Layouts, s as Filters, T as Table, P as Pagination } from './index-C3BO0YZa.mjs';
|
|
6
6
|
import { a as useNotification, e as useAPIErrorHandler, n as useQueryParams, b as useTypedSelector, P as Page, k as useRBAC } from './Theme-C3oHrQcy.mjs';
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
import { styled } from 'styled-components';
|
|
@@ -607,4 +607,4 @@ const ProtectedListPage = ()=>{
|
|
|
607
607
|
};
|
|
608
608
|
|
|
609
609
|
export { ListPage, ProtectedListPage };
|
|
610
|
-
//# sourceMappingURL=ListPage-
|
|
610
|
+
//# sourceMappingURL=ListPage-CTxfjKUP.mjs.map
|