@strapi/admin 5.44.0 → 5.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/constants.js +49 -0
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs +49 -0
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js +4 -4
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs +4 -4
- package/dist/admin/admin/src/core/apis/router.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/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.js +48 -11
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.mjs +49 -12
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +1 -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 +1 -1
- 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 +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 +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 +21 -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 +21 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +33 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs +14 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/constants.js +182 -151
- package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/constants.mjs +182 -151
- package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js +17 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs +15 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +314 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs +292 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +70 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs +49 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +254 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs +231 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +42 -33
- 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 +43 -34
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +3 -2
- 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 +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +23 -12
- 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 +23 -12
- 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 +124 -35
- 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 +126 -37
- 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 +24 -9
- 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 +24 -9
- 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 +5 -3
- 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 +5 -3
- 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 +171 -36
- 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 +172 -37
- 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 +5 -3
- 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 +5 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +59 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs +40 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js +89 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs +86 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js +35 -9
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs +35 -10
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -3
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -3
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/router.js +4 -4
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +1 -1
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js +85 -2
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs +80 -3
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +16 -1
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +16 -1
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +4 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +4 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +99 -21
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +99 -21
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/src/constants.d.ts +26 -0
- package/dist/admin/src/core/apis/router.d.ts +1 -1
- package/dist/admin/src/features/Tracking.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.d.ts +24 -0
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/constants.d.ts +17 -0
- package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/AdminTokens/CreateView.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.d.ts +13 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/ListView.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +4 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +3 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +5 -0
- package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +8 -7
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.d.ts +27 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/updateValues.d.ts +8 -2
- package/dist/admin/src/services/apiTokens.d.ts +5 -2
- package/dist/admin/src/types/permissions.d.ts +1 -1
- package/dist/server/server/src/bootstrap.js +37 -5
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +37 -5
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/config/admin-actions.js +48 -0
- package/dist/server/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/server/src/config/admin-actions.mjs +48 -0
- package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/server/src/content-types/Permission.js +10 -1
- package/dist/server/server/src/content-types/Permission.js.map +1 -1
- package/dist/server/server/src/content-types/Permission.mjs +10 -1
- package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
- package/dist/server/server/src/content-types/User.js +8 -0
- package/dist/server/server/src/content-types/User.js.map +1 -1
- package/dist/server/server/src/content-types/User.mjs +8 -0
- package/dist/server/server/src/content-types/User.mjs.map +1 -1
- package/dist/server/server/src/content-types/api-token.js +27 -1
- package/dist/server/server/src/content-types/api-token.js.map +1 -1
- package/dist/server/server/src/content-types/api-token.mjs +27 -1
- package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin-token.js +194 -0
- package/dist/server/server/src/controllers/admin-token.js.map +1 -0
- package/dist/server/server/src/controllers/admin-token.mjs +192 -0
- package/dist/server/server/src/controllers/admin-token.mjs.map +1 -0
- package/dist/server/server/src/controllers/api-token.js +48 -47
- package/dist/server/server/src/controllers/api-token.js.map +1 -1
- package/dist/server/server/src/controllers/api-token.mjs +48 -47
- package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js +2 -0
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +2 -0
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js +2 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs +2 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/policies/index.js +2 -0
- package/dist/server/server/src/policies/index.js.map +1 -1
- package/dist/server/server/src/policies/index.mjs +2 -0
- package/dist/server/server/src/policies/index.mjs.map +1 -1
- package/dist/server/server/src/policies/isAdminTokensEnabled.js +16 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.js.map +1 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs +14 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs.map +1 -0
- package/dist/server/server/src/register.js +4 -2
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs +4 -2
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/routes/admin-tokens.js +140 -0
- package/dist/server/server/src/routes/admin-tokens.js.map +1 -0
- package/dist/server/server/src/routes/admin-tokens.mjs +138 -0
- package/dist/server/server/src/routes/admin-tokens.mjs.map +1 -0
- package/dist/server/server/src/routes/index.js +2 -0
- package/dist/server/server/src/routes/index.js.map +1 -1
- package/dist/server/server/src/routes/index.mjs +2 -0
- package/dist/server/server/src/routes/index.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +805 -101
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +800 -101
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/constants.js +2 -0
- package/dist/server/server/src/services/constants.js.map +1 -1
- package/dist/server/server/src/services/constants.mjs +2 -0
- package/dist/server/server/src/services/constants.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/index.js +2 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +3 -2
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +6 -0
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs +6 -0
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +11 -2
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/permission/queries.mjs +12 -3
- package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +3 -0
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +3 -0
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/strategies/admin-token.js +110 -0
- package/dist/server/server/src/strategies/admin-token.js.map +1 -0
- package/dist/server/server/src/strategies/admin-token.mjs +104 -0
- package/dist/server/server/src/strategies/admin-token.mjs.map +1 -0
- package/dist/server/server/src/strategies/api-token-utils.js +56 -0
- package/dist/server/server/src/strategies/api-token-utils.js.map +1 -0
- package/dist/server/server/src/strategies/api-token-utils.mjs +52 -0
- package/dist/server/server/src/strategies/api-token-utils.mjs.map +1 -0
- package/dist/server/server/src/strategies/content-api-token.js +104 -0
- package/dist/server/server/src/strategies/content-api-token.js.map +1 -0
- package/dist/server/server/src/strategies/content-api-token.mjs +98 -0
- package/dist/server/server/src/strategies/content-api-token.mjs.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.js +28 -0
- package/dist/server/server/src/validation/admin-tokens.js.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.mjs +25 -0
- package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -0
- package/dist/server/server/src/validation/api-tokens.js +5 -2
- package/dist/server/server/src/validation/api-tokens.js.map +1 -1
- package/dist/server/server/src/validation/api-tokens.mjs +5 -2
- package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/project-settings.js +15 -16
- package/dist/server/server/src/validation/project-settings.js.map +1 -1
- package/dist/server/server/src/validation/project-settings.mjs +4 -5
- package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-actions.d.ts.map +1 -1
- package/dist/server/src/content-types/Permission.d.ts +9 -0
- package/dist/server/src/content-types/Permission.d.ts.map +1 -1
- package/dist/server/src/content-types/User.d.ts +8 -0
- package/dist/server/src/content-types/User.d.ts.map +1 -1
- package/dist/server/src/content-types/api-token.d.ts +23 -0
- package/dist/server/src/content-types/api-token.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +40 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts +12 -0
- package/dist/server/src/controllers/admin-token.d.ts.map +1 -0
- package/dist/server/src/controllers/api-token.d.ts +0 -1
- package/dist/server/src/controllers/api-token.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +9 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +56 -2
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts +5 -0
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts +7 -0
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/admin-tokens.d.ts +15 -0
- package/dist/server/src/routes/admin-tokens.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +136 -12
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +13 -11
- package/dist/server/src/services/constants.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +5 -0
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +1 -0
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +51 -0
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -0
- package/dist/server/src/strategies/api-token-utils.d.ts +13 -0
- package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -0
- package/dist/server/src/strategies/{api-token.d.ts → content-api-token.d.ts} +10 -11
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -0
- package/dist/server/src/strategies/index.d.ts +2 -1
- package/dist/server/src/strategies/index.d.ts.map +1 -1
- package/dist/server/src/validation/admin-tokens.d.ts +75 -0
- package/dist/server/src/validation/admin-tokens.d.ts.map +1 -0
- package/dist/server/src/validation/api-tokens.d.ts +4 -2
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/project-settings.d.ts +10 -10
- package/dist/server/src/validation/project-settings.d.ts.map +1 -1
- package/dist/shared/contracts/admin-token.d.ts +122 -0
- package/dist/shared/contracts/admin-token.d.ts.map +1 -0
- package/dist/shared/contracts/api-token.d.ts +6 -95
- package/dist/shared/contracts/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/content-api-token.d.ts +97 -0
- package/dist/shared/contracts/content-api-token.d.ts.map +1 -0
- package/dist/shared/contracts/shared.d.ts +1 -0
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js +0 -37
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs +0 -16
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +0 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +0 -20
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +0 -17
- package/dist/server/server/src/strategies/api-token.js +0 -144
- package/dist/server/server/src/strategies/api-token.js.map +0 -1
- package/dist/server/server/src/strategies/api-token.mjs +0 -138
- package/dist/server/server/src/strategies/api-token.mjs.map +0 -1
- package/dist/server/src/strategies/api-token.d.ts.map +0 -1
- /package/dist/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.d.ts +0 -0
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' | 'subject'\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 subject,\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 subject={subject}\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' | 'subject'\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 subject,\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 checkUserHasPermission,\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 const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\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 || !userHasPermission}\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 const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\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 || !userHasPermission}\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 subject={subject}\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 subject?: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n subject,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } =\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 const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\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 || !userHasPermission}\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 const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\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 || !userHasPermission}\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 subject={subject}\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","subject","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","checkUserHasPermission","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","fieldPath","undefined","userHasPermission","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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"}
|
|
@@ -30,7 +30,7 @@ function _interopNamespaceDefault(e) {
|
|
|
30
30
|
|
|
31
31
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
32
32
|
|
|
33
|
-
const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled, onClose })=>{
|
|
33
|
+
const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled, isReadOnly = false, onClose })=>{
|
|
34
34
|
const { formatMessage } = reactIntl.useIntl();
|
|
35
35
|
const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager.usePermissionsDataManager();
|
|
36
36
|
const arrayOfOptionsGroupedByCategory = React__namespace.useMemo(()=>{
|
|
@@ -38,21 +38,43 @@ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled,
|
|
|
38
38
|
}, [
|
|
39
39
|
availableConditions
|
|
40
40
|
]);
|
|
41
|
-
const actionsToDisplay = actions.filter(// @ts-expect-error – TODO: fix this type issue
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
const actionsToDisplay = React__namespace.useMemo(()=>actions.filter(// @ts-expect-error – TODO: fix this type issue
|
|
42
|
+
({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected })=>isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)), [
|
|
43
|
+
actions
|
|
44
|
+
]);
|
|
45
|
+
const [state, setState] = React__namespace.useState(()=>createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory));
|
|
46
|
+
React__namespace.useEffect(()=>{
|
|
47
|
+
if (isReadOnly === false) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
setState(createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory));
|
|
51
|
+
}, [
|
|
52
|
+
isReadOnly,
|
|
53
|
+
actionsToDisplay,
|
|
54
|
+
modifiedData,
|
|
55
|
+
arrayOfOptionsGroupedByCategory
|
|
56
|
+
]);
|
|
57
|
+
const handleChange = React__namespace.useCallback((name, values)=>{
|
|
58
|
+
if (isReadOnly === true) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
45
61
|
setState(immer.produce((draft)=>{
|
|
46
|
-
if (
|
|
62
|
+
if (draft[name] === undefined) {
|
|
47
63
|
draft[name] = {};
|
|
48
64
|
}
|
|
49
|
-
if (
|
|
65
|
+
if (draft[name].default === undefined) {
|
|
50
66
|
draft[name].default = {};
|
|
51
67
|
}
|
|
52
68
|
draft[name].default = values;
|
|
53
69
|
}));
|
|
54
|
-
}
|
|
55
|
-
|
|
70
|
+
}, [
|
|
71
|
+
isReadOnly
|
|
72
|
+
]);
|
|
73
|
+
const handleSubmit = React__namespace.useCallback(()=>{
|
|
74
|
+
if (isReadOnly === true) {
|
|
75
|
+
onClose?.();
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
56
78
|
const conditionsWithoutCategory = Object.entries(state).reduce((acc, current)=>{
|
|
57
79
|
const [key, value] = current;
|
|
58
80
|
const merged = Object.values(value).reduce((acc1, current1)=>{
|
|
@@ -65,12 +87,22 @@ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled,
|
|
|
65
87
|
return acc;
|
|
66
88
|
}, {});
|
|
67
89
|
onChangeConditions(conditionsWithoutCategory);
|
|
68
|
-
onClose
|
|
69
|
-
}
|
|
70
|
-
|
|
90
|
+
onClose?.();
|
|
91
|
+
}, [
|
|
92
|
+
isReadOnly,
|
|
93
|
+
state,
|
|
94
|
+
onChangeConditions,
|
|
95
|
+
onClose
|
|
96
|
+
]);
|
|
97
|
+
const onCloseModal = React__namespace.useCallback(()=>{
|
|
71
98
|
setState(createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory));
|
|
72
|
-
onClose
|
|
73
|
-
}
|
|
99
|
+
onClose?.();
|
|
100
|
+
}, [
|
|
101
|
+
actionsToDisplay,
|
|
102
|
+
modifiedData,
|
|
103
|
+
arrayOfOptionsGroupedByCategory,
|
|
104
|
+
onClose
|
|
105
|
+
]);
|
|
74
106
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Content, {
|
|
75
107
|
children: [
|
|
76
108
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
|
|
@@ -88,6 +120,16 @@ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled,
|
|
|
88
120
|
}),
|
|
89
121
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Body, {
|
|
90
122
|
children: [
|
|
123
|
+
isReadOnly && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
124
|
+
paddingBottom: 4,
|
|
125
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
126
|
+
textColor: "neutral600",
|
|
127
|
+
children: formatMessage({
|
|
128
|
+
id: 'Settings.permissions.conditions.inherited-readonly',
|
|
129
|
+
defaultMessage: 'These conditions are inherited from your permissions and are read-only.'
|
|
130
|
+
})
|
|
131
|
+
})
|
|
132
|
+
}),
|
|
91
133
|
actionsToDisplay.length === 0 && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
92
134
|
children: formatMessage({
|
|
93
135
|
id: 'Settings.permissions.conditions.no-actions',
|
|
@@ -100,7 +142,8 @@ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled,
|
|
|
100
142
|
return /*#__PURE__*/ jsxRuntime.jsx(ActionRow, {
|
|
101
143
|
arrayOfOptionsGroupedByCategory: arrayOfOptionsGroupedByCategory,
|
|
102
144
|
label: label,
|
|
103
|
-
isFormDisabled: isFormDisabled,
|
|
145
|
+
isFormDisabled: isFormDisabled || isReadOnly,
|
|
146
|
+
isReadOnly: isReadOnly,
|
|
104
147
|
isGrey: index % 2 === 0,
|
|
105
148
|
name: name,
|
|
106
149
|
onChange: handleChange,
|
|
@@ -110,24 +153,33 @@ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled,
|
|
|
110
153
|
})
|
|
111
154
|
]
|
|
112
155
|
}),
|
|
113
|
-
/*#__PURE__*/ jsxRuntime.
|
|
114
|
-
children:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
defaultMessage: 'Cancel'
|
|
121
|
-
})
|
|
122
|
-
}),
|
|
123
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
124
|
-
onClick: handleSubmit,
|
|
125
|
-
children: formatMessage({
|
|
126
|
-
id: 'Settings.permissions.conditions.apply',
|
|
127
|
-
defaultMessage: 'Apply'
|
|
128
|
-
})
|
|
156
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Footer, {
|
|
157
|
+
children: isReadOnly ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
158
|
+
variant: "tertiary",
|
|
159
|
+
onClick: ()=>onCloseModal(),
|
|
160
|
+
children: formatMessage({
|
|
161
|
+
id: 'app.components.Button.close',
|
|
162
|
+
defaultMessage: 'Close'
|
|
129
163
|
})
|
|
130
|
-
|
|
164
|
+
}) : /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
165
|
+
children: [
|
|
166
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
167
|
+
variant: "tertiary",
|
|
168
|
+
onClick: ()=>onCloseModal(),
|
|
169
|
+
children: formatMessage({
|
|
170
|
+
id: 'app.components.Button.cancel',
|
|
171
|
+
defaultMessage: 'Cancel'
|
|
172
|
+
})
|
|
173
|
+
}),
|
|
174
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
175
|
+
onClick: handleSubmit,
|
|
176
|
+
children: formatMessage({
|
|
177
|
+
id: 'Settings.permissions.conditions.apply',
|
|
178
|
+
defaultMessage: 'Apply'
|
|
179
|
+
})
|
|
180
|
+
})
|
|
181
|
+
]
|
|
182
|
+
})
|
|
131
183
|
})
|
|
132
184
|
]
|
|
133
185
|
});
|
|
@@ -151,13 +203,14 @@ const createDefaultConditionsForm = (actionsToDisplay, modifiedData, arrayOfOpti
|
|
|
151
203
|
return acc;
|
|
152
204
|
}, {});
|
|
153
205
|
};
|
|
154
|
-
const ActionRow = ({ arrayOfOptionsGroupedByCategory, isFormDisabled = false, isGrey = false, label, name, onChange, value })=>{
|
|
206
|
+
const ActionRow = ({ arrayOfOptionsGroupedByCategory, isFormDisabled = false, isGrey = false, isReadOnly = false, label, name, onChange, value })=>{
|
|
155
207
|
const { formatMessage } = reactIntl.useIntl();
|
|
156
208
|
const handleChange = (val)=>{
|
|
157
209
|
if (onChange) {
|
|
158
210
|
onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));
|
|
159
211
|
}
|
|
160
212
|
};
|
|
213
|
+
const selectedValues = getSelectedValues(value);
|
|
161
214
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
162
215
|
tag: "li",
|
|
163
216
|
background: isGrey ? 'neutral100' : 'neutral0',
|
|
@@ -209,11 +262,47 @@ const ActionRow = ({ arrayOfOptionsGroupedByCategory, isFormDisabled = false, is
|
|
|
209
262
|
maxWidth: 430,
|
|
210
263
|
width: '100%'
|
|
211
264
|
},
|
|
212
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.
|
|
265
|
+
children: isReadOnly ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
266
|
+
direction: "column",
|
|
267
|
+
alignItems: "flex-start",
|
|
268
|
+
gap: 3,
|
|
269
|
+
children: selectedValues.length === 0 ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
270
|
+
textColor: "neutral600",
|
|
271
|
+
children: formatMessage({
|
|
272
|
+
id: 'Settings.permissions.conditions.none-applied',
|
|
273
|
+
defaultMessage: 'No conditions applied.'
|
|
274
|
+
})
|
|
275
|
+
}) : arrayOfOptionsGroupedByCategory.map(([categoryName, conditions])=>{
|
|
276
|
+
const selectedConditions = conditions.filter((c)=>selectedValues.includes(c.id));
|
|
277
|
+
if (selectedConditions.length === 0) {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
281
|
+
direction: "column",
|
|
282
|
+
alignItems: "flex-start",
|
|
283
|
+
gap: 2,
|
|
284
|
+
children: [
|
|
285
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
286
|
+
variant: "pi",
|
|
287
|
+
fontWeight: "bold",
|
|
288
|
+
textColor: "neutral600",
|
|
289
|
+
children: categoryName
|
|
290
|
+
}),
|
|
291
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
292
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
293
|
+
variant: "omega",
|
|
294
|
+
textColor: "neutral800",
|
|
295
|
+
children: selectedConditions.map((condition)=>condition.displayName).join(', ')
|
|
296
|
+
})
|
|
297
|
+
})
|
|
298
|
+
]
|
|
299
|
+
}, categoryName);
|
|
300
|
+
}).filter(Boolean)
|
|
301
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.MultiSelectNested, {
|
|
213
302
|
id: name,
|
|
214
303
|
customizeContent: (values = [])=>`${values.length} currently selected`,
|
|
215
304
|
onChange: handleChange,
|
|
216
|
-
value:
|
|
305
|
+
value: selectedValues,
|
|
217
306
|
options: getNestedOptions(arrayOfOptionsGroupedByCategory),
|
|
218
307
|
disabled: isFormDisabled
|
|
219
308
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionsModal.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n );\n\n const [state, setState] = React.useState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n const handleChange = (name: string, values: ConditionForm) => {\n setState(\n produce((draft) => {\n if (!draft[name]) {\n draft[name] = {};\n }\n\n if (!draft[name].default) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n };\n\n const handleSubmit = () => {\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose && onClose();\n };\n\n const onCloseModal = () => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose && onClose();\n };\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n \n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n \n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={getSelectedValues(value)}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n"],"names":["ConditionsModal","actions","headerBreadCrumbs","isFormDisabled","onClose","formatMessage","useIntl","availableConditions","modifiedData","onChangeConditions","usePermissionsDataManager","arrayOfOptionsGroupedByCategory","React","useMemo","Object","entries","groupBy","actionsToDisplay","filter","isDisplayed","hasSomeActionsSelected","hasAllActionsSelected","Boolean","state","setState","useState","createDefaultConditionsForm","handleChange","name","values","produce","draft","default","handleSubmit","conditionsWithoutCategory","reduce","acc","current","key","value","merged","acc1","current1","onCloseModal","_jsxs","Modal","Content","_jsx","Header","Breadcrumbs","id","label","join","map","index","arr","Crumb","isCurrent","length","upperFirst","defaultMessage","Body","Typography","ul","actionId","pathToConditionsObject","ActionRow","isGrey","onChange","get","Footer","Button","variant","onClick","valueFromModifiedData","categoryDefaultForm","categoryName","relatedConditions","conditionsForm","val","getNewStateFromChangedValues","Flex","tag","background","paddingBottom","paddingTop","justifyContent","style","width","textColor","title","ellipsis","toLowerCase","Box","maxWidth","MultiSelectNested","customizeContent","getSelectedValues","options","getNestedOptions","disabled","rawValue","x","flat","children","push","capitalise","child","displayName","changedValues","curr","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConditionsModal.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n isReadOnly?: boolean;\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n isReadOnly = false,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = React.useMemo(\n () =>\n actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n ),\n [actions]\n );\n\n const [state, setState] = React.useState(() =>\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n React.useEffect(() => {\n if (isReadOnly === false) {\n return;\n }\n\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n }, [isReadOnly, actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory]);\n\n const handleChange = React.useCallback(\n (name: string, values: ConditionForm) => {\n if (isReadOnly === true) {\n return;\n }\n\n setState(\n produce((draft) => {\n if (draft[name] === undefined) {\n draft[name] = {};\n }\n\n if (draft[name].default === undefined) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n },\n [isReadOnly]\n );\n\n const handleSubmit = React.useCallback(() => {\n if (isReadOnly === true) {\n onClose?.();\n return;\n }\n\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose?.();\n }, [isReadOnly, state, onChangeConditions, onClose]);\n\n const onCloseModal = React.useCallback(() => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose?.();\n }, [actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory, onClose]);\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {isReadOnly && (\n <Box paddingBottom={4}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.inherited-readonly',\n defaultMessage:\n 'These conditions are inherited from your permissions and are read-only.',\n })}\n </Typography>\n </Box>\n )}\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled || isReadOnly}\n isReadOnly={isReadOnly}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n {isReadOnly ? (\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.close', defaultMessage: 'Close' })}\n </Button>\n ) : (\n <>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </>\n )}\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n isReadOnly?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n isReadOnly = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n const selectedValues = getSelectedValues(value);\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n \n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n \n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n {isReadOnly ? (\n <Flex direction=\"column\" alignItems=\"flex-start\" gap={3}>\n {selectedValues.length === 0 ? (\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.none-applied',\n defaultMessage: 'No conditions applied.',\n })}\n </Typography>\n ) : (\n arrayOfOptionsGroupedByCategory\n .map(([categoryName, conditions]) => {\n const selectedConditions = conditions.filter((c) =>\n selectedValues.includes(c.id)\n );\n\n if (selectedConditions.length === 0) {\n return null;\n }\n\n return (\n <Flex key={categoryName} direction=\"column\" alignItems=\"flex-start\" gap={2}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral600\">\n {categoryName}\n </Typography>\n <Box>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n {selectedConditions.map((condition) => condition.displayName).join(', ')}\n </Typography>\n </Box>\n </Flex>\n );\n })\n .filter(Boolean)\n )}\n </Flex>\n ) : (\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={selectedValues}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n )}\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n"],"names":["ConditionsModal","actions","headerBreadCrumbs","isFormDisabled","isReadOnly","onClose","formatMessage","useIntl","availableConditions","modifiedData","onChangeConditions","usePermissionsDataManager","arrayOfOptionsGroupedByCategory","React","useMemo","Object","entries","groupBy","actionsToDisplay","filter","isDisplayed","hasSomeActionsSelected","hasAllActionsSelected","Boolean","state","setState","useState","createDefaultConditionsForm","useEffect","handleChange","useCallback","name","values","produce","draft","undefined","default","handleSubmit","conditionsWithoutCategory","reduce","acc","current","key","value","merged","acc1","current1","onCloseModal","_jsxs","Modal","Content","_jsx","Header","Breadcrumbs","id","label","join","map","index","arr","Crumb","isCurrent","length","upperFirst","defaultMessage","Body","Box","paddingBottom","Typography","textColor","ul","actionId","pathToConditionsObject","ActionRow","isGrey","onChange","get","Footer","Button","variant","onClick","_Fragment","valueFromModifiedData","categoryDefaultForm","categoryName","relatedConditions","conditionsForm","val","getNewStateFromChangedValues","selectedValues","getSelectedValues","Flex","tag","background","paddingTop","justifyContent","style","width","title","ellipsis","toLowerCase","maxWidth","direction","alignItems","gap","conditions","selectedConditions","c","includes","fontWeight","condition","displayName","MultiSelectNested","customizeContent","options","getNestedOptions","disabled","rawValue","x","flat","children","push","capitalise","child","changedValues","curr"],"mappings":"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"}
|