@strapi/admin 4.15.5-alpha.0 → 4.15.5-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{AuthenticatedApp-f7762ffc.js → AuthenticatedApp-4b160235.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-f7762ffc.js.map → AuthenticatedApp-4b160235.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-cdd2864d.mjs → AuthenticatedApp-fa931d1d.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-cdd2864d.mjs.map → AuthenticatedApp-fa931d1d.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-b8295a09.mjs → HomePage-8e98be60.mjs} +4 -4
- package/dist/_chunks/{HomePage-b8295a09.mjs.map → HomePage-8e98be60.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-b616b5dd.mjs → HomePage-9bda39b5.mjs} +4 -4
- package/dist/_chunks/{HomePage-b616b5dd.mjs.map → HomePage-9bda39b5.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-1d4bec73.js → HomePage-b6967648.js} +4 -4
- package/dist/_chunks/{HomePage-1d4bec73.js.map → HomePage-b6967648.js.map} +1 -1
- package/dist/_chunks/{HomePage-71ca4441.js → HomePage-b91d1592.js} +4 -4
- package/dist/_chunks/{HomePage-71ca4441.js.map → HomePage-b91d1592.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-38e390ab.js → InstalledPluginsPage-d4b90e9c.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-38e390ab.js.map → InstalledPluginsPage-d4b90e9c.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-b5010373.mjs → InstalledPluginsPage-ee6d69b0.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-b5010373.mjs.map → InstalledPluginsPage-ee6d69b0.mjs.map} +1 -1
- package/dist/_chunks/{Login-37c8f863.mjs → Login-4fc5dcbb.mjs} +2 -2
- package/dist/_chunks/{Login-37c8f863.mjs.map → Login-4fc5dcbb.mjs.map} +1 -1
- package/dist/_chunks/{Login-6400aa3b.js → Login-5fbf37c3.js} +2 -2
- package/dist/_chunks/{Login-6400aa3b.js.map → Login-5fbf37c3.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-4c8d674b.mjs → MarketplacePage-ec9bf1db.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-4c8d674b.mjs.map → MarketplacePage-ec9bf1db.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-f01cf836.js → MarketplacePage-ff0d02c6.js} +3 -3
- package/dist/_chunks/{MarketplacePage-f01cf836.js.map → MarketplacePage-ff0d02c6.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-a970034d.js → ProfilePage-96a8404e.js} +56 -8
- package/dist/_chunks/ProfilePage-96a8404e.js.map +1 -0
- package/dist/_chunks/{ProfilePage-7c3e5ad6.mjs → ProfilePage-caeace8c.mjs} +56 -8
- package/dist/_chunks/ProfilePage-caeace8c.mjs.map +1 -0
- package/dist/_chunks/{build-0fb2b1db.js → build-b285bccd.js} +2 -2
- package/dist/_chunks/{build-0fb2b1db.js.map → build-b285bccd.js.map} +1 -1
- package/dist/_chunks/{build-0a74f94d.mjs → build-f011d8dc.mjs} +2 -2
- package/dist/_chunks/{build-0a74f94d.mjs.map → build-f011d8dc.mjs.map} +1 -1
- package/dist/_chunks/{constants-8b2ba8d0.mjs → constants-129cf022.mjs} +6 -6
- package/dist/_chunks/{constants-8b2ba8d0.mjs.map → constants-129cf022.mjs.map} +1 -1
- package/dist/_chunks/{constants-91628e1e.js → constants-1bd1239d.js} +6 -6
- package/dist/_chunks/{constants-91628e1e.js.map → constants-1bd1239d.js.map} +1 -1
- package/dist/_chunks/{constants-8523a9f7.mjs → constants-39df4f04.mjs} +3 -3
- package/dist/_chunks/{constants-8523a9f7.mjs.map → constants-39df4f04.mjs.map} +1 -1
- package/dist/_chunks/{constants-a7b1c05e.mjs → constants-7bfc7134.mjs} +2 -2
- package/dist/_chunks/{constants-a7b1c05e.mjs.map → constants-7bfc7134.mjs.map} +1 -1
- package/dist/_chunks/{constants-b98f01f7.js → constants-86882708.js} +3 -3
- package/dist/_chunks/{constants-b98f01f7.js.map → constants-86882708.js.map} +1 -1
- package/dist/_chunks/{constants-643fcaf9.js → constants-916debf1.js} +2 -2
- package/dist/_chunks/{constants-643fcaf9.js.map → constants-916debf1.js.map} +1 -1
- package/dist/_chunks/{constants-dfdfded9.js → constants-cd5a4e71.js} +5 -5
- package/dist/_chunks/{constants-dfdfded9.js.map → constants-cd5a4e71.js.map} +1 -1
- package/dist/_chunks/{constants-65707dfb.mjs → constants-ffa23daa.mjs} +5 -5
- package/dist/_chunks/{constants-65707dfb.mjs.map → constants-ffa23daa.mjs.map} +1 -1
- package/dist/_chunks/{develop-5fd15ecf.mjs → develop-3c9f7452.mjs} +2 -2
- package/dist/_chunks/{develop-5fd15ecf.mjs.map → develop-3c9f7452.mjs.map} +1 -1
- package/dist/_chunks/{develop-ec19d09d.js → develop-9765d7ba.js} +2 -2
- package/dist/_chunks/{develop-ec19d09d.js.map → develop-9765d7ba.js.map} +1 -1
- package/dist/_chunks/{index-43b10023.js → index-006ef0ac.js} +3 -3
- package/dist/_chunks/{index-43b10023.js.map → index-006ef0ac.js.map} +1 -1
- package/dist/_chunks/{index-98a58f34.js → index-05001647.js} +8 -8
- package/dist/_chunks/{index-98a58f34.js.map → index-05001647.js.map} +1 -1
- package/dist/_chunks/{index-e78be262.js → index-05ada54b.js} +3 -3
- package/dist/_chunks/{index-e78be262.js.map → index-05ada54b.js.map} +1 -1
- package/dist/_chunks/{index-f1ace542.js → index-05f82f02.js} +3 -3
- package/dist/_chunks/{index-f1ace542.js.map → index-05f82f02.js.map} +1 -1
- package/dist/_chunks/{index-0b745772.js → index-09752dfe.js} +3 -3
- package/dist/_chunks/{index-0b745772.js.map → index-09752dfe.js.map} +1 -1
- package/dist/_chunks/{index-dd6de307.mjs → index-0bd0d840.mjs} +3 -3
- package/dist/_chunks/{index-dd6de307.mjs.map → index-0bd0d840.mjs.map} +1 -1
- package/dist/_chunks/{index-d75d8d15.js → index-0c5f6415.js} +5 -5
- package/dist/_chunks/{index-d75d8d15.js.map → index-0c5f6415.js.map} +1 -1
- package/dist/_chunks/{index-de552d3f.mjs → index-1bf08614.mjs} +3 -3
- package/dist/_chunks/{index-de552d3f.mjs.map → index-1bf08614.mjs.map} +1 -1
- package/dist/_chunks/{index-154451f2.js → index-1eaab33f.js} +4 -4
- package/dist/_chunks/{index-154451f2.js.map → index-1eaab33f.js.map} +1 -1
- package/dist/_chunks/{index-9e6e4c3f.mjs → index-234ed67d.mjs} +3 -3
- package/dist/_chunks/{index-9e6e4c3f.mjs.map → index-234ed67d.mjs.map} +1 -1
- package/dist/_chunks/{index-6431bc24.js → index-2ed87ac8.js} +3 -3
- package/dist/_chunks/{index-6431bc24.js.map → index-2ed87ac8.js.map} +1 -1
- package/dist/_chunks/{index-a2d01aca.mjs → index-326b9481.mjs} +4 -4
- package/dist/_chunks/{index-a2d01aca.mjs.map → index-326b9481.mjs.map} +1 -1
- package/dist/_chunks/{index-3fac3161.mjs → index-332b3702.mjs} +3 -3
- package/dist/_chunks/{index-3fac3161.mjs.map → index-332b3702.mjs.map} +1 -1
- package/dist/_chunks/{index-d9602c22.js → index-3fb94612.js} +4 -4
- package/dist/_chunks/{index-d9602c22.js.map → index-3fb94612.js.map} +1 -1
- package/dist/_chunks/{index-0d895d5c.mjs → index-4343f97f.mjs} +4 -4
- package/dist/_chunks/{index-0d895d5c.mjs.map → index-4343f97f.mjs.map} +1 -1
- package/dist/_chunks/{index-2503ccd8.mjs → index-43e86c36.mjs} +5 -5
- package/dist/_chunks/{index-2503ccd8.mjs.map → index-43e86c36.mjs.map} +1 -1
- package/dist/_chunks/{index-f90f4c5e.js → index-455d0b3e.js} +5 -5
- package/dist/_chunks/{index-f90f4c5e.js.map → index-455d0b3e.js.map} +1 -1
- package/dist/_chunks/{index-071e584f.js → index-4e8af716.js} +5 -5
- package/dist/_chunks/{index-071e584f.js.map → index-4e8af716.js.map} +1 -1
- package/dist/_chunks/{index-51c81518.js → index-539c5eac.js} +2 -2
- package/dist/_chunks/{index-51c81518.js.map → index-539c5eac.js.map} +1 -1
- package/dist/_chunks/{index-ceae3e82.js → index-54dc318d.js} +3 -3
- package/dist/_chunks/{index-ceae3e82.js.map → index-54dc318d.js.map} +1 -1
- package/dist/_chunks/{index-a5248bde.mjs → index-55a46be8.mjs} +3 -3
- package/dist/_chunks/{index-a5248bde.mjs.map → index-55a46be8.mjs.map} +1 -1
- package/dist/_chunks/{index-c1f8110c.js → index-55d6d65a.js} +3 -3
- package/dist/_chunks/{index-c1f8110c.js.map → index-55d6d65a.js.map} +1 -1
- package/dist/_chunks/{index-e8ddad38.mjs → index-57ae9065.mjs} +3 -3
- package/dist/_chunks/{index-e8ddad38.mjs.map → index-57ae9065.mjs.map} +1 -1
- package/dist/_chunks/{index-2772208e.js → index-62b7bdbe.js} +10 -9
- package/dist/_chunks/index-62b7bdbe.js.map +1 -0
- package/dist/_chunks/{index-330bae16.js → index-653e1ab3.js} +2 -2
- package/dist/_chunks/{index-330bae16.js.map → index-653e1ab3.js.map} +1 -1
- package/dist/_chunks/{index-6d864827.mjs → index-6861cd84.mjs} +3 -3
- package/dist/_chunks/{index-6d864827.mjs.map → index-6861cd84.mjs.map} +1 -1
- package/dist/_chunks/{index-db4e548d.js → index-6bfd0b33.js} +3 -3
- package/dist/_chunks/{index-db4e548d.js.map → index-6bfd0b33.js.map} +1 -1
- package/dist/_chunks/{index-0767a707.js → index-7028ad70.js} +4 -4
- package/dist/_chunks/{index-0767a707.js.map → index-7028ad70.js.map} +1 -1
- package/dist/_chunks/{index-30805cdb.js → index-706ae836.js} +4 -4
- package/dist/_chunks/{index-30805cdb.js.map → index-706ae836.js.map} +1 -1
- package/dist/_chunks/{index-d02782dc.mjs → index-77124563.mjs} +5 -5
- package/dist/_chunks/{index-d02782dc.mjs.map → index-77124563.mjs.map} +1 -1
- package/dist/_chunks/{index-c38703f5.mjs → index-782c0685.mjs} +2 -2
- package/dist/_chunks/{index-c38703f5.mjs.map → index-782c0685.mjs.map} +1 -1
- package/dist/_chunks/{index-98907333.js → index-7a956856.js} +4 -4
- package/dist/_chunks/{index-98907333.js.map → index-7a956856.js.map} +1 -1
- package/dist/_chunks/{index-0f8c5c53.js → index-7c0dcf2b.js} +4 -4
- package/dist/_chunks/{index-0f8c5c53.js.map → index-7c0dcf2b.js.map} +1 -1
- package/dist/_chunks/{index-cf1f4293.js → index-82f22c48.js} +3 -3
- package/dist/_chunks/{index-cf1f4293.js.map → index-82f22c48.js.map} +1 -1
- package/dist/_chunks/{index-d1583f5b.mjs → index-853bad50.mjs} +5 -5
- package/dist/_chunks/{index-d1583f5b.mjs.map → index-853bad50.mjs.map} +1 -1
- package/dist/_chunks/{index-e364920e.mjs → index-891d1527.mjs} +4 -4
- package/dist/_chunks/{index-e364920e.mjs.map → index-891d1527.mjs.map} +1 -1
- package/dist/_chunks/{index-83592788.js → index-8acbbabe.js} +6 -6
- package/dist/_chunks/{index-83592788.js.map → index-8acbbabe.js.map} +1 -1
- package/dist/_chunks/{index-7f99a8c0.mjs → index-8d895e56.mjs} +3 -3
- package/dist/_chunks/{index-7f99a8c0.mjs.map → index-8d895e56.mjs.map} +1 -1
- package/dist/_chunks/{index-854f0f9f.js → index-96af3a65.js} +5 -5
- package/dist/_chunks/{index-854f0f9f.js.map → index-96af3a65.js.map} +1 -1
- package/dist/_chunks/{index-3c50082a.mjs → index-9b3ff96c.mjs} +20 -20
- package/dist/_chunks/{index-3c50082a.mjs.map → index-9b3ff96c.mjs.map} +1 -1
- package/dist/_chunks/{index-f8139fa9.js → index-9c88e73f.js} +5 -5
- package/dist/_chunks/{index-f8139fa9.js.map → index-9c88e73f.js.map} +1 -1
- package/dist/_chunks/{index-dec0eba6.mjs → index-a220f0b2.mjs} +4 -4
- package/dist/_chunks/{index-dec0eba6.mjs.map → index-a220f0b2.mjs.map} +1 -1
- package/dist/_chunks/{index-6708aec7.mjs → index-a684490c.mjs} +3 -3
- package/dist/_chunks/{index-6708aec7.mjs.map → index-a684490c.mjs.map} +1 -1
- package/dist/_chunks/{index-aa8d6cd9.mjs → index-b593ff2a.mjs} +4 -4
- package/dist/_chunks/{index-aa8d6cd9.mjs.map → index-b593ff2a.mjs.map} +1 -1
- package/dist/_chunks/{index-22572721.js → index-b6c497e5.js} +20 -20
- package/dist/_chunks/{index-22572721.js.map → index-b6c497e5.js.map} +1 -1
- package/dist/_chunks/{index-f11d5a06.mjs → index-c075b5a1.mjs} +10 -9
- package/dist/_chunks/index-c075b5a1.mjs.map +1 -0
- package/dist/_chunks/{index-73f7ad03.mjs → index-c184f4d7.mjs} +5 -5
- package/dist/_chunks/{index-73f7ad03.mjs.map → index-c184f4d7.mjs.map} +1 -1
- package/dist/_chunks/{index-7a8208cf.mjs → index-c40ee26a.mjs} +4 -4
- package/dist/_chunks/{index-7a8208cf.mjs.map → index-c40ee26a.mjs.map} +1 -1
- package/dist/_chunks/{index-cdb822dc.mjs → index-cd2af4a0.mjs} +5 -5
- package/dist/_chunks/{index-cdb822dc.mjs.map → index-cd2af4a0.mjs.map} +1 -1
- package/dist/_chunks/{index-26633f85.js → index-cdc1221a.js} +3 -3
- package/dist/_chunks/{index-26633f85.js.map → index-cdc1221a.js.map} +1 -1
- package/dist/_chunks/{index-e1ee4796.js → index-d196ac50.js} +4 -4
- package/dist/_chunks/{index-e1ee4796.js.map → index-d196ac50.js.map} +1 -1
- package/dist/_chunks/{index-089af133.mjs → index-d33c8d9f.mjs} +8 -8
- package/dist/_chunks/{index-089af133.mjs.map → index-d33c8d9f.mjs.map} +1 -1
- package/dist/_chunks/{index-47b49cd4.js → index-d5711ebb.js} +5 -5
- package/dist/_chunks/{index-47b49cd4.js.map → index-d5711ebb.js.map} +1 -1
- package/dist/_chunks/{index-d05d2739.mjs → index-d80de23d.mjs} +3 -3
- package/dist/_chunks/{index-d05d2739.mjs.map → index-d80de23d.mjs.map} +1 -1
- package/dist/_chunks/{index-a422ec17.mjs → index-d9f9de85.mjs} +4 -4
- package/dist/_chunks/{index-a422ec17.mjs.map → index-d9f9de85.mjs.map} +1 -1
- package/dist/_chunks/{index-8a902627.mjs → index-de154c58.mjs} +3 -3
- package/dist/_chunks/{index-8a902627.mjs.map → index-de154c58.mjs.map} +1 -1
- package/dist/_chunks/{index-1f3328ca.mjs → index-df043af5.mjs} +3 -3
- package/dist/_chunks/{index-1f3328ca.mjs.map → index-df043af5.mjs.map} +1 -1
- package/dist/_chunks/{index-86fc0c9c.js → index-dff777b7.js} +3 -3
- package/dist/_chunks/{index-86fc0c9c.js.map → index-dff777b7.js.map} +1 -1
- package/dist/_chunks/{index-33bf61b3.js → index-e013fe86.js} +3 -3
- package/dist/_chunks/{index-33bf61b3.js.map → index-e013fe86.js.map} +1 -1
- package/dist/_chunks/{index-0b0a40c2.mjs → index-e2db7aa8.mjs} +6 -6
- package/dist/_chunks/{index-0b0a40c2.mjs.map → index-e2db7aa8.mjs.map} +1 -1
- package/dist/_chunks/{index-64c904e2.mjs → index-eea1e084.mjs} +3 -3
- package/dist/_chunks/{index-64c904e2.mjs.map → index-eea1e084.mjs.map} +1 -1
- package/dist/_chunks/{index-ee0697f5.mjs → index-f0f40db4.mjs} +5 -5
- package/dist/_chunks/{index-ee0697f5.mjs.map → index-f0f40db4.mjs.map} +1 -1
- package/dist/_chunks/{index-a0f622ec.js → index-f18d27fd.js} +3 -3
- package/dist/_chunks/{index-a0f622ec.js.map → index-f18d27fd.js.map} +1 -1
- package/dist/_chunks/{index-6b9ce159.js → index-f3c67f77.js} +2 -2
- package/dist/_chunks/{index-6b9ce159.js.map → index-f3c67f77.js.map} +1 -1
- package/dist/_chunks/{index-e309a639.mjs → index-f4a061be.mjs} +2 -2
- package/dist/_chunks/{index-e309a639.mjs.map → index-f4a061be.mjs.map} +1 -1
- package/dist/_chunks/{index-ddfb8187.mjs → index-f67d8e8d.mjs} +2 -2
- package/dist/_chunks/{index-ddfb8187.mjs.map → index-f67d8e8d.mjs.map} +1 -1
- package/dist/_chunks/{schema-f1cf6f90.mjs → schema-82ad2cb1.mjs} +2 -2
- package/dist/_chunks/{schema-f1cf6f90.mjs.map → schema-82ad2cb1.mjs.map} +1 -1
- package/dist/_chunks/{schema-c67fdb98.js → schema-8bb5b01b.js} +2 -2
- package/dist/_chunks/{schema-c67fdb98.js.map → schema-8bb5b01b.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-c7605fca.mjs → validateWorkflow-23b1ee38.mjs} +3 -3
- package/dist/_chunks/{validateWorkflow-c7605fca.mjs.map → validateWorkflow-23b1ee38.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-0ae76680.js → validateWorkflow-f5761727.js} +3 -3
- package/dist/_chunks/{validateWorkflow-0ae76680.js.map → validateWorkflow-f5761727.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/shared/contracts/users.d.ts +12 -9
- package/package.json +12 -12
- package/dist/_chunks/ProfilePage-7c3e5ad6.mjs.map +0 -1
- package/dist/_chunks/ProfilePage-a970034d.js.map +0 -1
- package/dist/_chunks/index-2772208e.js.map +0 -1
- package/dist/_chunks/index-f11d5a06.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-e309a639.mjs","sources":["../../admin/src/contexts/apiTokenPermissions.tsx","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/getMethodColor.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/init.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Entity } from '@strapi/types';\n\ninterface PseudoEvent {\n target: { value: string };\n}\n\ninterface ApiTokenPermissionsContextValue {\n selectedAction: string[] | null;\n routes: string[];\n selectedActions: string[];\n data: {\n allActionsIds: Entity.ID[];\n permissions: {\n apiId: string;\n label: string;\n controllers: { controller: string; actions: { actionId: string; action: string } }[];\n }[];\n };\n onChange: ({ target: { value } }: PseudoEvent) => void;\n onChangeSelectAll: ({ target: { value } }: PseudoEvent) => void;\n setSelectedAction: ({ target: { value } }: PseudoEvent) => void;\n}\n\ninterface ApiTokenPermissionsContextProviderProps extends ApiTokenPermissionsContextValue {\n children: React.ReactNode[];\n}\n\nconst [ApiTokenPermissionsContextProvider, useApiTokenPermissionsContext] =\n createContext<ApiTokenPermissionsContextValue>('ApiTokenPermissionsContext');\n\nconst ApiTokenPermissionsProvider = ({\n children,\n ...rest\n}: ApiTokenPermissionsContextProviderProps) => {\n return (\n <ApiTokenPermissionsContextProvider {...rest}>{children}</ApiTokenPermissionsContextProvider>\n );\n};\n\nconst useApiTokenPermissions = () => useApiTokenPermissionsContext('useApiTokenPermissions');\n\nexport { ApiTokenPermissionsProvider, useApiTokenPermissions };\nexport type { ApiTokenPermissionsContextValue, ApiTokenPermissionsContextProviderProps };\n","const transformPermissionsData = (data) => {\n const layout = {\n allActionsIds: [],\n permissions: [],\n };\n\n layout.permissions = Object.keys(data).map((apiId) => ({\n apiId,\n label: apiId.split('::')[1],\n controllers: Object.keys(data[apiId].controllers)\n .map((controller) => ({\n controller,\n actions: data[apiId].controllers[controller]\n .map((action) => {\n const actionId = `${apiId}.${controller}.${action}`;\n\n if (apiId.includes('api::')) {\n layout.allActionsIds.push(actionId);\n }\n\n return {\n action,\n actionId,\n };\n })\n .flat(),\n }))\n .flat(),\n }));\n\n return layout;\n};\n\nexport default transformPermissionsData;\n","import React from 'react';\n\nimport { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport LifeSpanInput from '../../../../../components/Tokens/LifeSpanInput';\nimport TokenDescription from '../../../../../components/Tokens/TokenDescription';\nimport TokenName from '../../../../../components/Tokens/TokenName';\nimport TokenTypeSelect from '../../../../../components/Tokens/TokenTypeSelect';\n\nconst FormApiTokenContainer = ({\n errors,\n onChange,\n canEditInputs,\n isCreating,\n values,\n apiToken,\n onDispatch,\n setHasChangedPermissions,\n}) => {\n const { formatMessage } = useIntl();\n\n const handleChangeSelectApiTokenType = ({ target: { value } }) => {\n setHasChangedPermissions(false);\n\n if (value === 'full-access') {\n onDispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (value === 'read-only') {\n onDispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n };\n\n const typeOptions = [\n {\n value: 'read-only',\n label: {\n id: 'Settings.tokens.types.read-only',\n defaultMessage: 'Read-only',\n },\n },\n {\n value: 'full-access',\n label: {\n id: 'Settings.tokens.types.full-access',\n defaultMessage: 'Full access',\n },\n },\n {\n value: 'custom',\n label: {\n id: 'Settings.tokens.types.custom',\n defaultMessage: 'Custom',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n errors={errors}\n values={values}\n onChange={onChange}\n token={apiToken}\n />\n </GridItem>\n\n <GridItem key=\"type\" col={6} xs={12}>\n <TokenTypeSelect\n values={values}\n errors={errors}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n handleChangeSelectApiTokenType({ target: { value } });\n onChange({ target: { name: 'type', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nFormApiTokenContainer.propTypes = {\n errors: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.string,\n type: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n canEditInputs: PropTypes.bool.isRequired,\n values: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n }).isRequired,\n isCreating: PropTypes.bool.isRequired,\n apiToken: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n lifespan: PropTypes.string,\n name: PropTypes.string,\n accessKey: PropTypes.string,\n permissions: PropTypes.array,\n description: PropTypes.string,\n createdAt: PropTypes.string,\n }),\n onDispatch: PropTypes.func.isRequired,\n setHasChangedPermissions: PropTypes.func.isRequired,\n};\n\nFormApiTokenContainer.defaultProps = {\n errors: {},\n apiToken: {},\n};\n\nexport default FormApiTokenContainer;\n","import React from 'react';\n\nimport { Button, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst LoadingView = ({ apiTokenName }) => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n\n return (\n <Main aria-busy=\"true\">\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n primaryAction={\n <Button disabled startIcon={<Check />} type=\"button\" size=\"L\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={\n apiTokenName ||\n formatMessage({\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n })\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n};\n\nLoadingView.defaultProps = {\n apiTokenName: null,\n};\n\nLoadingView.propTypes = {\n apiTokenName: PropTypes.string,\n};\n\nexport default LoadingView;\n","const getMethodColor = (verb) => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nexport default getMethodColor;\n","import React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport getMethodColor from './getMethodColor';\n\nconst MethodBox = styled(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\nfunction BoundRoute({ route }) {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" as=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n \n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n}\n\nBoundRoute.defaultProps = {\n route: {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n};\n\nBoundRoute.propTypes = {\n route: PropTypes.shape({\n handler: PropTypes.string,\n method: PropTypes.string,\n path: PropTypes.string,\n }),\n};\n\nexport default BoundRoute;\n","import React from 'react';\n\nimport { Flex, GridItem, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../../../../../../../contexts/apiTokenPermissions';\nimport BoundRoute from '../BoundRoute';\n\nconst ActionBoundRoutes = () => {\n const {\n value: { selectedAction, routes },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n const actionSection = selectedAction?.split('.')[0];\n\n return (\n <GridItem\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {routes[actionSection]?.map((route) => {\n return route.config.auth?.scope?.includes(selectedAction) ||\n route.handler === selectedAction ? (\n <BoundRoute key={route.handler} route={route} />\n ) : null;\n })}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" as=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography as=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </GridItem>\n );\n};\n\nexport default ActionBoundRoutes;\n","import { Box } from '@strapi/design-system';\nimport styled, { css } from 'styled-components';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n svg {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled(Box)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nexport default CheckboxWrapper;\n","import React, { useEffect, useState } from 'react';\n\nimport {\n Accordion,\n AccordionContent,\n AccordionToggle,\n Box,\n Checkbox,\n Flex,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useApiTokenPermissions } from '../../../../../../../contexts/apiTokenPermissions';\n\nimport CheckboxWrapper from './CheckBoxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst CollapsableContentType = ({\n controllers,\n label,\n orderNumber,\n disabled,\n onExpanded,\n indexExpandendCollapsedContent,\n}) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const [expanded, setExpanded] = useState(false);\n const { formatMessage } = useIntl();\n\n const handleExpandedAccordion = () => {\n setExpanded((s) => !s);\n onExpanded(orderNumber);\n };\n\n useEffect(() => {\n if (\n indexExpandendCollapsedContent !== null &&\n indexExpandendCollapsedContent !== orderNumber &&\n expanded\n ) {\n setExpanded(false);\n }\n }, [indexExpandendCollapsedContent, orderNumber, expanded]);\n\n const isActionSelected = (actionId) => actionId === selectedAction;\n\n return (\n <Accordion\n expanded={expanded}\n onToggle={handleExpandedAccordion}\n variant={orderNumber % 2 ? 'primary' : 'secondary'}\n >\n <AccordionToggle title={capitalize(label)} />\n <AccordionContent>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n value={allActionsSelected}\n indeterminate={!allActionsSelected && someActionsSelected}\n onValueChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <GridItem col={6} key={action.actionId}>\n <CheckboxWrapper\n isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n value={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onValueChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n {action.action}\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog />\n </button>\n </CheckboxWrapper>\n </GridItem>\n );\n })}\n </Grid>\n </Box>\n );\n })}\n </AccordionContent>\n </Accordion>\n );\n};\n\nCollapsableContentType.defaultProps = {\n controllers: [],\n orderNumber: 0,\n disabled: false,\n onExpanded: () => null,\n indexExpandendCollapsedContent: null,\n};\n\nCollapsableContentType.propTypes = {\n controllers: PropTypes.array,\n orderNumber: PropTypes.number,\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onExpanded: PropTypes.func,\n indexExpandendCollapsedContent: PropTypes.number,\n};\n\nexport default CollapsableContentType;\n","import React, { useState } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\n\nimport CollapsableContentType from '../CollapsableContentType';\n\nconst ContentTypesSection = ({ section, ...props }) => {\n const [indexExpandedCollpsedContent, setIndexExpandedCollpsedContent] = useState(null);\n const handleExpandedCollpsedContentIndex = (index) => setIndexExpandedCollpsedContent(index);\n\n return (\n <Box padding={4} background=\"neutral0\">\n {section &&\n section.map((api, index) => (\n <CollapsableContentType\n key={api.apiId}\n label={api.label}\n controllers={api.controllers}\n orderNumber={index}\n indexExpandendCollapsedContent={indexExpandedCollpsedContent}\n onExpanded={handleExpandedCollpsedContentIndex}\n name={api.apiId}\n {...props}\n />\n ))}\n </Box>\n );\n};\n\nContentTypesSection.defaultProps = {\n section: null,\n};\n\nContentTypesSection.propTypes = {\n section: PropTypes.arrayOf(PropTypes.object),\n};\n\nexport default ContentTypesSection;\n","import React, { memo } from 'react';\n\nimport { Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../../../../../../../contexts/apiTokenPermissions';\nimport ActionBoundRoutes from '../ActionBoundRoutes';\nimport ContentTypesSection from '../ContenTypesSection';\n\nconst Permissions = ({ ...props }) => {\n const {\n value: { data },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n return (\n <Grid gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <GridItem col={7} paddingTop={6} paddingBottom={6} paddingLeft={7} paddingRight={7}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.title',\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography as=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.description',\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n {data?.permissions && <ContentTypesSection section={data?.permissions} {...props} />}\n </GridItem>\n <ActionBoundRoutes />\n </Grid>\n );\n};\n\nexport default memo(Permissions);\n","import { transformPermissionsData } from './utils';\n\nconst init = (state, permissions = []) => {\n return {\n ...state,\n selectedAction: null,\n routes: [],\n selectedActions: [],\n data: transformPermissionsData(permissions),\n };\n};\n\nexport default init;\n","/* eslint-disable consistent-return */\nimport produce from 'immer';\nimport pull from 'lodash/pull';\n\nimport { transformPermissionsData } from './utils';\n\nexport const initialState = {\n data: {},\n selectedActions: [],\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n if (draftState.selectedActions.includes(action.value)) {\n pull(draftState.selectedActions, action.value);\n } else {\n draftState.selectedActions.push(action.value);\n }\n break;\n }\n case 'SELECT_ALL_IN_PERMISSION': {\n const areAllSelected = action.value.every((item) =>\n draftState.selectedActions.includes(item.actionId)\n );\n\n if (areAllSelected) {\n action.value.forEach((item) => {\n pull(draftState.selectedActions, item.actionId);\n });\n } else {\n action.value.forEach((item) => {\n draftState.selectedActions.push(item.actionId);\n });\n }\n break;\n }\n\n case 'SELECT_ALL_ACTIONS': {\n draftState.selectedActions = [...draftState.data.allActionsIds];\n\n break;\n }\n case 'ON_CHANGE_READ_ONLY': {\n const onlyReadOnlyActions = draftState.data.allActionsIds.filter(\n (actionId) => actionId.includes('find') || actionId.includes('findOne')\n );\n draftState.selectedActions = [...onlyReadOnlyActions];\n break;\n }\n case 'UPDATE_PERMISSIONS_LAYOUT': {\n draftState.data = transformPermissionsData(action.value);\n break;\n }\n case 'UPDATE_ROUTES': {\n draftState.routes = { ...action.value };\n break;\n }\n case 'UPDATE_PERMISSIONS': {\n draftState.selectedActions = [...action.value];\n break;\n }\n case 'SET_SELECTED_ACTION': {\n draftState.selectedAction = action.value;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { useEffect, useReducer, useRef, useState } from 'react';\n\nimport { ContentLayout, Flex, Main } from '@strapi/design-system';\nimport {\n Form,\n SettingsPageTitle,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { ApiTokenPermissionsProvider } from '../../../../../contexts/apiTokenPermissions';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport FormHead from '../../../components/Tokens/FormHead';\nimport TokenBox from '../../../components/Tokens/TokenBox';\n\nimport FormApiTokenContainer from './components/FormApiTokenContainer';\nimport LoadingView from './components/LoadingView';\nimport Permissions from './components/Permissions';\nimport init from './init';\nimport reducer, { initialState } from './reducer';\nimport { schema } from './utils';\n\nconst MSG_ERROR_NAME_TAKEN = 'Name already taken';\n\nconst ApiTokenCreateView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const history = useHistory();\n const permissions = useSelector(selectAdminPermissions);\n const [apiToken, setApiToken] = useState(\n history.location.state?.apiToken.accessKey\n ? {\n ...history.location.state.apiToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const trackUsageRef = useRef(trackUsage);\n const { setCurrentStep } = useGuidedTour();\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings['api-tokens']);\n const [state, dispatch] = useReducer(reducer, initialState, (state) => init(state, {}));\n const {\n params: { id },\n } = useRouteMatch('/settings/api-tokens/:id');\n const { get, post, put } = useFetchClient();\n\n const isCreating = id === 'create';\n\n useQuery(\n 'content-api-permissions',\n async () => {\n const [permissions, routes] = await Promise.all(\n ['/admin/content-api/permissions', '/admin/content-api/routes'].map(async (url) => {\n const { data } = await get(url);\n\n return data.data;\n })\n );\n\n dispatch({\n type: 'UPDATE_PERMISSIONS_LAYOUT',\n value: permissions,\n });\n\n dispatch({\n type: 'UPDATE_ROUTES',\n value: routes,\n });\n\n if (apiToken) {\n if (apiToken?.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (apiToken?.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (apiToken?.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: apiToken?.permissions,\n });\n }\n }\n },\n {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n useEffect(() => {\n trackUsageRef.current(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n });\n }, [isCreating]);\n\n const { status } = useQuery(\n ['api-token', id],\n async () => {\n const {\n data: { data },\n } = await get(`/admin/api-tokens/${id}`);\n\n setApiToken({\n ...data,\n });\n\n if (data?.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (data?.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (data?.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: data?.permissions,\n });\n }\n\n return data;\n },\n {\n enabled: !isCreating && !apiToken,\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n trackUsageRef.current(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: API_TOKEN_TYPE,\n });\n lockApp();\n const lifespanVal =\n body.lifespan && parseInt(body.lifespan, 10) && body.lifespan !== '0'\n ? parseInt(body.lifespan, 10)\n : null;\n\n try {\n const {\n data: { data: response },\n } = isCreating\n ? await post(`/admin/api-tokens`, {\n ...body,\n lifespan: lifespanVal,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n })\n : await put(`/admin/api-tokens/${id}`, {\n name: body.name,\n description: body.description,\n type: body.type,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if (isCreating) {\n history.replace(`/settings/api-tokens/${response.id}`, { apiToken: response });\n setCurrentStep('apiTokens.success');\n }\n unlockApp();\n setApiToken({\n ...response,\n });\n\n toggleNotification({\n type: 'success',\n message: isCreating\n ? formatMessage({\n id: 'notification.success.apitokencreated',\n defaultMessage: 'API Token successfully created',\n })\n : formatMessage({\n id: 'notification.success.apitokenedited',\n defaultMessage: 'API Token successfully edited',\n }),\n });\n\n trackUsageRef.current(isCreating ? 'didCreateToken' : 'didEditToken', {\n type: apiToken.type,\n tokenType: API_TOKEN_TYPE,\n });\n } catch (err) {\n const errors = formatAPIErrors(err.response.data);\n actions.setErrors(errors);\n\n if (err?.response?.data?.error?.message === MSG_ERROR_NAME_TAKEN) {\n toggleNotification({\n type: 'warning',\n message: err.response.data.message || 'notification.error.tokennamenotunique',\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: err?.response?.data?.message || 'notification.error',\n });\n }\n unlockApp();\n }\n };\n\n const [hasChangedPermissions, setHasChangedPermissions] = useState(false);\n\n const handleChangeCheckbox = ({ target: { value } }) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'ON_CHANGE',\n value,\n });\n };\n\n const handleChangeSelectAllCheckbox = ({ target: { value } }) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'SELECT_ALL_IN_PERMISSION',\n value,\n });\n };\n\n const setSelectedAction = ({ target: { value } }) => {\n dispatch({\n type: 'SET_SELECTED_ACTION',\n value,\n });\n };\n\n const providerValue = {\n ...state,\n onChange: handleChangeCheckbox,\n onChangeSelectAll: handleChangeSelectAllCheckbox,\n setSelectedAction,\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !apiToken && status !== 'success';\n\n if (isLoading) {\n return <LoadingView apiTokenName={apiToken?.name} />;\n }\n\n return (\n <ApiTokenPermissionsProvider value={providerValue}>\n <Main>\n <SettingsPageTitle name=\"API Tokens\" />\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: apiToken?.type,\n lifespan: apiToken?.lifespan ? apiToken.lifespan.toString() : apiToken?.lifespan,\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values, setFieldValue }) => {\n if (hasChangedPermissions && values?.type !== 'custom') {\n setFieldValue('type', 'custom');\n }\n\n return (\n <Form>\n <FormHead\n backUrl=\"/settings/api-tokens\"\n title={{\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }}\n token={apiToken}\n setToken={setApiToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(apiToken?.name) && (\n <TokenBox token={apiToken?.accessKey} tokenType={API_TOKEN_TYPE} />\n )}\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\n <Permissions\n disabled={\n !canEditInputs ||\n values?.type === 'read-only' ||\n values?.type === 'full-access'\n }\n />\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n </ApiTokenPermissionsProvider>\n );\n};\n\nexport default ApiTokenCreateView;\n"],"names":["state","permissions","Permissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-f4a061be.mjs","sources":["../../admin/src/contexts/apiTokenPermissions.tsx","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/getMethodColor.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/init.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Entity } from '@strapi/types';\n\ninterface PseudoEvent {\n target: { value: string };\n}\n\ninterface ApiTokenPermissionsContextValue {\n selectedAction: string[] | null;\n routes: string[];\n selectedActions: string[];\n data: {\n allActionsIds: Entity.ID[];\n permissions: {\n apiId: string;\n label: string;\n controllers: { controller: string; actions: { actionId: string; action: string } }[];\n }[];\n };\n onChange: ({ target: { value } }: PseudoEvent) => void;\n onChangeSelectAll: ({ target: { value } }: PseudoEvent) => void;\n setSelectedAction: ({ target: { value } }: PseudoEvent) => void;\n}\n\ninterface ApiTokenPermissionsContextProviderProps extends ApiTokenPermissionsContextValue {\n children: React.ReactNode[];\n}\n\nconst [ApiTokenPermissionsContextProvider, useApiTokenPermissionsContext] =\n createContext<ApiTokenPermissionsContextValue>('ApiTokenPermissionsContext');\n\nconst ApiTokenPermissionsProvider = ({\n children,\n ...rest\n}: ApiTokenPermissionsContextProviderProps) => {\n return (\n <ApiTokenPermissionsContextProvider {...rest}>{children}</ApiTokenPermissionsContextProvider>\n );\n};\n\nconst useApiTokenPermissions = () => useApiTokenPermissionsContext('useApiTokenPermissions');\n\nexport { ApiTokenPermissionsProvider, useApiTokenPermissions };\nexport type { ApiTokenPermissionsContextValue, ApiTokenPermissionsContextProviderProps };\n","const transformPermissionsData = (data) => {\n const layout = {\n allActionsIds: [],\n permissions: [],\n };\n\n layout.permissions = Object.keys(data).map((apiId) => ({\n apiId,\n label: apiId.split('::')[1],\n controllers: Object.keys(data[apiId].controllers)\n .map((controller) => ({\n controller,\n actions: data[apiId].controllers[controller]\n .map((action) => {\n const actionId = `${apiId}.${controller}.${action}`;\n\n if (apiId.includes('api::')) {\n layout.allActionsIds.push(actionId);\n }\n\n return {\n action,\n actionId,\n };\n })\n .flat(),\n }))\n .flat(),\n }));\n\n return layout;\n};\n\nexport default transformPermissionsData;\n","import React from 'react';\n\nimport { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport LifeSpanInput from '../../../../../components/Tokens/LifeSpanInput';\nimport TokenDescription from '../../../../../components/Tokens/TokenDescription';\nimport TokenName from '../../../../../components/Tokens/TokenName';\nimport TokenTypeSelect from '../../../../../components/Tokens/TokenTypeSelect';\n\nconst FormApiTokenContainer = ({\n errors,\n onChange,\n canEditInputs,\n isCreating,\n values,\n apiToken,\n onDispatch,\n setHasChangedPermissions,\n}) => {\n const { formatMessage } = useIntl();\n\n const handleChangeSelectApiTokenType = ({ target: { value } }) => {\n setHasChangedPermissions(false);\n\n if (value === 'full-access') {\n onDispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (value === 'read-only') {\n onDispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n };\n\n const typeOptions = [\n {\n value: 'read-only',\n label: {\n id: 'Settings.tokens.types.read-only',\n defaultMessage: 'Read-only',\n },\n },\n {\n value: 'full-access',\n label: {\n id: 'Settings.tokens.types.full-access',\n defaultMessage: 'Full access',\n },\n },\n {\n value: 'custom',\n label: {\n id: 'Settings.tokens.types.custom',\n defaultMessage: 'Custom',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n errors={errors}\n values={values}\n onChange={onChange}\n token={apiToken}\n />\n </GridItem>\n\n <GridItem key=\"type\" col={6} xs={12}>\n <TokenTypeSelect\n values={values}\n errors={errors}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n handleChangeSelectApiTokenType({ target: { value } });\n onChange({ target: { name: 'type', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nFormApiTokenContainer.propTypes = {\n errors: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.string,\n type: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n canEditInputs: PropTypes.bool.isRequired,\n values: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n }).isRequired,\n isCreating: PropTypes.bool.isRequired,\n apiToken: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n lifespan: PropTypes.string,\n name: PropTypes.string,\n accessKey: PropTypes.string,\n permissions: PropTypes.array,\n description: PropTypes.string,\n createdAt: PropTypes.string,\n }),\n onDispatch: PropTypes.func.isRequired,\n setHasChangedPermissions: PropTypes.func.isRequired,\n};\n\nFormApiTokenContainer.defaultProps = {\n errors: {},\n apiToken: {},\n};\n\nexport default FormApiTokenContainer;\n","import React from 'react';\n\nimport { Button, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst LoadingView = ({ apiTokenName }) => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n\n return (\n <Main aria-busy=\"true\">\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n primaryAction={\n <Button disabled startIcon={<Check />} type=\"button\" size=\"L\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={\n apiTokenName ||\n formatMessage({\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n })\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n};\n\nLoadingView.defaultProps = {\n apiTokenName: null,\n};\n\nLoadingView.propTypes = {\n apiTokenName: PropTypes.string,\n};\n\nexport default LoadingView;\n","const getMethodColor = (verb) => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nexport default getMethodColor;\n","import React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport getMethodColor from './getMethodColor';\n\nconst MethodBox = styled(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\nfunction BoundRoute({ route }) {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" as=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n \n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n}\n\nBoundRoute.defaultProps = {\n route: {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n};\n\nBoundRoute.propTypes = {\n route: PropTypes.shape({\n handler: PropTypes.string,\n method: PropTypes.string,\n path: PropTypes.string,\n }),\n};\n\nexport default BoundRoute;\n","import React from 'react';\n\nimport { Flex, GridItem, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../../../../../../../contexts/apiTokenPermissions';\nimport BoundRoute from '../BoundRoute';\n\nconst ActionBoundRoutes = () => {\n const {\n value: { selectedAction, routes },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n const actionSection = selectedAction?.split('.')[0];\n\n return (\n <GridItem\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {routes[actionSection]?.map((route) => {\n return route.config.auth?.scope?.includes(selectedAction) ||\n route.handler === selectedAction ? (\n <BoundRoute key={route.handler} route={route} />\n ) : null;\n })}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" as=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography as=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </GridItem>\n );\n};\n\nexport default ActionBoundRoutes;\n","import { Box } from '@strapi/design-system';\nimport styled, { css } from 'styled-components';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n svg {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled(Box)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nexport default CheckboxWrapper;\n","import React, { useEffect, useState } from 'react';\n\nimport {\n Accordion,\n AccordionContent,\n AccordionToggle,\n Box,\n Checkbox,\n Flex,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useApiTokenPermissions } from '../../../../../../../contexts/apiTokenPermissions';\n\nimport CheckboxWrapper from './CheckBoxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst CollapsableContentType = ({\n controllers,\n label,\n orderNumber,\n disabled,\n onExpanded,\n indexExpandendCollapsedContent,\n}) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const [expanded, setExpanded] = useState(false);\n const { formatMessage } = useIntl();\n\n const handleExpandedAccordion = () => {\n setExpanded((s) => !s);\n onExpanded(orderNumber);\n };\n\n useEffect(() => {\n if (\n indexExpandendCollapsedContent !== null &&\n indexExpandendCollapsedContent !== orderNumber &&\n expanded\n ) {\n setExpanded(false);\n }\n }, [indexExpandendCollapsedContent, orderNumber, expanded]);\n\n const isActionSelected = (actionId) => actionId === selectedAction;\n\n return (\n <Accordion\n expanded={expanded}\n onToggle={handleExpandedAccordion}\n variant={orderNumber % 2 ? 'primary' : 'secondary'}\n >\n <AccordionToggle title={capitalize(label)} />\n <AccordionContent>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n value={allActionsSelected}\n indeterminate={!allActionsSelected && someActionsSelected}\n onValueChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <GridItem col={6} key={action.actionId}>\n <CheckboxWrapper\n isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n value={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onValueChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n {action.action}\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog />\n </button>\n </CheckboxWrapper>\n </GridItem>\n );\n })}\n </Grid>\n </Box>\n );\n })}\n </AccordionContent>\n </Accordion>\n );\n};\n\nCollapsableContentType.defaultProps = {\n controllers: [],\n orderNumber: 0,\n disabled: false,\n onExpanded: () => null,\n indexExpandendCollapsedContent: null,\n};\n\nCollapsableContentType.propTypes = {\n controllers: PropTypes.array,\n orderNumber: PropTypes.number,\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onExpanded: PropTypes.func,\n indexExpandendCollapsedContent: PropTypes.number,\n};\n\nexport default CollapsableContentType;\n","import React, { useState } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\n\nimport CollapsableContentType from '../CollapsableContentType';\n\nconst ContentTypesSection = ({ section, ...props }) => {\n const [indexExpandedCollpsedContent, setIndexExpandedCollpsedContent] = useState(null);\n const handleExpandedCollpsedContentIndex = (index) => setIndexExpandedCollpsedContent(index);\n\n return (\n <Box padding={4} background=\"neutral0\">\n {section &&\n section.map((api, index) => (\n <CollapsableContentType\n key={api.apiId}\n label={api.label}\n controllers={api.controllers}\n orderNumber={index}\n indexExpandendCollapsedContent={indexExpandedCollpsedContent}\n onExpanded={handleExpandedCollpsedContentIndex}\n name={api.apiId}\n {...props}\n />\n ))}\n </Box>\n );\n};\n\nContentTypesSection.defaultProps = {\n section: null,\n};\n\nContentTypesSection.propTypes = {\n section: PropTypes.arrayOf(PropTypes.object),\n};\n\nexport default ContentTypesSection;\n","import React, { memo } from 'react';\n\nimport { Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../../../../../../../contexts/apiTokenPermissions';\nimport ActionBoundRoutes from '../ActionBoundRoutes';\nimport ContentTypesSection from '../ContenTypesSection';\n\nconst Permissions = ({ ...props }) => {\n const {\n value: { data },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n return (\n <Grid gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <GridItem col={7} paddingTop={6} paddingBottom={6} paddingLeft={7} paddingRight={7}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.title',\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography as=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.description',\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n {data?.permissions && <ContentTypesSection section={data?.permissions} {...props} />}\n </GridItem>\n <ActionBoundRoutes />\n </Grid>\n );\n};\n\nexport default memo(Permissions);\n","import { transformPermissionsData } from './utils';\n\nconst init = (state, permissions = []) => {\n return {\n ...state,\n selectedAction: null,\n routes: [],\n selectedActions: [],\n data: transformPermissionsData(permissions),\n };\n};\n\nexport default init;\n","/* eslint-disable consistent-return */\nimport produce from 'immer';\nimport pull from 'lodash/pull';\n\nimport { transformPermissionsData } from './utils';\n\nexport const initialState = {\n data: {},\n selectedActions: [],\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n if (draftState.selectedActions.includes(action.value)) {\n pull(draftState.selectedActions, action.value);\n } else {\n draftState.selectedActions.push(action.value);\n }\n break;\n }\n case 'SELECT_ALL_IN_PERMISSION': {\n const areAllSelected = action.value.every((item) =>\n draftState.selectedActions.includes(item.actionId)\n );\n\n if (areAllSelected) {\n action.value.forEach((item) => {\n pull(draftState.selectedActions, item.actionId);\n });\n } else {\n action.value.forEach((item) => {\n draftState.selectedActions.push(item.actionId);\n });\n }\n break;\n }\n\n case 'SELECT_ALL_ACTIONS': {\n draftState.selectedActions = [...draftState.data.allActionsIds];\n\n break;\n }\n case 'ON_CHANGE_READ_ONLY': {\n const onlyReadOnlyActions = draftState.data.allActionsIds.filter(\n (actionId) => actionId.includes('find') || actionId.includes('findOne')\n );\n draftState.selectedActions = [...onlyReadOnlyActions];\n break;\n }\n case 'UPDATE_PERMISSIONS_LAYOUT': {\n draftState.data = transformPermissionsData(action.value);\n break;\n }\n case 'UPDATE_ROUTES': {\n draftState.routes = { ...action.value };\n break;\n }\n case 'UPDATE_PERMISSIONS': {\n draftState.selectedActions = [...action.value];\n break;\n }\n case 'SET_SELECTED_ACTION': {\n draftState.selectedAction = action.value;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { useEffect, useReducer, useRef, useState } from 'react';\n\nimport { ContentLayout, Flex, Main } from '@strapi/design-system';\nimport {\n Form,\n SettingsPageTitle,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { ApiTokenPermissionsProvider } from '../../../../../contexts/apiTokenPermissions';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport FormHead from '../../../components/Tokens/FormHead';\nimport TokenBox from '../../../components/Tokens/TokenBox';\n\nimport FormApiTokenContainer from './components/FormApiTokenContainer';\nimport LoadingView from './components/LoadingView';\nimport Permissions from './components/Permissions';\nimport init from './init';\nimport reducer, { initialState } from './reducer';\nimport { schema } from './utils';\n\nconst MSG_ERROR_NAME_TAKEN = 'Name already taken';\n\nconst ApiTokenCreateView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const history = useHistory();\n const permissions = useSelector(selectAdminPermissions);\n const [apiToken, setApiToken] = useState(\n history.location.state?.apiToken.accessKey\n ? {\n ...history.location.state.apiToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const trackUsageRef = useRef(trackUsage);\n const { setCurrentStep } = useGuidedTour();\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings['api-tokens']);\n const [state, dispatch] = useReducer(reducer, initialState, (state) => init(state, {}));\n const {\n params: { id },\n } = useRouteMatch('/settings/api-tokens/:id');\n const { get, post, put } = useFetchClient();\n\n const isCreating = id === 'create';\n\n useQuery(\n 'content-api-permissions',\n async () => {\n const [permissions, routes] = await Promise.all(\n ['/admin/content-api/permissions', '/admin/content-api/routes'].map(async (url) => {\n const { data } = await get(url);\n\n return data.data;\n })\n );\n\n dispatch({\n type: 'UPDATE_PERMISSIONS_LAYOUT',\n value: permissions,\n });\n\n dispatch({\n type: 'UPDATE_ROUTES',\n value: routes,\n });\n\n if (apiToken) {\n if (apiToken?.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (apiToken?.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (apiToken?.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: apiToken?.permissions,\n });\n }\n }\n },\n {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n useEffect(() => {\n trackUsageRef.current(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n });\n }, [isCreating]);\n\n const { status } = useQuery(\n ['api-token', id],\n async () => {\n const {\n data: { data },\n } = await get(`/admin/api-tokens/${id}`);\n\n setApiToken({\n ...data,\n });\n\n if (data?.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (data?.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (data?.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: data?.permissions,\n });\n }\n\n return data;\n },\n {\n enabled: !isCreating && !apiToken,\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n trackUsageRef.current(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: API_TOKEN_TYPE,\n });\n lockApp();\n const lifespanVal =\n body.lifespan && parseInt(body.lifespan, 10) && body.lifespan !== '0'\n ? parseInt(body.lifespan, 10)\n : null;\n\n try {\n const {\n data: { data: response },\n } = isCreating\n ? await post(`/admin/api-tokens`, {\n ...body,\n lifespan: lifespanVal,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n })\n : await put(`/admin/api-tokens/${id}`, {\n name: body.name,\n description: body.description,\n type: body.type,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if (isCreating) {\n history.replace(`/settings/api-tokens/${response.id}`, { apiToken: response });\n setCurrentStep('apiTokens.success');\n }\n unlockApp();\n setApiToken({\n ...response,\n });\n\n toggleNotification({\n type: 'success',\n message: isCreating\n ? formatMessage({\n id: 'notification.success.apitokencreated',\n defaultMessage: 'API Token successfully created',\n })\n : formatMessage({\n id: 'notification.success.apitokenedited',\n defaultMessage: 'API Token successfully edited',\n }),\n });\n\n trackUsageRef.current(isCreating ? 'didCreateToken' : 'didEditToken', {\n type: apiToken.type,\n tokenType: API_TOKEN_TYPE,\n });\n } catch (err) {\n const errors = formatAPIErrors(err.response.data);\n actions.setErrors(errors);\n\n if (err?.response?.data?.error?.message === MSG_ERROR_NAME_TAKEN) {\n toggleNotification({\n type: 'warning',\n message: err.response.data.message || 'notification.error.tokennamenotunique',\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: err?.response?.data?.message || 'notification.error',\n });\n }\n unlockApp();\n }\n };\n\n const [hasChangedPermissions, setHasChangedPermissions] = useState(false);\n\n const handleChangeCheckbox = ({ target: { value } }) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'ON_CHANGE',\n value,\n });\n };\n\n const handleChangeSelectAllCheckbox = ({ target: { value } }) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'SELECT_ALL_IN_PERMISSION',\n value,\n });\n };\n\n const setSelectedAction = ({ target: { value } }) => {\n dispatch({\n type: 'SET_SELECTED_ACTION',\n value,\n });\n };\n\n const providerValue = {\n ...state,\n onChange: handleChangeCheckbox,\n onChangeSelectAll: handleChangeSelectAllCheckbox,\n setSelectedAction,\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !apiToken && status !== 'success';\n\n if (isLoading) {\n return <LoadingView apiTokenName={apiToken?.name} />;\n }\n\n return (\n <ApiTokenPermissionsProvider value={providerValue}>\n <Main>\n <SettingsPageTitle name=\"API Tokens\" />\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: apiToken?.type,\n lifespan: apiToken?.lifespan ? apiToken.lifespan.toString() : apiToken?.lifespan,\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values, setFieldValue }) => {\n if (hasChangedPermissions && values?.type !== 'custom') {\n setFieldValue('type', 'custom');\n }\n\n return (\n <Form>\n <FormHead\n backUrl=\"/settings/api-tokens\"\n title={{\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }}\n token={apiToken}\n setToken={setApiToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(apiToken?.name) && (\n <TokenBox token={apiToken?.accessKey} tokenType={API_TOKEN_TYPE} />\n )}\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\n <Permissions\n disabled={\n !canEditInputs ||\n values?.type === 'read-only' ||\n values?.type === 'full-access'\n }\n />\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n </ApiTokenPermissionsProvider>\n );\n};\n\nexport default ApiTokenCreateView;\n"],"names":["state","permissions","Permissions"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
3
|
import { useIntl } from "react-intl";
|
|
4
|
-
import { T as getBasename } from "./index-
|
|
4
|
+
import { T as getBasename } from "./index-326b9481.mjs";
|
|
5
5
|
import { IconButton, Select, Option } from "@strapi/design-system";
|
|
6
6
|
import { useNotification, useClipboard, ContentBox, getFetchClient } from "@strapi/helper-plugin";
|
|
7
7
|
import { Duplicate, Loader as Loader$1 } from "@strapi/icons";
|
|
@@ -129,4 +129,4 @@ export {
|
|
|
129
129
|
SelectRoles as S,
|
|
130
130
|
MagicLinkWrapper as a
|
|
131
131
|
};
|
|
132
|
-
//# sourceMappingURL=index-
|
|
132
|
+
//# sourceMappingURL=index-f67d8e8d.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-f67d8e8d.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js","../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js","../../admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js"],"sourcesContent":["import React from 'react';\n\nimport { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification } from '@strapi/helper-plugin';\nimport { Duplicate } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst MagicLinkWrapper = ({ children, target }) => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async () => {\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({ type: 'info', message: { id: 'notification.link-copied' } });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nMagicLinkWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n target: PropTypes.string.isRequired,\n};\n\nexport default MagicLinkWrapper;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../core/utils/basename';\n\nimport MagicLinkWrapper from './MagicLinkWrapper';\n\nexport const MagicLinkCE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkCE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkCE.propTypes = {\n registrationToken: PropTypes.string,\n};\n","import React from 'react';\n\nimport { Option, Select } from '@strapi/design-system';\nimport { getFetchClient } from '@strapi/helper-plugin';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport styled, { keyframes } from 'styled-components';\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nconst fetchData = async () => {\n const { get } = getFetchClient();\n const { data } = await get('/admin/roles');\n\n return data.data;\n};\n\nconst SelectRoles = ({ disabled, error, onChange, value }) => {\n const { status, data } = useQuery(['roles'], fetchData, {\n staleTime: 50000,\n });\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n });\n const hint = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n });\n const placeholder = formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n });\n const startIcon = status === 'loading' ? <Loader /> : undefined;\n\n return (\n <Select\n id=\"roles\"\n disabled={disabled}\n error={errorMessage}\n hint={hint}\n label={label}\n name=\"roles\"\n onChange={(v) => {\n onChange({ target: { name: 'roles', value: v } });\n }}\n placeholder={placeholder}\n multi\n startIcon={startIcon}\n value={value.map((v) => v.toString())}\n withTags\n required\n >\n {(data || []).map((role) => {\n return (\n <Option key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </Option>\n );\n })}\n </Select>\n );\n};\n\nSelectRoles.defaultProps = {\n disabled: false,\n error: undefined,\n};\n\nSelectRoles.propTypes = {\n disabled: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.array.isRequired,\n};\n\nexport default SelectRoles;\n"],"names":["LoadingIcon"],"mappings":";;;;;;;;;AAQA,MAAM,mBAAmB,CAAC,EAAE,UAAU,aAAa;AACjD,QAAM,qBAAqB;AACrB,QAAA,EAAE,kBAAkB;AACpB,QAAA,EAAE,SAAS;AAEjB,QAAM,YAAY,cAAc;AAAA,IAC9B,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AAED,QAAM,cAAc,YAAY;AACxB,UAAA,UAAU,MAAM,KAAK,MAAM;AAEjC,QAAI,SAAS;AACQ,yBAAA,EAAE,MAAM,QAAQ,SAAS,EAAE,IAAI,8BAA8B;AAAA,IAClF;AAAA,EAAA;AAIA,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WACE,oBAAC,YAAW,EAAA,OAAO,WAAW,UAAQ,MAAC,MAAO,oBAAA,WAAA,CAAA,CAAU,GAAI,SAAS,YAAa,CAAA;AAAA,MAEpF,OAAO;AAAA,MACP,eAAa;AAAA,MACb,UAAU;AAAA,MACV,0BAAO,QAAK,EAAA,OAAO,EAAE,UAAU,MAAM,UAAE,MAAA;AAAA,MACvC,gBAAe;AAAA,IAAA;AAAA,EAAA;AAGrB;AAEA,iBAAiB,YAAY;AAAA,EAC3B,UAAU,UAAU,UAAU,CAAC,UAAU,SAAS,UAAU,MAAM,CAAC,EAAE;AAAA,EACrE,QAAQ,UAAU,OAAO;AAC3B;AClCO,MAAM,cAAc,CAAC,EAAE,wBAAwB;AAC9C,QAAA,EAAE,kBAAkB;AACpB,QAAA,SAAS,GACb,OAAO,SAAS,MAClB,GAAG,aAAa,oCAAoC,iBAAiB;AAGnE,SAAA,oBAAC,kBAAiB,EAAA,QACf,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmB,UAAU;AAC/B;ACrBA,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjB,MAAM,iBAAiB,OAAO;AAAA,eACf,QAAQ;AAAA;AAGvB,MAAM,SAAS,MACb,oBAAC,gBACC,EAAA,UAAA,oBAACA,YAAY,EACf,CAAA;AAGF,MAAM,YAAY,YAAY;AACtB,QAAA,EAAE,QAAQ;AAChB,QAAM,EAAE,KAAS,IAAA,MAAM,IAAI,cAAc;AAEzC,SAAO,KAAK;AACd;AAEA,MAAM,cAAc,CAAC,EAAE,UAAU,OAAO,UAAU,YAAY;AACtD,QAAA,EAAE,QAAQ,KAAK,IAAI,SAAS,CAAC,OAAO,GAAG,WAAW;AAAA,IACtD,WAAW;AAAA,EAAA,CACZ;AACK,QAAA,EAAE,kBAAkB;AACpB,QAAA,eAAe,QAAQ,cAAc,EAAE,IAAI,OAAO,gBAAgB,OAAO,IAAI;AACnF,QAAM,QAAQ,cAAc;AAAA,IAC1B,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AACD,QAAM,OAAO,cAAc;AAAA,IACzB,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AACD,QAAM,cAAc,cAAc;AAAA,IAChC,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AACD,QAAM,YAAY,WAAW,YAAY,oBAAC,SAAO,CAAA,IAAK;AAGpD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MACH;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,UAAU,CAAC,MAAM;AACN,iBAAA,EAAE,QAAQ,EAAE,MAAM,SAAS,OAAO,KAAK;AAAA,MAClD;AAAA,MACA;AAAA,MACA,OAAK;AAAA,MACL;AAAA,MACA,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,MACpC,UAAQ;AAAA,MACR,UAAQ;AAAA,MAEN,WAAQ,QAAA,CAAI,GAAA,IAAI,CAAC,SAAS;AAC1B,mCACG,QAAqB,EAAA,OAAO,KAAK,GAAG,SAAA,GAClC,UAAc,cAAA;AAAA,UACb,IAAI,UAAU,KAAK,IAAI;AAAA,UACvB,gBAAgB,KAAK;AAAA,QAAA,CACtB,EAJU,GAAA,KAAK,EAKlB;AAAA,MAAA,CAEH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,YAAY,eAAe;AAAA,EACzB,UAAU;AAAA,EACV,OAAO;AACT;AAEA,YAAY,YAAY;AAAA,EACtB,UAAU,UAAU;AAAA,EACpB,OAAO,UAAU;AAAA,EACjB,UAAU,UAAU,KAAK;AAAA,EACzB,OAAO,UAAU,MAAM;AACzB;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext, useState, useRef } from "react";
|
|
2
2
|
import { useDrop, useDrag } from "react-dnd";
|
|
3
3
|
import { createSelector } from "@reduxjs/toolkit";
|
|
4
|
-
import { J as initialState } from "./index-
|
|
4
|
+
import { J as initialState } from "./index-326b9481.mjs";
|
|
5
5
|
import { translatedErrors } from "@strapi/helper-plugin";
|
|
6
6
|
import get from "lodash/get";
|
|
7
7
|
import isBoolean from "lodash/isBoolean";
|
|
@@ -487,4 +487,4 @@ export {
|
|
|
487
487
|
selectFieldSizes as s,
|
|
488
488
|
useDragAndDrop as u
|
|
489
489
|
};
|
|
490
|
-
//# sourceMappingURL=schema-
|
|
490
|
+
//# sourceMappingURL=schema-82ad2cb1.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-f1cf6f90.mjs","sources":["../../admin/src/content-manager/utils/getTrad.js","../../admin/src/content-manager/contexts/Wysiwyg.js","../../admin/src/content-manager/hooks/useKeyboardDragAndDrop.js","../../admin/src/content-manager/hooks/useDragAndDrop.js","../../admin/src/content-manager/pages/App/selectors.js","../../admin/src/content-manager/utils/composeRefs.js","../../admin/src/content-manager/utils/isFieldTypeNumber.js","../../admin/src/content-manager/utils/schema.js"],"sourcesContent":["const getTrad = (id) => `content-manager.${id}`;\n\nexport default getTrad;\n","import { createContext } from 'react';\n\nconst WysiwygContext = createContext();\n\nexport default WysiwygContext;\n","import { useState } from 'react';\n\n/**\n * @typedef UseKeyboardDragAndDropCallbacks\n *\n * @type {{\n * onCancel?: (index: number) => void,\n * onDropItem?: (index: number) => void,\n * onGrabItem?: (index: number) => void,\n * onMoveItem: (newIndex: number, currentIndex: number) => void,\n * }}\n */\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n *\n * @type {(active: boolean, index: number, callbacks: UseKeyboardDragAndDropCallbacks) => (event: React.KeyboardEvent<HTMLButtonElement>) => void}\n */\nexport const useKeyboardDragAndDrop = (\n active,\n index,\n { onCancel, onDropItem, onGrabItem, onMoveItem }\n) => {\n const [isSelected, setIsSelected] = useState(false);\n /**\n * @type {(movement: 'UP' | 'DOWN') => void})}\n */\n const handleMove = (movement) => {\n if (!isSelected) {\n return;\n }\n\n if (movement === 'UP') {\n onMoveItem(index - 1, index);\n } else if (movement === 'DOWN') {\n onMoveItem(index + 1, index);\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n /**\n * @type {React.KeyboardEventHandler<HTMLButtonElement>}\n */\n const handleKeyDown = (e) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import { useRef } from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { useKeyboardDragAndDrop } from './useKeyboardDragAndDrop';\n\n/**\n * @typedef UseDragAndDropOptions\n *\n * @type {{\n * type?: string,\n * index: number,\n * item?: object,\n * onStart?: () => void,\n * onEnd?: () => void,\n * dropSensitivity?: 'regular' | 'immediate'\n * } & import('./useKeyboardDragAndDrop').UseKeyboardDragAndDropCallbacks}\n */\n\n/**\n * @typedef UseDragAndDropReturn\n *\n * @type {[props: {handlerId: import('dnd-core').Identifier, isDragging: boolean, handleKeyDown: (event: import('react').KeyboardEvent<HTMLButtonElement>) => void}, objectRef: React.RefObject<HTMLElement>, dropRef: import('react-dnd').ConnectDropTarget, dragRef: import('react-dnd').ConnectDragSource, dragPreviewRef: import('react-dnd').ConnectDragPreview]}\n */\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n *\n * @type {(active: boolean, options: UseDragAndDropOptions) => UseDragAndDropReturn}\n */\nexport const useDragAndDrop = (\n active,\n {\n type = 'STRAPI_DND',\n index,\n item = {},\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = 'regular',\n }\n) => {\n const objectRef = useRef(null);\n\n const [{ handlerId }, dropRef] = useDrop({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!objectRef.current) {\n return;\n }\n const dragIndex = item.index;\n const newInd = index;\n\n // Don't replace items with themselves\n if (dragIndex === newInd) {\n return;\n }\n\n if (dropSensitivity === 'regular') {\n const hoverBoundingRect = objectRef.current.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Dragging downwards\n if (dragIndex < newInd && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newInd && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newInd, dragIndex);\n item.index = newInd;\n },\n });\n\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is for useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [{ handlerId, isDragging, handleKeyDown }, objectRef, dropRef, dragRef, dragPreviewRef];\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { initialState } from './reducer';\n\nconst selectAppDomain = () => (state) => {\n return state['content-manager_app'] || initialState;\n};\n\nconst makeSelectApp = () =>\n createSelector(selectAppDomain(), (substate) => {\n return substate;\n });\n\nconst makeSelectModels = () => createSelector(selectAppDomain(), (state) => state.models);\n\nconst makeSelectModelLinks = () =>\n createSelector(selectAppDomain(), (state) => ({\n collectionTypeLinks: state.collectionTypeLinks,\n singleTypeLinks: state.singleTypeLinks,\n }));\n\nconst makeSelectModelAndComponentSchemas = () =>\n createSelector(selectAppDomain(), ({ components, models }) => ({\n schemas: [...components, ...models],\n }));\n\nconst selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes);\n\nexport default makeSelectApp;\nexport {\n makeSelectModelAndComponentSchemas,\n makeSelectModelLinks,\n makeSelectModels,\n selectAppDomain,\n selectFieldSizes,\n};\n","/**\n * @typedef PossibleRef<T>\n * @type {React.Ref<T> | undefined;}\n *\n * @typedef setRef\n * @type {<T>(ref: PossibleRef<T>, value: T) => React.RefCallback<T>}\n */\n\n/**\n * @type {setRef}\n */\nconst setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n};\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n *\n * @type {<T>(...refs: PossibleRef<T>[]) => (node: T) => void}\n */\nexport const composeRefs = (...refs) => {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n};\n","export default function isFieldTypeNumber(type) {\n return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);\n}\n","import { translatedErrors as errorsTrads } from '@strapi/helper-plugin';\nimport get from 'lodash/get';\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport isNaN from 'lodash/isNaN';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport isFieldTypeNumber from './isFieldTypeNumber';\n\nyup.addMethod(yup.mixed, 'defined', function () {\n return this.test('defined', errorsTrads.required, (value) => value !== undefined);\n});\n\nyup.addMethod(yup.array, 'notEmptyMin', function (min) {\n return this.test('notEmptyMin', errorsTrads.min, (value) => {\n if (isEmpty(value)) {\n return true;\n }\n\n return value.length >= min;\n });\n});\n\nyup.addMethod(yup.string, 'isInferior', function (message, max) {\n return this.test('isInferior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(value);\n });\n});\n\nyup.addMethod(yup.string, 'isSuperior', function (message, min) {\n return this.test('isSuperior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(value) >= toNumber(min);\n });\n});\n\nconst getAttributes = (data) => get(data, ['attributes'], {});\n\nconst createYupSchema = (\n model,\n { components },\n options = {\n isCreatingEntry: true,\n isDraft: true,\n isFromComponent: false,\n isJSONTestDisabled: false,\n }\n) => {\n const attributes = getAttributes(model);\n\n return yup.object().shape(\n Object.keys(attributes).reduce((acc, current) => {\n const attribute = attributes[current];\n\n if (\n attribute.type !== 'relation' &&\n attribute.type !== 'component' &&\n attribute.type !== 'dynamiczone'\n ) {\n const formatted = createYupSchemaAttribute(attribute.type, attribute, options);\n acc[current] = formatted;\n }\n\n if (attribute.type === 'relation') {\n acc[current] = [\n 'oneWay',\n 'oneToOne',\n 'manyToOne',\n 'oneToManyMorph',\n 'oneToOneMorph',\n ].includes(attribute.relationType)\n ? yup.object().nullable()\n : yup.array().nullable();\n }\n\n if (attribute.type === 'component') {\n const componentFieldSchema = createYupSchema(\n components[attribute.component],\n {\n components,\n },\n { ...options, isFromComponent: true }\n );\n\n if (attribute.repeatable === true) {\n const { min, max, required } = attribute;\n\n let componentSchema = yup.lazy((value) => {\n let baseSchema = yup.array().of(componentFieldSchema);\n\n if (min) {\n if (required) {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n } else if (required !== true && isEmpty(value)) {\n baseSchema = baseSchema.nullable();\n } else {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n }\n } else if (required && !options.isDraft) {\n baseSchema = baseSchema.min(1, errorsTrads.required);\n }\n\n if (max) {\n baseSchema = baseSchema.max(max, errorsTrads.max);\n }\n\n return baseSchema;\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n const componentSchema = yup.lazy((obj) => {\n if (obj !== undefined) {\n return attribute.required === true && !options.isDraft\n ? componentFieldSchema.defined()\n : componentFieldSchema.nullable();\n }\n\n return attribute.required === true ? yup.object().defined() : yup.object().nullable();\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n let dynamicZoneSchema = yup.array().of(\n yup.lazy(({ __component }) => {\n return createYupSchema(\n components[__component],\n { components },\n { ...options, isFromComponent: true }\n );\n })\n );\n\n const { max, min } = attribute;\n\n if (min) {\n if (attribute.required) {\n dynamicZoneSchema = dynamicZoneSchema\n .test('min', errorsTrads.min, (value) => {\n if (options.isCreatingEntry) {\n return value && value.length >= min;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null && value.length >= min;\n })\n .test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n } else {\n dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min);\n }\n } else if (attribute.required && !options.isDraft) {\n dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n }\n\n if (max) {\n dynamicZoneSchema = dynamicZoneSchema.max(max, errorsTrads.max);\n }\n\n acc[current] = dynamicZoneSchema;\n }\n\n return acc;\n }, {})\n );\n};\n\nconst createYupSchemaAttribute = (type, validations, options) => {\n let schema = yup.mixed();\n\n if (['string', 'uid', 'text', 'richtext', 'email', 'password', 'enumeration'].includes(type)) {\n schema = yup.string();\n }\n\n if (type === 'blocks') {\n schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n // Don't run validations on drafts\n if (options.isDraft) {\n return true;\n }\n\n // The backend validates the actual schema, check if a value different than null is not an array\n if (value && !Array.isArray(value)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'json') {\n schema = yup\n .mixed(errorsTrads.json)\n .test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n if (!value || !value.length) {\n return true;\n }\n\n try {\n JSON.parse(value);\n\n return true;\n } catch (err) {\n return false;\n }\n })\n .nullable()\n .test('required', errorsTrads.required, (value) => {\n if (validations.required && (!value || !value.length)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'email') {\n schema = schema.email(errorsTrads.email);\n }\n\n if (['number', 'integer', 'float', 'decimal'].includes(type)) {\n schema = yup\n .number()\n .transform((cv) => (isNaN(cv) ? undefined : cv))\n .typeError();\n }\n\n if (type === 'biginteger') {\n schema = yup.string().matches(/^-?\\d*$/);\n }\n\n if (['date', 'datetime'].includes(type)) {\n schema = yup.date();\n }\n\n Object.keys(validations).forEach((validation) => {\n const validationValue = validations[validation];\n\n if (\n !!validationValue ||\n (!isBoolean(validationValue) && Number.isInteger(Math.floor(validationValue))) ||\n validationValue === 0\n ) {\n switch (validation) {\n case 'required': {\n if (!options.isDraft) {\n if (type === 'password' && options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n }\n\n if (type !== 'password') {\n if (options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n } else {\n schema = schema.test('required', errorsTrads.required, (value) => {\n // Field is not touched and the user is editing the entry\n if (value === undefined && !options.isFromComponent) {\n return true;\n }\n\n if (isFieldTypeNumber(type)) {\n if (value === 0) {\n return true;\n }\n\n return !!value;\n }\n\n if (type === 'boolean') {\n // Boolean value can be undefined/unset in modifiedData when generated in a new component\n return value !== null && value !== undefined;\n }\n\n if (type === 'date' || type === 'datetime') {\n if (typeof value === 'string') {\n return !isEmpty(value);\n }\n\n return !isEmpty(value?.toString());\n }\n\n return !isEmpty(value);\n });\n }\n }\n }\n\n break;\n }\n\n case 'max': {\n if (type === 'biginteger') {\n schema = schema.isInferior(errorsTrads.max, validationValue);\n } else {\n schema = schema.max(validationValue, errorsTrads.max);\n }\n break;\n }\n case 'maxLength':\n schema = schema.max(validationValue, errorsTrads.maxLength);\n break;\n case 'min': {\n if (type === 'biginteger') {\n schema = schema.isSuperior(errorsTrads.min, validationValue);\n } else {\n schema = schema.min(validationValue, errorsTrads.min);\n }\n break;\n }\n case 'minLength': {\n if (!options.isDraft) {\n schema = schema.min(validationValue, errorsTrads.minLength);\n }\n break;\n }\n case 'regex':\n schema = schema.matches(new RegExp(validationValue), {\n message: errorsTrads.regex,\n excludeEmptyString: !validations.required,\n });\n break;\n case 'lowercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().lowercase();\n }\n break;\n case 'uppercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().uppercase();\n }\n break;\n case 'positive':\n if (isFieldTypeNumber(type)) {\n schema = schema.positive();\n }\n break;\n case 'negative':\n if (isFieldTypeNumber(type)) {\n schema = schema.negative();\n }\n break;\n default:\n schema = schema.nullable();\n }\n }\n });\n\n return schema;\n};\n\nexport default createYupSchema;\n"],"names":["item","errorsTrads","componentSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-82ad2cb1.mjs","sources":["../../admin/src/content-manager/utils/getTrad.js","../../admin/src/content-manager/contexts/Wysiwyg.js","../../admin/src/content-manager/hooks/useKeyboardDragAndDrop.js","../../admin/src/content-manager/hooks/useDragAndDrop.js","../../admin/src/content-manager/pages/App/selectors.js","../../admin/src/content-manager/utils/composeRefs.js","../../admin/src/content-manager/utils/isFieldTypeNumber.js","../../admin/src/content-manager/utils/schema.js"],"sourcesContent":["const getTrad = (id) => `content-manager.${id}`;\n\nexport default getTrad;\n","import { createContext } from 'react';\n\nconst WysiwygContext = createContext();\n\nexport default WysiwygContext;\n","import { useState } from 'react';\n\n/**\n * @typedef UseKeyboardDragAndDropCallbacks\n *\n * @type {{\n * onCancel?: (index: number) => void,\n * onDropItem?: (index: number) => void,\n * onGrabItem?: (index: number) => void,\n * onMoveItem: (newIndex: number, currentIndex: number) => void,\n * }}\n */\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n *\n * @type {(active: boolean, index: number, callbacks: UseKeyboardDragAndDropCallbacks) => (event: React.KeyboardEvent<HTMLButtonElement>) => void}\n */\nexport const useKeyboardDragAndDrop = (\n active,\n index,\n { onCancel, onDropItem, onGrabItem, onMoveItem }\n) => {\n const [isSelected, setIsSelected] = useState(false);\n /**\n * @type {(movement: 'UP' | 'DOWN') => void})}\n */\n const handleMove = (movement) => {\n if (!isSelected) {\n return;\n }\n\n if (movement === 'UP') {\n onMoveItem(index - 1, index);\n } else if (movement === 'DOWN') {\n onMoveItem(index + 1, index);\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n /**\n * @type {React.KeyboardEventHandler<HTMLButtonElement>}\n */\n const handleKeyDown = (e) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import { useRef } from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { useKeyboardDragAndDrop } from './useKeyboardDragAndDrop';\n\n/**\n * @typedef UseDragAndDropOptions\n *\n * @type {{\n * type?: string,\n * index: number,\n * item?: object,\n * onStart?: () => void,\n * onEnd?: () => void,\n * dropSensitivity?: 'regular' | 'immediate'\n * } & import('./useKeyboardDragAndDrop').UseKeyboardDragAndDropCallbacks}\n */\n\n/**\n * @typedef UseDragAndDropReturn\n *\n * @type {[props: {handlerId: import('dnd-core').Identifier, isDragging: boolean, handleKeyDown: (event: import('react').KeyboardEvent<HTMLButtonElement>) => void}, objectRef: React.RefObject<HTMLElement>, dropRef: import('react-dnd').ConnectDropTarget, dragRef: import('react-dnd').ConnectDragSource, dragPreviewRef: import('react-dnd').ConnectDragPreview]}\n */\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n *\n * @type {(active: boolean, options: UseDragAndDropOptions) => UseDragAndDropReturn}\n */\nexport const useDragAndDrop = (\n active,\n {\n type = 'STRAPI_DND',\n index,\n item = {},\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = 'regular',\n }\n) => {\n const objectRef = useRef(null);\n\n const [{ handlerId }, dropRef] = useDrop({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!objectRef.current) {\n return;\n }\n const dragIndex = item.index;\n const newInd = index;\n\n // Don't replace items with themselves\n if (dragIndex === newInd) {\n return;\n }\n\n if (dropSensitivity === 'regular') {\n const hoverBoundingRect = objectRef.current.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Dragging downwards\n if (dragIndex < newInd && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newInd && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newInd, dragIndex);\n item.index = newInd;\n },\n });\n\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is for useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [{ handlerId, isDragging, handleKeyDown }, objectRef, dropRef, dragRef, dragPreviewRef];\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { initialState } from './reducer';\n\nconst selectAppDomain = () => (state) => {\n return state['content-manager_app'] || initialState;\n};\n\nconst makeSelectApp = () =>\n createSelector(selectAppDomain(), (substate) => {\n return substate;\n });\n\nconst makeSelectModels = () => createSelector(selectAppDomain(), (state) => state.models);\n\nconst makeSelectModelLinks = () =>\n createSelector(selectAppDomain(), (state) => ({\n collectionTypeLinks: state.collectionTypeLinks,\n singleTypeLinks: state.singleTypeLinks,\n }));\n\nconst makeSelectModelAndComponentSchemas = () =>\n createSelector(selectAppDomain(), ({ components, models }) => ({\n schemas: [...components, ...models],\n }));\n\nconst selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes);\n\nexport default makeSelectApp;\nexport {\n makeSelectModelAndComponentSchemas,\n makeSelectModelLinks,\n makeSelectModels,\n selectAppDomain,\n selectFieldSizes,\n};\n","/**\n * @typedef PossibleRef<T>\n * @type {React.Ref<T> | undefined;}\n *\n * @typedef setRef\n * @type {<T>(ref: PossibleRef<T>, value: T) => React.RefCallback<T>}\n */\n\n/**\n * @type {setRef}\n */\nconst setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n};\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n *\n * @type {<T>(...refs: PossibleRef<T>[]) => (node: T) => void}\n */\nexport const composeRefs = (...refs) => {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n};\n","export default function isFieldTypeNumber(type) {\n return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);\n}\n","import { translatedErrors as errorsTrads } from '@strapi/helper-plugin';\nimport get from 'lodash/get';\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport isNaN from 'lodash/isNaN';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport isFieldTypeNumber from './isFieldTypeNumber';\n\nyup.addMethod(yup.mixed, 'defined', function () {\n return this.test('defined', errorsTrads.required, (value) => value !== undefined);\n});\n\nyup.addMethod(yup.array, 'notEmptyMin', function (min) {\n return this.test('notEmptyMin', errorsTrads.min, (value) => {\n if (isEmpty(value)) {\n return true;\n }\n\n return value.length >= min;\n });\n});\n\nyup.addMethod(yup.string, 'isInferior', function (message, max) {\n return this.test('isInferior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(value);\n });\n});\n\nyup.addMethod(yup.string, 'isSuperior', function (message, min) {\n return this.test('isSuperior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(value) >= toNumber(min);\n });\n});\n\nconst getAttributes = (data) => get(data, ['attributes'], {});\n\nconst createYupSchema = (\n model,\n { components },\n options = {\n isCreatingEntry: true,\n isDraft: true,\n isFromComponent: false,\n isJSONTestDisabled: false,\n }\n) => {\n const attributes = getAttributes(model);\n\n return yup.object().shape(\n Object.keys(attributes).reduce((acc, current) => {\n const attribute = attributes[current];\n\n if (\n attribute.type !== 'relation' &&\n attribute.type !== 'component' &&\n attribute.type !== 'dynamiczone'\n ) {\n const formatted = createYupSchemaAttribute(attribute.type, attribute, options);\n acc[current] = formatted;\n }\n\n if (attribute.type === 'relation') {\n acc[current] = [\n 'oneWay',\n 'oneToOne',\n 'manyToOne',\n 'oneToManyMorph',\n 'oneToOneMorph',\n ].includes(attribute.relationType)\n ? yup.object().nullable()\n : yup.array().nullable();\n }\n\n if (attribute.type === 'component') {\n const componentFieldSchema = createYupSchema(\n components[attribute.component],\n {\n components,\n },\n { ...options, isFromComponent: true }\n );\n\n if (attribute.repeatable === true) {\n const { min, max, required } = attribute;\n\n let componentSchema = yup.lazy((value) => {\n let baseSchema = yup.array().of(componentFieldSchema);\n\n if (min) {\n if (required) {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n } else if (required !== true && isEmpty(value)) {\n baseSchema = baseSchema.nullable();\n } else {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n }\n } else if (required && !options.isDraft) {\n baseSchema = baseSchema.min(1, errorsTrads.required);\n }\n\n if (max) {\n baseSchema = baseSchema.max(max, errorsTrads.max);\n }\n\n return baseSchema;\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n const componentSchema = yup.lazy((obj) => {\n if (obj !== undefined) {\n return attribute.required === true && !options.isDraft\n ? componentFieldSchema.defined()\n : componentFieldSchema.nullable();\n }\n\n return attribute.required === true ? yup.object().defined() : yup.object().nullable();\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n let dynamicZoneSchema = yup.array().of(\n yup.lazy(({ __component }) => {\n return createYupSchema(\n components[__component],\n { components },\n { ...options, isFromComponent: true }\n );\n })\n );\n\n const { max, min } = attribute;\n\n if (min) {\n if (attribute.required) {\n dynamicZoneSchema = dynamicZoneSchema\n .test('min', errorsTrads.min, (value) => {\n if (options.isCreatingEntry) {\n return value && value.length >= min;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null && value.length >= min;\n })\n .test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n } else {\n dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min);\n }\n } else if (attribute.required && !options.isDraft) {\n dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n }\n\n if (max) {\n dynamicZoneSchema = dynamicZoneSchema.max(max, errorsTrads.max);\n }\n\n acc[current] = dynamicZoneSchema;\n }\n\n return acc;\n }, {})\n );\n};\n\nconst createYupSchemaAttribute = (type, validations, options) => {\n let schema = yup.mixed();\n\n if (['string', 'uid', 'text', 'richtext', 'email', 'password', 'enumeration'].includes(type)) {\n schema = yup.string();\n }\n\n if (type === 'blocks') {\n schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n // Don't run validations on drafts\n if (options.isDraft) {\n return true;\n }\n\n // The backend validates the actual schema, check if a value different than null is not an array\n if (value && !Array.isArray(value)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'json') {\n schema = yup\n .mixed(errorsTrads.json)\n .test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n if (!value || !value.length) {\n return true;\n }\n\n try {\n JSON.parse(value);\n\n return true;\n } catch (err) {\n return false;\n }\n })\n .nullable()\n .test('required', errorsTrads.required, (value) => {\n if (validations.required && (!value || !value.length)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'email') {\n schema = schema.email(errorsTrads.email);\n }\n\n if (['number', 'integer', 'float', 'decimal'].includes(type)) {\n schema = yup\n .number()\n .transform((cv) => (isNaN(cv) ? undefined : cv))\n .typeError();\n }\n\n if (type === 'biginteger') {\n schema = yup.string().matches(/^-?\\d*$/);\n }\n\n if (['date', 'datetime'].includes(type)) {\n schema = yup.date();\n }\n\n Object.keys(validations).forEach((validation) => {\n const validationValue = validations[validation];\n\n if (\n !!validationValue ||\n (!isBoolean(validationValue) && Number.isInteger(Math.floor(validationValue))) ||\n validationValue === 0\n ) {\n switch (validation) {\n case 'required': {\n if (!options.isDraft) {\n if (type === 'password' && options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n }\n\n if (type !== 'password') {\n if (options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n } else {\n schema = schema.test('required', errorsTrads.required, (value) => {\n // Field is not touched and the user is editing the entry\n if (value === undefined && !options.isFromComponent) {\n return true;\n }\n\n if (isFieldTypeNumber(type)) {\n if (value === 0) {\n return true;\n }\n\n return !!value;\n }\n\n if (type === 'boolean') {\n // Boolean value can be undefined/unset in modifiedData when generated in a new component\n return value !== null && value !== undefined;\n }\n\n if (type === 'date' || type === 'datetime') {\n if (typeof value === 'string') {\n return !isEmpty(value);\n }\n\n return !isEmpty(value?.toString());\n }\n\n return !isEmpty(value);\n });\n }\n }\n }\n\n break;\n }\n\n case 'max': {\n if (type === 'biginteger') {\n schema = schema.isInferior(errorsTrads.max, validationValue);\n } else {\n schema = schema.max(validationValue, errorsTrads.max);\n }\n break;\n }\n case 'maxLength':\n schema = schema.max(validationValue, errorsTrads.maxLength);\n break;\n case 'min': {\n if (type === 'biginteger') {\n schema = schema.isSuperior(errorsTrads.min, validationValue);\n } else {\n schema = schema.min(validationValue, errorsTrads.min);\n }\n break;\n }\n case 'minLength': {\n if (!options.isDraft) {\n schema = schema.min(validationValue, errorsTrads.minLength);\n }\n break;\n }\n case 'regex':\n schema = schema.matches(new RegExp(validationValue), {\n message: errorsTrads.regex,\n excludeEmptyString: !validations.required,\n });\n break;\n case 'lowercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().lowercase();\n }\n break;\n case 'uppercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().uppercase();\n }\n break;\n case 'positive':\n if (isFieldTypeNumber(type)) {\n schema = schema.positive();\n }\n break;\n case 'negative':\n if (isFieldTypeNumber(type)) {\n schema = schema.negative();\n }\n break;\n default:\n schema = schema.nullable();\n }\n }\n });\n\n return schema;\n};\n\nexport default createYupSchema;\n"],"names":["item","errorsTrads","componentSchema"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const React = require("react");
|
|
3
3
|
const reactDnd = require("react-dnd");
|
|
4
4
|
const toolkit = require("@reduxjs/toolkit");
|
|
5
|
-
const index = require("./index-
|
|
5
|
+
const index = require("./index-7c0dcf2b.js");
|
|
6
6
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
7
7
|
const get = require("lodash/get");
|
|
8
8
|
const isBoolean = require("lodash/isBoolean");
|
|
@@ -511,4 +511,4 @@ exports.makeSelectModelLinks = makeSelectModelLinks;
|
|
|
511
511
|
exports.selectAppDomain = selectAppDomain;
|
|
512
512
|
exports.selectFieldSizes = selectFieldSizes;
|
|
513
513
|
exports.useDragAndDrop = useDragAndDrop;
|
|
514
|
-
//# sourceMappingURL=schema-
|
|
514
|
+
//# sourceMappingURL=schema-8bb5b01b.js.map
|