@strapi/admin 5.30.0 → 5.30.1
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/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +1 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +1 -1
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/Form.js +8 -3
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +8 -3
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +1 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/features/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/services/webhooks.js.map +1 -1
- package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
- package/dist/admin/admin/src/utils/users.js.map +1 -1
- package/dist/admin/admin/src/utils/users.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +14 -1
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/ee.js +1 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +13 -13
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/services/ai.d.ts +6 -3
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
- package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +1 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +7 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +7 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/index.js.map +1 -1
- package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js +10 -0
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/user.mjs +10 -0
- package/dist/server/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/encryption.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/utils/index.js.map +1 -1
- package/dist/server/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/validation/action-provider.js.map +1 -1
- package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/src/controllers/user.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +16 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["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":["ListPage","formatMessage","useIntl","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","canUpdate","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","name","$containsi","undefined","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","e","preventDefault","stopPropagation","usersCount","id","handleClickDuplicate","rowCount","length","colCount","_jsx","Page","Loading","_jsxs","Main","Title","defaultMessage","Layouts","Header","primaryAction","Button","onClick","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","label","target","Content","Table","footer","TFooter","cursor","icon","Thead","Tr","aria-rowindex","Th","Typography","variant","textColor","VisuallyHidden","Tbody","map","index","RoleRow","description","icons","children","Duplicate","toString","Pencil","Trash","filter","Boolean","rowIndex","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAMA,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,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,EAAEC,SAAS,EAAE,EAC7D,GAAGC,OAAQpB,CAAAA,WAAAA,CAAYqB,QAAQ,EAAEC,KAAAA,CAAAA;AAElC,IAAA,MAAM,EAAEA,KAAK,EAAEC,SAASC,YAAY,EAAE,GAAGC,aACvC,CAAA;AAAEC,QAAAA,OAAAA,EAASf,OAAOgB,EAAK,GAAA;YAAEC,IAAM,EAAA;AAAEC,gBAAAA,UAAAA,EAAYlB,MAAMgB;AAAG;SAAMG,GAAAA;KAC5D,EAAA;QACEC,yBAA2B,EAAA,IAAA;AAC3BC,QAAAA,IAAAA,EAAMlB,2BAA2B,CAACI;AACpC,KAAA,CAAA;AAGF,IAAA,MAAMe,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,CAAC,EAAEC,YAAY,EAAE,EAAEC,SAAS,GAAG3B,KAAAA,CAAM4B,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,MAAMX,YAAAA,EAAAA;YAENY,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;AACd,YAAA,IAAIC,aAAaD,KAAQ,CAAA,EAAA;gBACvBxC,kBAAmB,CAAA;oBACjBsC,IAAM,EAAA,QAAA;AACNI,oBAAAA,OAAAA,EAAS5C,cAAe0C,CAAAA,KAAAA;AAC1B,iBAAA,CAAA;AACF;AACF;AACF,KAAA;IAEA,MAAMG,kBAAAA,GAAqB,IAAMf,QAAS,CAAA,KAAA,CAAA;AAE1C,IAAA,MAAMgB,iBAAoB,GAAA,IAAMzC,4BAA6B,CAAA,CAAC0C,OAAS,CAACA,IAAAA,CAAAA;IAExE,MAAMC,iBAAAA,GAAoB,CAACC,IAAAA,GAAoB,CAACC,CAAAA,GAAAA;AAC9CA,YAAAA,CAAAA,CAAEC,cAAc,EAAA;AAChBD,YAAAA,CAAAA,CAAEE,eAAe,EAAA;YAEjB,IAAIH,IAAAA,CAAKI,UAAU,EAAE;gBACnBnD,kBAAmB,CAAA;oBACjBsC,IAAM,EAAA,MAAA;AACNI,oBAAAA,OAAAA,EAASjD,aAAc,CAAA;wBAAE2D,EAAI,EAAA;AAAiD,qBAAA;AAChF,iBAAA,CAAA;aACK,MAAA;gBACLrB,QAAS,CAAA;oBACPO,IAAM,EAAA,oBAAA;AACNc,oBAAAA,EAAAA,EAAIL,KAAKK;AACX,iBAAA,CAAA;AAEAR,gBAAAA,iBAAAA,EAAAA;AACF;AACF,SAAA;IAEA,MAAMS,oBAAAA,GAAuB,CAACN,IAAAA,GAAoB,CAACC,CAAAA,GAAAA;AACjDA,YAAAA,CAAAA,CAAEC,cAAc,EAAA;AAChBD,YAAAA,CAAAA,CAAEE,eAAe,EAAA;AAEjBtB,YAAAA,QAAAA,CAAS,CAAC,UAAU,EAAEmB,IAAKK,CAAAA,EAAE,CAAC,CAAC,CAAA;AACjC,SAAA;IAEA,MAAME,QAAAA,GAAWrC,KAAMsC,CAAAA,MAAM,GAAG,CAAA;AAChC,IAAA,MAAMC,QAAW,GAAA,CAAA;AAEjB,IAAA,IAAI/C,uBAAyB,EAAA;QAC3B,qBAAOgD,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,qBACEC,IAAA,CAACF,KAAKG,IAAI,EAAA;;AACR,0BAAAJ,GAAA,CAACC,KAAKI,KAAK,EAAA;0BACRrE,aACC,CAAA;oBAAE2D,EAAI,EAAA,oBAAA;oBAAsBW,cAAgB,EAAA;iBAC5C,EAAA;oBACExC,IAAM,EAAA;AACR,iBAAA;;AAGJ,0BAAAkC,GAAA,CAACO,QAAQC,MAAM,EAAA;AACbC,gBAAAA,aAAAA,EACEvD,0BACE8C,GAACU,CAAAA,MAAAA,EAAAA;oBAAOC,OAASzB,EAAAA,kBAAAA;AAAoB0B,oBAAAA,SAAAA,gBAAWZ,GAACa,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,IAAK,EAAA,GAAA;8BAC5D9E,aAAc,CAAA;wBACb2D,EAAI,EAAA,gCAAA;wBACJW,cAAgB,EAAA;AAClB,qBAAA;AAEA,iBAAA,CAAA,GAAA,IAAA;AAENS,gBAAAA,KAAAA,EAAO/E,aAAc,CAAA;oBACnB2D,EAAI,EAAA,cAAA;oBACJW,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACAU,gBAAAA,QAAAA,EAAUhF,aAAc,CAAA;oBACtB2D,EAAI,EAAA,iCAAA;oBACJW,cAAgB,EAAA;AAClB,iBAAA;;YAEDlD,OACC,kBAAA4C,GAAA,CAACO,QAAQU,MAAM,EAAA;AACbC,gBAAAA,YAAAA,gBACElB,GAACmB,CAAAA,WAAAA,EAAAA;AACCC,oBAAAA,KAAAA,EAAOpF,aACL,CAAA;wBAAE2D,EAAI,EAAA,4BAAA;wBAA8BW,cAAgB,EAAA;qBACpD,EAAA;AACEe,wBAAAA,MAAAA,EAAQrF,aAAc,CAAA;4BACpB2D,EAAI,EAAA,cAAA;4BACJW,cAAgB,EAAA;AAClB,yBAAA;AACF,qBAAA;;;YAMTlD,OACC,kBAAA4C,GAAA,CAACO,QAAQe,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAnB,IAACoB,CAAAA,KAAAA,EAAAA;oBACCxB,QAAUA,EAAAA,QAAAA;oBACVF,QAAUA,EAAAA,QAAAA;AACV2B,oBAAAA,MAAAA,EACEtE,0BACE8C,GAACyB,CAAAA,OAAAA,EAAAA;wBAAQC,MAAO,EAAA,SAAA;wBAAUf,OAASzB,EAAAA,kBAAAA;AAAoByC,wBAAAA,IAAAA,gBAAM3B,GAACa,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;kCAC3D7E,aAAc,CAAA;4BACb2D,EAAI,EAAA,gCAAA;4BACJW,cAAgB,EAAA;AAClB,yBAAA;AAEA,qBAAA,CAAA,GAAA,IAAA;;sCAGNN,GAAC4B,CAAAA,KAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAzB,IAAC0B,CAAAA,EAAAA,EAAAA;gCAAGC,eAAe,EAAA,CAAA;;kDACjB9B,GAAC+B,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,UAAAA,EAAAA;4CAAWC,OAAQ,EAAA,OAAA;4CAAQC,SAAU,EAAA,YAAA;sDACnClG,aAAc,CAAA;gDACb2D,EAAI,EAAA,aAAA;gDACJW,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJN,GAAC+B,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,UAAAA,EAAAA;4CAAWC,OAAQ,EAAA,OAAA;4CAAQC,SAAU,EAAA,YAAA;sDACnClG,aAAc,CAAA;gDACb2D,EAAI,EAAA,oBAAA;gDACJW,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJN,GAAC+B,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,UAAAA,EAAAA;4CAAWC,OAAQ,EAAA,OAAA;4CAAQC,SAAU,EAAA,YAAA;sDACnClG,aAAc,CAAA;gDACb2D,EAAI,EAAA,cAAA;gDACJW,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJN,GAAC+B,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACmC,CAAAA,cAAAA,EAAAA;sDACEnG,aAAc,CAAA;gDACb2D,EAAI,EAAA,gBAAA;gDACJW,cAAgB,EAAA;AAClB,6CAAA;;;;;;sCAKRN,GAACoC,CAAAA,KAAAA,EAAAA;AACE5E,4BAAAA,QAAAA,EAAAA,KAAAA,EAAO6E,GAAI,CAAA,CAAC/C,IAAMgD,EAAAA,KAAAA,iBACjBtC,GAACuC,CAAAA,OAAAA,EAAAA;oCACCb,MAAO,EAAA,SAAA;AAEP/B,oCAAAA,EAAAA,EAAIL,KAAKK,EAAE;AACX7B,oCAAAA,IAAAA,EAAMwB,KAAKxB,IAAI;AACf0E,oCAAAA,WAAAA,EAAalD,KAAKkD,WAAW;AAC7B9C,oCAAAA,UAAAA,EAAYJ,KAAKI,UAAU;oCAC3B+C,KACE,EAAA;wCACEvF,SACG,IAAA;AACCyD,4CAAAA,OAAAA,EAASf,oBAAqBN,CAAAA,IAAAA,CAAAA;AAC9B8B,4CAAAA,KAAAA,EAAOpF,aAAc,CAAA;gDACnB2D,EAAI,EAAA,qBAAA;gDACJW,cAAgB,EAAA;AAClB,6CAAA,CAAA;AACAoC,4CAAAA,QAAAA,gBAAU1C,GAAC2C,CAAAA,SAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFtF,SACG,IAAA;AACCsD,4CAAAA,OAAAA,EAAS,IAAMxC,QAAAA,CAASmB,IAAKK,CAAAA,EAAE,CAACiD,QAAQ,EAAA,CAAA;AACxCxB,4CAAAA,KAAAA,EAAOpF,aAAc,CAAA;gDAAE2D,EAAI,EAAA,gBAAA;gDAAkBW,cAAgB,EAAA;AAAO,6CAAA,CAAA;AACpEoC,4CAAAA,QAAAA,gBAAU1C,GAAC6C,CAAAA,MAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACF1F,SACG,IAAA;AACCwD,4CAAAA,OAAAA,EAAStB,iBAAkBC,CAAAA,IAAAA,CAAAA;AAC3B8B,4CAAAA,KAAAA,EAAOpF,aAAc,CAAA;gDAAE2D,EAAI,EAAA,eAAA;gDAAiBW,cAAgB,EAAA;AAAS,6CAAA,CAAA;AACrEoC,4CAAAA,QAAAA,gBAAU1C,GAAC8C,CAAAA,KAAAA,EAAAA,EAAAA;AACb;AACH,qCAAA,CAACC,MAAM,CAACC,OAAAA,CAAAA;AAEXC,oCAAAA,QAAAA,EAAUX,KAAQ,GAAA,CAAA;oCAClBjF,SAAWA,EAAAA;AA/BNiC,iCAAAA,EAAAA,IAAAA,CAAKK,EAAE,CAAA;;;;;AAsCxB,0BAAAK,GAAA,CAACkD,OAAOC,IAAI,EAAA;gBAACC,IAAM3G,EAAAA,wBAAAA;gBAA0B4G,YAAclE,EAAAA,iBAAAA;AACzD,gBAAA,QAAA,gBAAAa,GAACsD,CAAAA,aAAAA,EAAAA;oBAAcC,SAAW3E,EAAAA;;;;;AAIlC;AAgBA,MAAMH,YAAe,GAAA;IACnBJ,YAAc,EAAA,IAAA;IACdmF,6BAA+B,EAAA,KAAA;IAC/BC,iBAAmB,EAAA;AACrB,CAAA;AAwBA,MAAMjF,UAAU,CAACkF,KAAAA,EAAcC,MAC7BC,GAAAA,OAAAA,CAAQF,OAAO,CAACG,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAO9E,IAAI;YACjB,KAAK,iBAAA;AAAmB,gBAAA;AACtBgF,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,CAAWxF,YAAY,GAAG,IAAA;AAC1B,oBAAA;AACF;YACA,KAAK,sBAAA;AAAwB,gBAAA;AAC3BwF,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,KAAA;AAC/BI,oBAAAA,UAAAA,CAAWxF,YAAY,GAAG,IAAA;AAC1BwF,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,KAAA;AAC3C,oBAAA;AACF;YACA,KAAK,oBAAA;AAAsB,gBAAA;oBACzBK,UAAWxF,CAAAA,YAAY,GAAGsF,MAAAA,CAAOhE,EAAE;AAEnC,oBAAA;AACF;AACA,YAAA;gBACE,OAAOkE,UAAAA;AACX;AACF,KAAA,CAAA;AAEF;;AAEkG,2GAE5FC,iBAAoB,GAAA,IAAA;IACxB,MAAM5H,WAAAA,GAAcC,gBAAiB,CAAA,CAACuH,KAAUA,GAAAA,KAAAA,CAAMK,SAAS,CAAC7H,WAAW,CAACqB,QAAQ,EAAEC,KAAMwG,CAAAA,IAAAA,CAAAA;IAE5F,qBACEhE,GAAA,CAACC,KAAKgE,OAAO,EAAA;QAAC/H,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAA8D,GAACjE,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
1
|
+
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["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":["ListPage","formatMessage","useIntl","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","canUpdate","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","name","$containsi","undefined","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","e","preventDefault","stopPropagation","usersCount","id","handleClickDuplicate","rowCount","length","colCount","_jsx","Page","Loading","_jsxs","Main","Title","defaultMessage","Layouts","Header","primaryAction","Button","onClick","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","label","target","Content","Table","footer","TFooter","cursor","icon","Thead","Tr","aria-rowindex","Th","Typography","variant","textColor","VisuallyHidden","Tbody","map","index","RoleRow","description","icons","children","Duplicate","toString","Pencil","Trash","filter","Boolean","rowIndex","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":"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"}
|
package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsePropertyMatrix.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n}: CollapsePropertyMatrixProps) => {\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","Box","children","value","required","i","ActionRow","name","isOdd","formatMessage","useIntl","rowToOpen","setRowToOpen","useState","modifiedData","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isActive","recursiveChildren","isCollapsable","length","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","split","checkboxValue","get","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","id","defaultMessage","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","paddingLeft","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","role","title","RowLabel","ellipsis","propertyLabel","paddingBottom","primary200","Typography","div","svg","firstRowWidth","shrink","variant","textColor","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CollapsePropertyMatrix.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n}: CollapsePropertyMatrixProps) => {\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","Box","children","value","required","i","ActionRow","name","isOdd","formatMessage","useIntl","rowToOpen","setRowToOpen","useState","modifiedData","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isActive","recursiveChildren","isCollapsable","length","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","split","checkboxValue","get","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","id","defaultMessage","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","paddingLeft","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","role","title","RowLabel","ellipsis","propertyLabel","paddingBottom","primary200","Typography","div","svg","firstRowWidth","shrink","variant","textColor","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
|
package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsePropertyMatrix.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n}: CollapsePropertyMatrixProps) => {\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","Box","children","value","required","i","ActionRow","name","isOdd","formatMessage","useIntl","rowToOpen","setRowToOpen","useState","modifiedData","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isActive","recursiveChildren","isCollapsable","length","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","split","checkboxValue","get","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","id","defaultMessage","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","paddingLeft","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","role","title","RowLabel","ellipsis","propertyLabel","paddingBottom","primary200","Typography","div","svg","firstRowWidth","shrink","variant","textColor","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CollapsePropertyMatrix.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n}: CollapsePropertyMatrixProps) => {\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","Box","children","value","required","i","ActionRow","name","isOdd","formatMessage","useIntl","rowToOpen","setRowToOpen","useState","modifiedData","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isActive","recursiveChildren","isCollapsable","length","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","split","checkboxValue","get","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","id","defaultMessage","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","paddingLeft","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","role","title","RowLabel","ellipsis","propertyLabel","paddingBottom","primary200","Typography","div","svg","firstRowWidth","shrink","variant","textColor","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
|