@strapi/content-manager 5.11.0 → 5.12.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-BBCYsnnE.js → ComponentConfigurationPage-CBvwLnAK.js} +5 -6
  2. package/dist/admin/chunks/{ComponentConfigurationPage-BBCYsnnE.js.map → ComponentConfigurationPage-CBvwLnAK.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-DNBN8tI3.mjs → ComponentConfigurationPage-w_ss7xEy.mjs} +5 -6
  4. package/dist/admin/chunks/{ComponentConfigurationPage-DNBN8tI3.mjs.map → ComponentConfigurationPage-w_ss7xEy.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-Cu0Vt-uc.js → EditConfigurationPage-CbAhYSyH.js} +5 -6
  6. package/dist/admin/chunks/{EditConfigurationPage-Cu0Vt-uc.js.map → EditConfigurationPage-CbAhYSyH.js.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-CoivzF-x.mjs → EditConfigurationPage-D1iHIzSR.mjs} +5 -6
  8. package/dist/admin/chunks/{EditConfigurationPage-CoivzF-x.mjs.map → EditConfigurationPage-D1iHIzSR.mjs.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-BpGtaOKG.mjs → EditViewPage-BtunY0ZP.mjs} +102 -95
  10. package/dist/admin/chunks/EditViewPage-BtunY0ZP.mjs.map +1 -0
  11. package/dist/admin/chunks/{EditViewPage-B48r4DLX.js → EditViewPage-Cf_TPJZd.js} +102 -95
  12. package/dist/admin/chunks/EditViewPage-Cf_TPJZd.js.map +1 -0
  13. package/dist/admin/chunks/{Form-rQQtxfmF.mjs → Form-DsvK3WTh.mjs} +3 -3
  14. package/dist/admin/chunks/{Form-rQQtxfmF.mjs.map → Form-DsvK3WTh.mjs.map} +1 -1
  15. package/dist/admin/chunks/{Form-DD49gSWW.js → Form-UMrizqJP.js} +5 -5
  16. package/dist/admin/chunks/{Form-DD49gSWW.js.map → Form-UMrizqJP.js.map} +1 -1
  17. package/dist/admin/chunks/{History-RLJ9Svg6.js → History-Crvb_hzd.js} +17 -13
  18. package/dist/admin/chunks/History-Crvb_hzd.js.map +1 -0
  19. package/dist/admin/chunks/{History-BdsTgpW-.mjs → History-DsRVSUF7.mjs} +16 -12
  20. package/dist/admin/chunks/History-DsRVSUF7.mjs.map +1 -0
  21. package/dist/admin/chunks/{Input-BUVu6H9n.js → Input-C2r54bIL.js} +1327 -64
  22. package/dist/admin/chunks/Input-C2r54bIL.js.map +1 -0
  23. package/dist/admin/chunks/{Input-CtIJ2J0c.mjs → Input-D6obstp0.mjs} +1315 -55
  24. package/dist/admin/chunks/Input-D6obstp0.mjs.map +1 -0
  25. package/dist/admin/chunks/{ListConfigurationPage-38s4e-VJ.mjs → ListConfigurationPage-DW-wAwmW.mjs} +4 -5
  26. package/dist/admin/chunks/{ListConfigurationPage-38s4e-VJ.mjs.map → ListConfigurationPage-DW-wAwmW.mjs.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-DfnrA3dw.js → ListConfigurationPage-DlQ2pLyr.js} +6 -7
  28. package/dist/admin/chunks/{ListConfigurationPage-DfnrA3dw.js.map → ListConfigurationPage-DlQ2pLyr.js.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-BTmlktgT.mjs → ListViewPage-DcUhPA9a.mjs} +3 -4
  30. package/dist/admin/chunks/{ListViewPage-BTmlktgT.mjs.map → ListViewPage-DcUhPA9a.mjs.map} +1 -1
  31. package/dist/admin/chunks/{ListViewPage-D9-LGPq_.js → ListViewPage-nJJ227Fo.js} +7 -8
  32. package/dist/admin/chunks/{ListViewPage-D9-LGPq_.js.map → ListViewPage-nJJ227Fo.js.map} +1 -1
  33. package/dist/admin/chunks/{NoContentTypePage-owzdv-pl.js → NoContentTypePage-Cxt-uFq7.js} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-owzdv-pl.js.map → NoContentTypePage-Cxt-uFq7.js.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-CcyR2i1K.mjs → NoContentTypePage-DbRXR2cr.mjs} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-CcyR2i1K.mjs.map → NoContentTypePage-DbRXR2cr.mjs.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-CM_r8w5u.js → NoPermissionsPage-BeMTv_SG.js} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-CM_r8w5u.js.map → NoPermissionsPage-BeMTv_SG.js.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-lBonAXej.mjs → NoPermissionsPage-RWPwNESA.mjs} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-lBonAXej.mjs.map → NoPermissionsPage-RWPwNESA.mjs.map} +1 -1
  41. package/dist/admin/chunks/{Preview-Bv3GKyWZ.js → Preview-CCjSV5Iu.js} +119 -200
  42. package/dist/admin/chunks/Preview-CCjSV5Iu.js.map +1 -0
  43. package/dist/admin/chunks/{Preview-Dh5Z7aGp.mjs → Preview-aVLT3LM_.mjs} +123 -204
  44. package/dist/admin/chunks/Preview-aVLT3LM_.mjs.map +1 -0
  45. package/dist/admin/chunks/{en-CImiNxXE.mjs → en-C2zEwS3-.mjs} +4 -1
  46. package/dist/admin/chunks/{en-CImiNxXE.mjs.map → en-C2zEwS3-.mjs.map} +1 -1
  47. package/dist/admin/chunks/{en-CLf4SuMQ.js → en-G976DLsg.js} +4 -1
  48. package/dist/admin/chunks/{en-CLf4SuMQ.js.map → en-G976DLsg.js.map} +1 -1
  49. package/dist/admin/chunks/{index-CGBB9Dho.js → index-BA_JLxKS.js} +185 -121
  50. package/dist/admin/chunks/index-BA_JLxKS.js.map +1 -0
  51. package/dist/admin/chunks/{index-BkM_Z7pU.mjs → index-CIOT3ggy.mjs} +184 -123
  52. package/dist/admin/chunks/index-CIOT3ggy.mjs.map +1 -0
  53. package/dist/admin/chunks/{layout-Dbmjk7mC.js → layout-C510xcd6.js} +86 -13
  54. package/dist/admin/chunks/layout-C510xcd6.js.map +1 -0
  55. package/dist/admin/chunks/{layout-D8ji6QNJ.mjs → layout-DjT9cccU.mjs} +78 -5
  56. package/dist/admin/chunks/layout-DjT9cccU.mjs.map +1 -0
  57. package/dist/admin/chunks/{useDragAndDrop-gcqEJMnO.js → objects-BJTP843m.js} +73 -1
  58. package/dist/admin/chunks/objects-BJTP843m.js.map +1 -0
  59. package/dist/admin/chunks/{useDragAndDrop-HYwNDExe.mjs → objects-D2z-IJgu.mjs} +72 -2
  60. package/dist/admin/chunks/objects-D2z-IJgu.mjs.map +1 -0
  61. package/dist/admin/chunks/{relations-jNJK8ESO.js → usePrev-BglKW7a4.js} +18 -2
  62. package/dist/admin/chunks/usePrev-BglKW7a4.js.map +1 -0
  63. package/dist/admin/chunks/{relations-Dv0FHoBS.mjs → usePrev-DAWUYIPh.mjs} +18 -4
  64. package/dist/admin/chunks/usePrev-DAWUYIPh.mjs.map +1 -0
  65. package/dist/admin/index.js +1 -1
  66. package/dist/admin/index.mjs +1 -1
  67. package/dist/admin/src/features/DocumentContext.d.ts +53 -0
  68. package/dist/admin/src/features/DocumentRBAC.d.ts +3 -2
  69. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  70. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +8 -0
  71. package/dist/admin/src/pages/EditView/components/FormInputs/{Relations.d.ts → Relations/Relations.d.ts} +9 -4
  72. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +8 -3
  73. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +7 -4
  74. package/dist/admin/src/preview/components/PreviewHeader.d.ts +1 -2
  75. package/dist/admin/src/preview/pages/Preview.d.ts +0 -2
  76. package/package.json +5 -5
  77. package/dist/admin/chunks/EditViewPage-B48r4DLX.js.map +0 -1
  78. package/dist/admin/chunks/EditViewPage-BpGtaOKG.mjs.map +0 -1
  79. package/dist/admin/chunks/History-BdsTgpW-.mjs.map +0 -1
  80. package/dist/admin/chunks/History-RLJ9Svg6.js.map +0 -1
  81. package/dist/admin/chunks/Input-BUVu6H9n.js.map +0 -1
  82. package/dist/admin/chunks/Input-CtIJ2J0c.mjs.map +0 -1
  83. package/dist/admin/chunks/Preview-Bv3GKyWZ.js.map +0 -1
  84. package/dist/admin/chunks/Preview-Dh5Z7aGp.mjs.map +0 -1
  85. package/dist/admin/chunks/Relations-DP5krCGC.mjs +0 -1291
  86. package/dist/admin/chunks/Relations-DP5krCGC.mjs.map +0 -1
  87. package/dist/admin/chunks/Relations-T8Cr0N9M.js +0 -1318
  88. package/dist/admin/chunks/Relations-T8Cr0N9M.js.map +0 -1
  89. package/dist/admin/chunks/index-BkM_Z7pU.mjs.map +0 -1
  90. package/dist/admin/chunks/index-CGBB9Dho.js.map +0 -1
  91. package/dist/admin/chunks/layout-D8ji6QNJ.mjs.map +0 -1
  92. package/dist/admin/chunks/layout-Dbmjk7mC.js.map +0 -1
  93. package/dist/admin/chunks/objects-C3EebVVe.js +0 -76
  94. package/dist/admin/chunks/objects-C3EebVVe.js.map +0 -1
  95. package/dist/admin/chunks/objects-wl73iEma.mjs +0 -73
  96. package/dist/admin/chunks/objects-wl73iEma.mjs.map +0 -1
  97. package/dist/admin/chunks/relations-Dv0FHoBS.mjs.map +0 -1
  98. package/dist/admin/chunks/relations-jNJK8ESO.js.map +0 -1
  99. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +0 -1
  100. package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js.map +0 -1
  101. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs +0 -18
  102. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +0 -1
  103. package/dist/admin/chunks/usePrev-DIYl-IAL.js +0 -21
  104. package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +0 -1
  105. package/dist/admin/src/preview/components/PreviewContent.d.ts +0 -2
@@ -5,18 +5,16 @@ var React = require('react');
5
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var reactIntl = require('react-intl');
7
7
  var reactRouterDom = require('react-router-dom');
8
- var Form = require('./Form-DD49gSWW.js');
9
- var index = require('./index-CGBB9Dho.js');
8
+ var Form = require('./Form-UMrizqJP.js');
9
+ var index = require('./index-BA_JLxKS.js');
10
10
  var hooks = require('./hooks-D-sOYd1s.js');
11
- var objects = require('./objects-C3EebVVe.js');
11
+ var objects = require('./objects-BJTP843m.js');
12
12
  require('@strapi/design-system');
13
13
  require('fractional-indexing');
14
14
  require('lodash/fp/pipe');
15
15
  require('@strapi/icons');
16
16
  require('react-dnd-html5-backend');
17
17
  require('styled-components');
18
- require('./useDragAndDrop-gcqEJMnO.js');
19
- require('react-dnd');
20
18
  require('./ComponentIcon-C-EjOUPA.js');
21
19
  require('@strapi/icons/symbols');
22
20
  require('yup');
@@ -27,6 +25,7 @@ require('date-fns');
27
25
  require('@reduxjs/toolkit');
28
26
  require('prismjs');
29
27
  require('react-redux');
28
+ require('react-dnd');
30
29
  require('lodash/clone');
31
30
  require('lodash/toPath');
32
31
 
@@ -296,4 +295,4 @@ const { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutati
296
295
 
297
296
  exports.ComponentConfigurationPage = ComponentConfigurationPage;
298
297
  exports.ProtectedComponentConfigurationPage = ProtectedComponentConfigurationPage;
299
- //# sourceMappingURL=ComponentConfigurationPage-BBCYsnnE.js.map
298
+ //# sourceMappingURL=ComponentConfigurationPage-CBvwLnAK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentConfigurationPage-BBCYsnnE.js","sources":["../../../admin/src/services/components.ts","../../../admin/src/pages/ComponentConfigurationPage.tsx"],"sourcesContent":["import { contentManagerApi } from './api';\n\nimport type {\n FindComponentConfiguration,\n UpdateComponentConfiguration,\n} from '../../../shared/contracts/components';\n\nconst componentsApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getComponentConfiguration: builder.query<\n FindComponentConfiguration.Response['data'],\n FindComponentConfiguration.Params['uid']\n >({\n query: (uid) => `/content-manager/components/${uid}/configuration`,\n transformResponse: (response: FindComponentConfiguration.Response) => response.data,\n providesTags: (_result, _error, uid) => [{ type: 'ComponentConfiguration', id: uid }],\n }),\n updateComponentConfiguration: builder.mutation({\n query: ({ uid, ...body }) => ({\n url: `/content-manager/components/${uid}/configuration`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: UpdateComponentConfiguration.Response) => response.data,\n invalidatesTags: (_result, _error, { uid }) => [\n { type: 'ComponentConfiguration', id: uid },\n // otherwise layouts already fetched will have stale component configuration data.\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n});\n\nconst { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } =\n componentsApi;\n\nexport { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation };\n","import * as React from 'react';\n\nimport { Page, useNotification, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { ComponentsDictionary, extractContentTypeComponents } from '../hooks/useContentTypeSchema';\nimport {\n DEFAULT_SETTINGS,\n EditLayout,\n convertEditLayoutToFieldLayouts,\n} from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport {\n useGetComponentConfigurationQuery,\n useUpdateComponentConfigurationMutation,\n} from '../services/components';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Component, FindComponentConfiguration } from '../../../shared/contracts/components';\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\n/* -------------------------------------------------------------------------------------------------\n * ComponentConfigurationPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComponentConfigurationPage = () => {\n /**\n * useDocumentLayout only works for documents, not components,\n * it feels weird to make that hook work for both when this is SUCH\n * a unique use case and we only do it here, so in short, we essentially\n * just extracted the logic to make an edit view layout and reproduced it here.\n */\n const { slug: model } = useParams<{ slug: string }>();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const {\n components,\n fieldSizes,\n schema,\n error: errorSchema,\n isLoading: isLoadingSchema,\n isFetching: isFetchingSchema,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const schema = res.data?.components.find((ct) => ct.uid === model);\n\n const componentsByKey = res.data?.components.reduce<ComponentsDictionary>(\n (acc, component) => {\n acc[component.uid] = component;\n\n return acc;\n },\n {}\n );\n\n const components = extractContentTypeComponents(schema?.attributes, componentsByKey);\n\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n components,\n schema,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorSchema) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorSchema),\n });\n }\n }, [errorSchema, formatAPIError, toggleNotification]);\n\n const {\n data,\n isLoading: isLoadingConfig,\n isFetching: isFetchingConfig,\n error,\n } = useGetComponentConfigurationQuery(model ?? '');\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n /**\n * you **must** check if we're loading or fetching in case the component gets new props\n * but nothing was unmounted, it then becomes a fetch, not a load.\n */\n const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;\n\n const editLayout = React.useMemo(\n () =>\n data && !isLoading\n ? formatEditLayout(data, { schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, isLoading, schema, components]\n );\n\n const [updateConfiguration] = useUpdateComponentConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (formData) => {\n try {\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(data?.component.metadatas ?? {}).reduce<Metadatas>(\n (acc, [name, { edit, list }]) => {\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ??\n {};\n\n acc[name] = {\n edit: {\n ...edit,\n ...editedMetadata,\n },\n list,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: formData.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: data?.component.layouts.list,\n },\n settings: setIn(formData.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || errorSchema || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${editLayout.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={editLayout}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatEditLayout = (\n data: FindComponentConfiguration.Response['data'],\n { schema, components }: { schema?: Component; components: ComponentsDictionary }\n) => {\n const editAttributes = convertEditLayoutToFieldLayouts(\n data.component.layouts.edit,\n schema?.attributes,\n data.component.metadatas,\n { configurations: data.components, schemas: components }\n );\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.component.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: [editAttributes],\n components: componentEditAttributes,\n metadatas: editMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n settings: {\n ...data.component.settings,\n displayName: schema?.info.displayName,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedComponentConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.componentsConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ComponentConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ComponentConfigurationPage, ProtectedComponentConfigurationPage };\n"],"names":["componentsApi","contentManagerApi","injectEndpoints","endpoints","builder","getComponentConfiguration","query","uid","transformResponse","response","data","providesTags","_result","_error","type","id","updateComponentConfiguration","mutation","body","url","method","invalidatesTags","useGetComponentConfigurationQuery","useUpdateComponentConfigurationMutation","ComponentConfigurationPage","slug","model","useParams","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","components","fieldSizes","schema","error","errorSchema","isLoading","isLoadingSchema","isFetching","isFetchingSchema","useGetInitialDataQuery","undefined","selectFromResult","res","find","ct","componentsByKey","reduce","acc","component","extractContentTypeComponents","attributes","Object","entries","attributeName","default","size","React","useEffect","message","isLoadingConfig","isFetchingConfig","editLayout","useMemo","formatEditLayout","layout","metadatas","options","settings","DEFAULT_SETTINGS","updateConfiguration","handleSubmit","formData","meta","name","edit","list","__temp_key__","_size","_name","editedMetadata","flatMap","row","children","field","layouts","map","TEMP_FIELD_NAME","setIn","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","editAttributes","convertEditLayoutToFieldLayouts","configurations","schemas","componentEditAttributes","configuration","icon","info","editMetadatas","attribute","metadata","pluginOptions","ProtectedComponentConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","componentsConfigurations","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ComponentConfigurationPage-CBvwLnAK.js","sources":["../../../admin/src/services/components.ts","../../../admin/src/pages/ComponentConfigurationPage.tsx"],"sourcesContent":["import { contentManagerApi } from './api';\n\nimport type {\n FindComponentConfiguration,\n UpdateComponentConfiguration,\n} from '../../../shared/contracts/components';\n\nconst componentsApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getComponentConfiguration: builder.query<\n FindComponentConfiguration.Response['data'],\n FindComponentConfiguration.Params['uid']\n >({\n query: (uid) => `/content-manager/components/${uid}/configuration`,\n transformResponse: (response: FindComponentConfiguration.Response) => response.data,\n providesTags: (_result, _error, uid) => [{ type: 'ComponentConfiguration', id: uid }],\n }),\n updateComponentConfiguration: builder.mutation({\n query: ({ uid, ...body }) => ({\n url: `/content-manager/components/${uid}/configuration`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: UpdateComponentConfiguration.Response) => response.data,\n invalidatesTags: (_result, _error, { uid }) => [\n { type: 'ComponentConfiguration', id: uid },\n // otherwise layouts already fetched will have stale component configuration data.\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n});\n\nconst { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } =\n componentsApi;\n\nexport { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation };\n","import * as React from 'react';\n\nimport { Page, useNotification, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { ComponentsDictionary, extractContentTypeComponents } from '../hooks/useContentTypeSchema';\nimport {\n DEFAULT_SETTINGS,\n EditLayout,\n convertEditLayoutToFieldLayouts,\n} from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport {\n useGetComponentConfigurationQuery,\n useUpdateComponentConfigurationMutation,\n} from '../services/components';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Component, FindComponentConfiguration } from '../../../shared/contracts/components';\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\n/* -------------------------------------------------------------------------------------------------\n * ComponentConfigurationPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComponentConfigurationPage = () => {\n /**\n * useDocumentLayout only works for documents, not components,\n * it feels weird to make that hook work for both when this is SUCH\n * a unique use case and we only do it here, so in short, we essentially\n * just extracted the logic to make an edit view layout and reproduced it here.\n */\n const { slug: model } = useParams<{ slug: string }>();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const {\n components,\n fieldSizes,\n schema,\n error: errorSchema,\n isLoading: isLoadingSchema,\n isFetching: isFetchingSchema,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const schema = res.data?.components.find((ct) => ct.uid === model);\n\n const componentsByKey = res.data?.components.reduce<ComponentsDictionary>(\n (acc, component) => {\n acc[component.uid] = component;\n\n return acc;\n },\n {}\n );\n\n const components = extractContentTypeComponents(schema?.attributes, componentsByKey);\n\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n components,\n schema,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorSchema) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorSchema),\n });\n }\n }, [errorSchema, formatAPIError, toggleNotification]);\n\n const {\n data,\n isLoading: isLoadingConfig,\n isFetching: isFetchingConfig,\n error,\n } = useGetComponentConfigurationQuery(model ?? '');\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n /**\n * you **must** check if we're loading or fetching in case the component gets new props\n * but nothing was unmounted, it then becomes a fetch, not a load.\n */\n const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;\n\n const editLayout = React.useMemo(\n () =>\n data && !isLoading\n ? formatEditLayout(data, { schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, isLoading, schema, components]\n );\n\n const [updateConfiguration] = useUpdateComponentConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (formData) => {\n try {\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(data?.component.metadatas ?? {}).reduce<Metadatas>(\n (acc, [name, { edit, list }]) => {\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ??\n {};\n\n acc[name] = {\n edit: {\n ...edit,\n ...editedMetadata,\n },\n list,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: formData.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: data?.component.layouts.list,\n },\n settings: setIn(formData.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || errorSchema || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${editLayout.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={editLayout}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatEditLayout = (\n data: FindComponentConfiguration.Response['data'],\n { schema, components }: { schema?: Component; components: ComponentsDictionary }\n) => {\n const editAttributes = convertEditLayoutToFieldLayouts(\n data.component.layouts.edit,\n schema?.attributes,\n data.component.metadatas,\n { configurations: data.components, schemas: components }\n );\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.component.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: [editAttributes],\n components: componentEditAttributes,\n metadatas: editMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n settings: {\n ...data.component.settings,\n displayName: schema?.info.displayName,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedComponentConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.componentsConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ComponentConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ComponentConfigurationPage, ProtectedComponentConfigurationPage };\n"],"names":["componentsApi","contentManagerApi","injectEndpoints","endpoints","builder","getComponentConfiguration","query","uid","transformResponse","response","data","providesTags","_result","_error","type","id","updateComponentConfiguration","mutation","body","url","method","invalidatesTags","useGetComponentConfigurationQuery","useUpdateComponentConfigurationMutation","ComponentConfigurationPage","slug","model","useParams","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","components","fieldSizes","schema","error","errorSchema","isLoading","isLoadingSchema","isFetching","isFetchingSchema","useGetInitialDataQuery","undefined","selectFromResult","res","find","ct","componentsByKey","reduce","acc","component","extractContentTypeComponents","attributes","Object","entries","attributeName","default","size","React","useEffect","message","isLoadingConfig","isFetchingConfig","editLayout","useMemo","formatEditLayout","layout","metadatas","options","settings","DEFAULT_SETTINGS","updateConfiguration","handleSubmit","formData","meta","name","edit","list","__temp_key__","_size","_name","editedMetadata","flatMap","row","children","field","layouts","map","TEMP_FIELD_NAME","setIn","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","editAttributes","convertEditLayoutToFieldLayouts","configurations","schemas","componentEditAttributes","configuration","icon","info","editMetadatas","attribute","metadata","pluginOptions","ProtectedComponentConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","componentsConfigurations","Protect"],"mappings":"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"}
@@ -3,18 +3,16 @@ import * as React from 'react';
3
3
  import { useNotification, useAPIErrorHandler, Page } from '@strapi/admin/strapi-admin';
4
4
  import { useIntl } from 'react-intl';
5
5
  import { useParams } from 'react-router-dom';
6
- import { C as ConfigurationForm, T as TEMP_FIELD_NAME } from './Form-rQQtxfmF.mjs';
7
- import { e as contentManagerApi, a as useGetInitialDataQuery, F as extractContentTypeComponents, G as DEFAULT_SETTINGS, J as convertEditLayoutToFieldLayouts } from './index-BkM_Z7pU.mjs';
6
+ import { C as ConfigurationForm, T as TEMP_FIELD_NAME } from './Form-DsvK3WTh.mjs';
7
+ import { l as contentManagerApi, a as useGetInitialDataQuery, L as extractContentTypeComponents, M as DEFAULT_SETTINGS, N as convertEditLayoutToFieldLayouts } from './index-CIOT3ggy.mjs';
8
8
  import { u as useTypedSelector } from './hooks-DMvik5y_.mjs';
9
- import { s as setIn } from './objects-wl73iEma.mjs';
9
+ import { s as setIn } from './objects-D2z-IJgu.mjs';
10
10
  import '@strapi/design-system';
11
11
  import 'fractional-indexing';
12
12
  import 'lodash/fp/pipe';
13
13
  import '@strapi/icons';
14
14
  import 'react-dnd-html5-backend';
15
15
  import 'styled-components';
16
- import './useDragAndDrop-HYwNDExe.mjs';
17
- import 'react-dnd';
18
16
  import './ComponentIcon-BZcTc4rj.mjs';
19
17
  import '@strapi/icons/symbols';
20
18
  import 'yup';
@@ -25,6 +23,7 @@ import 'date-fns';
25
23
  import '@reduxjs/toolkit';
26
24
  import 'prismjs';
27
25
  import 'react-redux';
26
+ import 'react-dnd';
28
27
  import 'lodash/clone';
29
28
  import 'lodash/toPath';
30
29
 
@@ -274,4 +273,4 @@ const { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutati
274
273
  };
275
274
 
276
275
  export { ComponentConfigurationPage, ProtectedComponentConfigurationPage };
277
- //# sourceMappingURL=ComponentConfigurationPage-DNBN8tI3.mjs.map
276
+ //# sourceMappingURL=ComponentConfigurationPage-w_ss7xEy.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentConfigurationPage-DNBN8tI3.mjs","sources":["../../../admin/src/services/components.ts","../../../admin/src/pages/ComponentConfigurationPage.tsx"],"sourcesContent":["import { contentManagerApi } from './api';\n\nimport type {\n FindComponentConfiguration,\n UpdateComponentConfiguration,\n} from '../../../shared/contracts/components';\n\nconst componentsApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getComponentConfiguration: builder.query<\n FindComponentConfiguration.Response['data'],\n FindComponentConfiguration.Params['uid']\n >({\n query: (uid) => `/content-manager/components/${uid}/configuration`,\n transformResponse: (response: FindComponentConfiguration.Response) => response.data,\n providesTags: (_result, _error, uid) => [{ type: 'ComponentConfiguration', id: uid }],\n }),\n updateComponentConfiguration: builder.mutation({\n query: ({ uid, ...body }) => ({\n url: `/content-manager/components/${uid}/configuration`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: UpdateComponentConfiguration.Response) => response.data,\n invalidatesTags: (_result, _error, { uid }) => [\n { type: 'ComponentConfiguration', id: uid },\n // otherwise layouts already fetched will have stale component configuration data.\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n});\n\nconst { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } =\n componentsApi;\n\nexport { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation };\n","import * as React from 'react';\n\nimport { Page, useNotification, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { ComponentsDictionary, extractContentTypeComponents } from '../hooks/useContentTypeSchema';\nimport {\n DEFAULT_SETTINGS,\n EditLayout,\n convertEditLayoutToFieldLayouts,\n} from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport {\n useGetComponentConfigurationQuery,\n useUpdateComponentConfigurationMutation,\n} from '../services/components';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Component, FindComponentConfiguration } from '../../../shared/contracts/components';\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\n/* -------------------------------------------------------------------------------------------------\n * ComponentConfigurationPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComponentConfigurationPage = () => {\n /**\n * useDocumentLayout only works for documents, not components,\n * it feels weird to make that hook work for both when this is SUCH\n * a unique use case and we only do it here, so in short, we essentially\n * just extracted the logic to make an edit view layout and reproduced it here.\n */\n const { slug: model } = useParams<{ slug: string }>();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const {\n components,\n fieldSizes,\n schema,\n error: errorSchema,\n isLoading: isLoadingSchema,\n isFetching: isFetchingSchema,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const schema = res.data?.components.find((ct) => ct.uid === model);\n\n const componentsByKey = res.data?.components.reduce<ComponentsDictionary>(\n (acc, component) => {\n acc[component.uid] = component;\n\n return acc;\n },\n {}\n );\n\n const components = extractContentTypeComponents(schema?.attributes, componentsByKey);\n\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n components,\n schema,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorSchema) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorSchema),\n });\n }\n }, [errorSchema, formatAPIError, toggleNotification]);\n\n const {\n data,\n isLoading: isLoadingConfig,\n isFetching: isFetchingConfig,\n error,\n } = useGetComponentConfigurationQuery(model ?? '');\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n /**\n * you **must** check if we're loading or fetching in case the component gets new props\n * but nothing was unmounted, it then becomes a fetch, not a load.\n */\n const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;\n\n const editLayout = React.useMemo(\n () =>\n data && !isLoading\n ? formatEditLayout(data, { schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, isLoading, schema, components]\n );\n\n const [updateConfiguration] = useUpdateComponentConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (formData) => {\n try {\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(data?.component.metadatas ?? {}).reduce<Metadatas>(\n (acc, [name, { edit, list }]) => {\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ??\n {};\n\n acc[name] = {\n edit: {\n ...edit,\n ...editedMetadata,\n },\n list,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: formData.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: data?.component.layouts.list,\n },\n settings: setIn(formData.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || errorSchema || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${editLayout.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={editLayout}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatEditLayout = (\n data: FindComponentConfiguration.Response['data'],\n { schema, components }: { schema?: Component; components: ComponentsDictionary }\n) => {\n const editAttributes = convertEditLayoutToFieldLayouts(\n data.component.layouts.edit,\n schema?.attributes,\n data.component.metadatas,\n { configurations: data.components, schemas: components }\n );\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.component.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: [editAttributes],\n components: componentEditAttributes,\n metadatas: editMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n settings: {\n ...data.component.settings,\n displayName: schema?.info.displayName,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedComponentConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.componentsConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ComponentConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ComponentConfigurationPage, ProtectedComponentConfigurationPage };\n"],"names":["componentsApi","contentManagerApi","injectEndpoints","endpoints","builder","getComponentConfiguration","query","uid","transformResponse","response","data","providesTags","_result","_error","type","id","updateComponentConfiguration","mutation","body","url","method","invalidatesTags","useGetComponentConfigurationQuery","useUpdateComponentConfigurationMutation","ComponentConfigurationPage","slug","model","useParams","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","components","fieldSizes","schema","error","errorSchema","isLoading","isLoadingSchema","isFetching","isFetchingSchema","useGetInitialDataQuery","undefined","selectFromResult","res","find","ct","componentsByKey","reduce","acc","component","extractContentTypeComponents","attributes","Object","entries","attributeName","default","size","React","useEffect","message","isLoadingConfig","isFetchingConfig","editLayout","useMemo","formatEditLayout","layout","metadatas","options","settings","DEFAULT_SETTINGS","updateConfiguration","handleSubmit","formData","meta","name","edit","list","__temp_key__","_size","_name","editedMetadata","flatMap","row","children","field","layouts","map","TEMP_FIELD_NAME","setIn","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","editAttributes","convertEditLayoutToFieldLayouts","configurations","schemas","componentEditAttributes","configuration","icon","info","editMetadatas","attribute","metadata","pluginOptions","ProtectedComponentConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","componentsConfigurations","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAMA,aAAAA,GAAgBC,iBAAkBC,CAAAA,eAAe,CAAC;IACtDC,SAAW,EAAA,CAACC,WAAa;YACvBC,yBAA2BD,EAAAA,OAAAA,CAAQE,KAAK,CAGtC;AACAA,gBAAAA,KAAAA,EAAO,CAACC,GAAQ,GAAA,CAAC,4BAA4B,EAAEA,GAAAA,CAAI,cAAc,CAAC;gBAClEC,iBAAmB,EAAA,CAACC,QAAkDA,GAAAA,QAAAA,CAASC,IAAI;gBACnFC,YAAc,EAAA,CAACC,OAASC,EAAAA,MAAAA,EAAQN,GAAQ,GAAA;AAAC,wBAAA;4BAAEO,IAAM,EAAA,wBAAA;4BAA0BC,EAAIR,EAAAA;AAAI;AAAE;AACvF,aAAA,CAAA;YACAS,4BAA8BZ,EAAAA,OAAAA,CAAQa,QAAQ,CAAC;AAC7CX,gBAAAA,KAAAA,EAAO,CAAC,EAAEC,GAAG,EAAE,GAAGW,IAAAA,EAAM,IAAM;AAC5BC,wBAAAA,GAAAA,EAAK,CAAC,4BAA4B,EAAEZ,GAAAA,CAAI,cAAc,CAAC;wBACvDa,MAAQ,EAAA,KAAA;wBACRV,IAAMQ,EAAAA;qBACR,CAAA;gBACAV,iBAAmB,EAAA,CAACC,QAAoDA,GAAAA,QAAAA,CAASC,IAAI;AACrFW,gBAAAA,eAAAA,EAAiB,CAACT,OAASC,EAAAA,MAAAA,EAAQ,EAAEN,GAAG,EAAE,GAAK;AAC7C,wBAAA;4BAAEO,IAAM,EAAA,wBAAA;4BAA0BC,EAAIR,EAAAA;AAAI,yBAAA;;AAE1C,wBAAA;4BAAEO,IAAM,EAAA,qBAAA;4BAAuBC,EAAI,EAAA;AAAO;AAC3C;AACH,aAAA;SACF;AACF,CAAA,CAAA;AAEA,MAAM,EAAEO,iCAAiC,EAAEC,uCAAuC,EAAE,GAClFvB,aAAAA;;ACTF;;AAEkG,2GAE5FwB,0BAA6B,GAAA,IAAA;AACjC;;;;;AAKC,MACD,MAAM,EAAEC,IAAMC,EAAAA,KAAK,EAAE,GAAGC,SAAAA,EAAAA;IACxB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;AAEpD,IAAA,MAAM,EACJC,UAAU,EACVC,UAAU,EACVC,MAAM,EACNC,KAAOC,EAAAA,WAAW,EAClBC,SAAAA,EAAWC,eAAe,EAC1BC,UAAAA,EAAYC,gBAAgB,EAC7B,GAAGC,uBAAuBC,SAAW,EAAA;AACpCC,QAAAA,gBAAAA,EAAkB,CAACC,GAAAA,GAAAA;YACjB,MAAMV,MAAAA,GAASU,GAAIrC,CAAAA,IAAI,EAAEyB,UAAAA,CAAWa,KAAK,CAACC,EAAAA,GAAOA,EAAG1C,CAAAA,GAAG,KAAKmB,KAAAA,CAAAA;AAE5D,YAAA,MAAMwB,kBAAkBH,GAAIrC,CAAAA,IAAI,EAAEyB,UAAWgB,CAAAA,MAAAA,CAC3C,CAACC,GAAKC,EAAAA,SAAAA,GAAAA;AACJD,gBAAAA,GAAG,CAACC,SAAAA,CAAU9C,GAAG,CAAC,GAAG8C,SAAAA;gBAErB,OAAOD,GAAAA;AACT,aAAA,EACA,EAAC,CAAA;YAGH,MAAMjB,UAAAA,GAAamB,4BAA6BjB,CAAAA,MAAAA,EAAQkB,UAAYL,EAAAA,eAAAA,CAAAA;YAEpE,MAAMd,UAAAA,GAAaoB,OAAOC,OAAO,CAACV,IAAIrC,IAAI,EAAE0B,cAAc,EAAC,CAAA,CAAGe,MAAM,CAElE,CAACC,KAAK,CAACM,aAAAA,EAAe,EAAEC,OAASC,EAAAA,IAAI,EAAE,CAAC,GAAA;gBACxCR,GAAG,CAACM,cAAc,GAAGE,IAAAA;gBAErB,OAAOR,GAAAA;AACT,aAAA,EAAG,EAAC,CAAA;YAEJ,OAAO;AACLV,gBAAAA,UAAAA,EAAYK,IAAIL,UAAU;AAC1BF,gBAAAA,SAAAA,EAAWO,IAAIP,SAAS;AACxBF,gBAAAA,KAAAA,EAAOS,IAAIT,KAAK;AAChBH,gBAAAA,UAAAA;AACAE,gBAAAA,MAAAA;AACAD,gBAAAA;AACF,aAAA;AACF;AACF,KAAA,CAAA;AAEAyB,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIvB,WAAa,EAAA;YACfX,kBAAmB,CAAA;gBACjBd,IAAM,EAAA,QAAA;AACNiD,gBAAAA,OAAAA,EAAS9B,cAAeM,CAAAA,WAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,WAAAA;AAAaN,QAAAA,cAAAA;AAAgBL,QAAAA;AAAmB,KAAA,CAAA;AAEpD,IAAA,MAAM,EACJlB,IAAI,EACJ8B,SAAAA,EAAWwB,eAAe,EAC1BtB,UAAYuB,EAAAA,gBAAgB,EAC5B3B,KAAK,EACN,GAAGhB,kCAAkCI,KAAS,IAAA,EAAA,CAAA;AAE/CmC,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIxB,KAAO,EAAA;YACTV,kBAAmB,CAAA;gBACjBd,IAAM,EAAA,QAAA;AACNiD,gBAAAA,OAAAA,EAAS9B,cAAeK,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOL,QAAAA,cAAAA;AAAgBL,QAAAA;AAAmB,KAAA,CAAA;AAE9C;;;AAGC,MACD,MAAMY,SAAAA,GAAYwB,eAAmBvB,IAAAA,eAAAA,IAAmBwB,gBAAoBtB,IAAAA,gBAAAA;IAE5E,MAAMuB,UAAAA,GAAaL,MAAMM,OAAO,CAC9B,IACEzD,IAAQ,IAAA,CAAC8B,SACL4B,GAAAA,gBAAAA,CAAiB1D,IAAM,EAAA;AAAE2B,YAAAA,MAAAA;AAAQF,YAAAA;SAChC,CAAA,GAAA;AACCkC,YAAAA,MAAAA,EAAQ,EAAE;AACVlC,YAAAA,UAAAA,EAAY,EAAC;AACbmC,YAAAA,SAAAA,EAAW,EAAC;AACZC,YAAAA,OAAAA,EAAS,EAAC;YACVC,QAAUC,EAAAA;SAElB,EAAA;AAAC/D,QAAAA,IAAAA;AAAM8B,QAAAA,SAAAA;AAAWH,QAAAA,MAAAA;AAAQF,QAAAA;AAAW,KAAA,CAAA;IAGvC,MAAM,CAACuC,oBAAoB,GAAGnD,uCAAAA,EAAAA;AAC9B,IAAA,MAAMoD,eAAmD,OAAOC,QAAAA,GAAAA;QAC9D,IAAI;AACF;;;;UAKA,MAAMC,OAAOrB,MAAOC,CAAAA,OAAO,CAAC/C,IAAM2C,EAAAA,SAAAA,CAAUiB,aAAa,EAAC,CAAA,CAAGnB,MAAM,CACjE,CAACC,KAAK,CAAC0B,IAAAA,EAAM,EAAEC,IAAI,EAAEC,IAAI,EAAE,CAAC,GAAA;AAC1B,gBAAA,MAAM,EACJC,YAAY,EACZrB,IAAAA,EAAMsB,KAAK,EACXJ,IAAMK,EAAAA,KAAK,EACX,GAAGC,cACJ,EAAA,GAAGR,SAASP,MAAM,CAACgB,OAAO,CAAC,CAACC,GAAAA,GAAQA,GAAIC,CAAAA,QAAQ,CAAEvC,CAAAA,IAAI,CAAC,CAACwC,KAAUA,GAAAA,KAAAA,CAAMV,IAAI,KAAKA,SAClF,EAAC;gBAED1B,GAAG,CAAC0B,KAAK,GAAG;oBACVC,IAAM,EAAA;AACJ,wBAAA,GAAGA,IAAI;AACP,wBAAA,GAAGK;AACL,qBAAA;AACAJ,oBAAAA;AACF,iBAAA;gBAEA,OAAO5B,GAAAA;AACT,aAAA,EACA,EAAC,CAAA;YAGH,MAAML,GAAAA,GAAM,MAAM2B,mBAAoB,CAAA;gBACpCe,OAAS,EAAA;AACPV,oBAAAA,IAAAA,EAAMH,SAASP,MAAM,CAACqB,GAAG,CAAC,CAACJ,MACzBA,GAAIC,CAAAA,QAAQ,CAACpC,MAAM,CAAwC,CAACC,GAAAA,EAAK,EAAE0B,IAAI,EAAElB,IAAI,EAAE,GAAA;AAC7E,4BAAA,IAAIkB,SAASa,eAAiB,EAAA;gCAC5B,OAAO;AAAIvC,oCAAAA,GAAAA,GAAAA;AAAK,oCAAA;AAAE0B,wCAAAA,IAAAA;AAAMlB,wCAAAA;AAAK;AAAE,iCAAA;AACjC;4BAEA,OAAOR,GAAAA;AACT,yBAAA,EAAG,EAAE,CAAA,CAAA;oBAEP4B,IAAMtE,EAAAA,IAAAA,EAAM2C,UAAUoC,OAAQT,CAAAA;AAChC,iBAAA;AACAR,gBAAAA,QAAAA,EAAUoB,KAAMhB,CAAAA,QAAAA,CAASJ,QAAQ,EAAE,aAAe3B,EAAAA,SAAAA,CAAAA;gBAClDyB,SAAWO,EAAAA,IAAAA;gBACXtE,GAAKmB,EAAAA;AACP,aAAA,CAAA;AAEA,YAAA,IAAI,UAAUqB,GAAK,EAAA;gBACjBnB,kBAAmB,CAAA;oBACjBd,IAAM,EAAA,SAAA;AACNiD,oBAAAA,OAAAA,EAASjC,aAAc,CAAA;wBAAEf,EAAI,EAAA,4BAAA;wBAA8B8E,cAAgB,EAAA;AAAQ,qBAAA;AACrF,iBAAA,CAAA;aACK,MAAA;gBACLjE,kBAAmB,CAAA;oBACjBd,IAAM,EAAA,QAAA;oBACNiD,OAAS9B,EAAAA,cAAAA,CAAec,IAAIT,KAAK;AACnC,iBAAA,CAAA;AACF;AACF,SAAA,CAAE,OAAM;YACNV,kBAAmB,CAAA;gBACjBd,IAAM,EAAA,QAAA;AACNiD,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;oBAAEf,EAAI,EAAA,oBAAA;oBAAsB8E,cAAgB,EAAA;AAAoB,iBAAA;AACzF,aAAA,CAAA;AACF;AACF,KAAA;AAEA,IAAA,IAAIrD,SAAW,EAAA;QACb,qBAAOsD,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,IAAI1D,KAAAA,IAASC,WAAe,IAAA,CAACF,MAAQ,EAAA;QACnC,qBAAOyD,GAAA,CAACC,KAAKE,KAAK,EAAA,EAAA,CAAA;AACpB;IAEA,qBACEC,IAAA,CAAAC,QAAA,EAAA;;AACE,0BAAAL,GAAA,CAACC,KAAKK,KAAK,EAAA;0BAAE,CAAC,UAAU,EAAElC,UAAWM,CAAAA,QAAQ,CAAC6B,WAAW,CAAC,UAAU;;0BACpEP,GAACQ,CAAAA,iBAAAA,EAAAA;gBACCC,QAAU5B,EAAAA,YAAAA;AACVpB,gBAAAA,UAAAA,EAAYlB,OAAOkB,UAAU;gBAC7BnB,UAAYA,EAAAA,UAAAA;gBACZiC,MAAQH,EAAAA;;;;AAIhB;AAEA;;qGAIA,MAAME,mBAAmB,CACvB1D,IAAAA,EACA,EAAE2B,MAAM,EAAEF,UAAU,EAA4D,GAAA;AAEhF,IAAA,MAAMqE,cAAiBC,GAAAA,+BAAAA,CACrB/F,IAAK2C,CAAAA,SAAS,CAACoC,OAAO,CAACV,IAAI,EAC3B1C,QAAQkB,UACR7C,EAAAA,IAAAA,CAAK2C,SAAS,CAACiB,SAAS,EACxB;AAAEoC,QAAAA,cAAAA,EAAgBhG,KAAKyB,UAAU;QAAEwE,OAASxE,EAAAA;AAAW,KAAA,CAAA;AAGzD,IAAA,MAAMyE,uBAA0BpD,GAAAA,MAAAA,CAAOC,OAAO,CAAC/C,IAAKyB,CAAAA,UAAU,CAAEgB,CAAAA,MAAM,CACpE,CAACC,GAAK,EAAA,CAAC7C,KAAKsG,aAAc,CAAA,GAAA;QACxBzD,GAAG,CAAC7C,IAAI,GAAG;AACT8D,YAAAA,MAAAA,EAAQoC,+BACNI,CAAAA,aAAAA,CAAcpB,OAAO,CAACV,IAAI,EAC1B5C,UAAU,CAAC5B,GAAI,CAAA,CAACgD,UAAU,EAC1BsD,cAAcvC,SAAS,CAAA;YAEzBE,QAAU,EAAA;AACR,gBAAA,GAAGqC,cAAcrC,QAAQ;AACzBsC,gBAAAA,IAAAA,EAAM3E,UAAU,CAAC5B,GAAAA,CAAI,CAACwG,IAAI,CAACD,IAAI;AAC/BT,gBAAAA,WAAAA,EAAalE,UAAU,CAAC5B,GAAAA,CAAI,CAACwG,IAAI,CAACV;AACpC;AACF,SAAA;QACA,OAAOjD,GAAAA;AACT,KAAA,EACA,EAAC,CAAA;AAGH,IAAA,MAAM4D,aAAgBxD,GAAAA,MAAAA,CAAOC,OAAO,CAAC/C,KAAK2C,SAAS,CAACiB,SAAS,CAAA,CAAEnB,MAAM,CACnE,CAACC,GAAK,EAAA,CAAC6D,WAAWC,QAAS,CAAA,GAAA;QACzB,OAAO;AACL,YAAA,GAAG9D,GAAG;YACN,CAAC6D,SAAAA,GAAYC,QAAAA,CAASnC;AACxB,SAAA;AACF,KAAA,EACA,EAAC,CAAA;IAGH,OAAO;QACLV,MAAQ,EAAA;AAACmC,YAAAA;AAAe,SAAA;QACxBrE,UAAYyE,EAAAA,uBAAAA;QACZtC,SAAW0C,EAAAA,aAAAA;QACXzC,OAAS,EAAA;AACP,YAAA,GAAGlC,QAAQkC,OAAO;AAClB,YAAA,GAAGlC,QAAQ8E;AACb,SAAA;QACA3C,QAAU,EAAA;YACR,GAAG9D,IAAAA,CAAK2C,SAAS,CAACmB,QAAQ;AAC1B6B,YAAAA,WAAAA,EAAahE,QAAQ0E,IAAKV,CAAAA;AAC5B;AACF,KAAA;AACF,CAAA;AAEA;;AAEkG,2GAE5Fe,mCAAsC,GAAA,IAAA;IAC1C,MAAMC,WAAAA,GAAcC,gBAClB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACI,cAAc,EAAEC,wBAAAA,CAAAA;IAGzD,qBACE5B,GAAA,CAACC,KAAK4B,OAAO,EAAA;QAACN,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAvB,GAACtE,CAAAA,0BAAAA,EAAAA,EAAAA;;AAGP;;;;"}
1
+ {"version":3,"file":"ComponentConfigurationPage-w_ss7xEy.mjs","sources":["../../../admin/src/services/components.ts","../../../admin/src/pages/ComponentConfigurationPage.tsx"],"sourcesContent":["import { contentManagerApi } from './api';\n\nimport type {\n FindComponentConfiguration,\n UpdateComponentConfiguration,\n} from '../../../shared/contracts/components';\n\nconst componentsApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getComponentConfiguration: builder.query<\n FindComponentConfiguration.Response['data'],\n FindComponentConfiguration.Params['uid']\n >({\n query: (uid) => `/content-manager/components/${uid}/configuration`,\n transformResponse: (response: FindComponentConfiguration.Response) => response.data,\n providesTags: (_result, _error, uid) => [{ type: 'ComponentConfiguration', id: uid }],\n }),\n updateComponentConfiguration: builder.mutation({\n query: ({ uid, ...body }) => ({\n url: `/content-manager/components/${uid}/configuration`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: UpdateComponentConfiguration.Response) => response.data,\n invalidatesTags: (_result, _error, { uid }) => [\n { type: 'ComponentConfiguration', id: uid },\n // otherwise layouts already fetched will have stale component configuration data.\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n});\n\nconst { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } =\n componentsApi;\n\nexport { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation };\n","import * as React from 'react';\n\nimport { Page, useNotification, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { ComponentsDictionary, extractContentTypeComponents } from '../hooks/useContentTypeSchema';\nimport {\n DEFAULT_SETTINGS,\n EditLayout,\n convertEditLayoutToFieldLayouts,\n} from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport {\n useGetComponentConfigurationQuery,\n useUpdateComponentConfigurationMutation,\n} from '../services/components';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Component, FindComponentConfiguration } from '../../../shared/contracts/components';\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\n/* -------------------------------------------------------------------------------------------------\n * ComponentConfigurationPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComponentConfigurationPage = () => {\n /**\n * useDocumentLayout only works for documents, not components,\n * it feels weird to make that hook work for both when this is SUCH\n * a unique use case and we only do it here, so in short, we essentially\n * just extracted the logic to make an edit view layout and reproduced it here.\n */\n const { slug: model } = useParams<{ slug: string }>();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const {\n components,\n fieldSizes,\n schema,\n error: errorSchema,\n isLoading: isLoadingSchema,\n isFetching: isFetchingSchema,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const schema = res.data?.components.find((ct) => ct.uid === model);\n\n const componentsByKey = res.data?.components.reduce<ComponentsDictionary>(\n (acc, component) => {\n acc[component.uid] = component;\n\n return acc;\n },\n {}\n );\n\n const components = extractContentTypeComponents(schema?.attributes, componentsByKey);\n\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n components,\n schema,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorSchema) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorSchema),\n });\n }\n }, [errorSchema, formatAPIError, toggleNotification]);\n\n const {\n data,\n isLoading: isLoadingConfig,\n isFetching: isFetchingConfig,\n error,\n } = useGetComponentConfigurationQuery(model ?? '');\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n /**\n * you **must** check if we're loading or fetching in case the component gets new props\n * but nothing was unmounted, it then becomes a fetch, not a load.\n */\n const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;\n\n const editLayout = React.useMemo(\n () =>\n data && !isLoading\n ? formatEditLayout(data, { schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, isLoading, schema, components]\n );\n\n const [updateConfiguration] = useUpdateComponentConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (formData) => {\n try {\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(data?.component.metadatas ?? {}).reduce<Metadatas>(\n (acc, [name, { edit, list }]) => {\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ??\n {};\n\n acc[name] = {\n edit: {\n ...edit,\n ...editedMetadata,\n },\n list,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: formData.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: data?.component.layouts.list,\n },\n settings: setIn(formData.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || errorSchema || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${editLayout.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={editLayout}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatEditLayout = (\n data: FindComponentConfiguration.Response['data'],\n { schema, components }: { schema?: Component; components: ComponentsDictionary }\n) => {\n const editAttributes = convertEditLayoutToFieldLayouts(\n data.component.layouts.edit,\n schema?.attributes,\n data.component.metadatas,\n { configurations: data.components, schemas: components }\n );\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.component.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: [editAttributes],\n components: componentEditAttributes,\n metadatas: editMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n settings: {\n ...data.component.settings,\n displayName: schema?.info.displayName,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedComponentConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.componentsConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ComponentConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ComponentConfigurationPage, ProtectedComponentConfigurationPage };\n"],"names":["componentsApi","contentManagerApi","injectEndpoints","endpoints","builder","getComponentConfiguration","query","uid","transformResponse","response","data","providesTags","_result","_error","type","id","updateComponentConfiguration","mutation","body","url","method","invalidatesTags","useGetComponentConfigurationQuery","useUpdateComponentConfigurationMutation","ComponentConfigurationPage","slug","model","useParams","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","components","fieldSizes","schema","error","errorSchema","isLoading","isLoadingSchema","isFetching","isFetchingSchema","useGetInitialDataQuery","undefined","selectFromResult","res","find","ct","componentsByKey","reduce","acc","component","extractContentTypeComponents","attributes","Object","entries","attributeName","default","size","React","useEffect","message","isLoadingConfig","isFetchingConfig","editLayout","useMemo","formatEditLayout","layout","metadatas","options","settings","DEFAULT_SETTINGS","updateConfiguration","handleSubmit","formData","meta","name","edit","list","__temp_key__","_size","_name","editedMetadata","flatMap","row","children","field","layouts","map","TEMP_FIELD_NAME","setIn","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","editAttributes","convertEditLayoutToFieldLayouts","configurations","schemas","componentEditAttributes","configuration","icon","info","editMetadatas","attribute","metadata","pluginOptions","ProtectedComponentConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","componentsConfigurations","Protect"],"mappings":"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"}
@@ -4,10 +4,10 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var reactIntl = require('react-intl');
7
- var Form = require('./Form-DD49gSWW.js');
8
- var index = require('./index-CGBB9Dho.js');
7
+ var Form = require('./Form-UMrizqJP.js');
8
+ var index = require('./index-BA_JLxKS.js');
9
9
  var hooks = require('./hooks-D-sOYd1s.js');
10
- var objects = require('./objects-C3EebVVe.js');
10
+ var objects = require('./objects-BJTP843m.js');
11
11
  require('@strapi/design-system');
12
12
  require('fractional-indexing');
13
13
  require('lodash/fp/pipe');
@@ -15,8 +15,6 @@ require('@strapi/icons');
15
15
  require('react-dnd-html5-backend');
16
16
  require('react-router-dom');
17
17
  require('styled-components');
18
- require('./useDragAndDrop-gcqEJMnO.js');
19
- require('react-dnd');
20
18
  require('./ComponentIcon-C-EjOUPA.js');
21
19
  require('@strapi/icons/symbols');
22
20
  require('yup');
@@ -27,6 +25,7 @@ require('date-fns');
27
25
  require('@reduxjs/toolkit');
28
26
  require('prismjs');
29
27
  require('react-redux');
28
+ require('react-dnd');
30
29
  require('lodash/clone');
31
30
  require('lodash/toPath');
32
31
 
@@ -178,4 +177,4 @@ const ProtectedEditConfigurationPage = ()=>{
178
177
 
179
178
  exports.EditConfigurationPage = EditConfigurationPage;
180
179
  exports.ProtectedEditConfigurationPage = ProtectedEditConfigurationPage;
181
- //# sourceMappingURL=EditConfigurationPage-Cu0Vt-uc.js.map
180
+ //# sourceMappingURL=EditConfigurationPage-CbAhYSyH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditConfigurationPage-Cu0Vt-uc.js","sources":["../../../admin/src/pages/EditConfigurationPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useTracking, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { useDoc } from '../hooks/useDocument';\nimport { useDocLayout } from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport { useUpdateContentTypeConfigurationMutation } from '../services/contentTypes';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\nconst EditConfigurationPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { isLoading: isLoadingSchema, schema, model } = useDoc();\n const { isLoading: isLoadingLayout, error, list, edit } = useDocLayout();\n\n const {\n fieldSizes,\n error: errorFieldSizes,\n isLoading: isLoadingFieldSizes,\n isFetching: isFetchingFieldSizes,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorFieldSizes) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorFieldSizes),\n });\n }\n }, [errorFieldSizes, formatAPIError, toggleNotification]);\n\n const isLoading =\n isLoadingSchema || isLoadingLayout || isLoadingFieldSizes || isFetchingFieldSizes;\n\n const [updateConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(list.metadatas).reduce<Metadatas>(\n (acc, [name, { mainField: _mainField, ...listMeta }]) => {\n const existingEditMeta = edit.metadatas[name];\n\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = data.layout.flatMap((row) => row.children).find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: {\n ...existingEditMeta,\n ...editedMetadata,\n },\n list: listMeta,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: data.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: list.layout.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditEditSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (errorFieldSizes || error || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${edit.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={edit}\n />\n </>\n );\n};\n\nconst ProtectedEditConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditConfigurationPage, EditConfigurationPage };\n"],"names":["EditConfigurationPage","trackUsage","useTracking","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isLoading","isLoadingSchema","schema","model","useDoc","isLoadingLayout","error","list","edit","useDocLayout","fieldSizes","errorFieldSizes","isLoadingFieldSizes","isFetching","isFetchingFieldSizes","useGetInitialDataQuery","undefined","selectFromResult","res","Object","entries","data","reduce","acc","attributeName","default","size","React","useEffect","type","message","updateConfiguration","useUpdateContentTypeConfigurationMutation","handleSubmit","meta","metadatas","name","mainField","_mainField","listMeta","existingEditMeta","__temp_key__","_size","_name","editedMetadata","layout","flatMap","row","children","find","field","layouts","map","TEMP_FIELD_NAME","settings","setIn","uid","id","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","attributes","ProtectedEditConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","collectionTypesConfigurations","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"EditConfigurationPage-CbAhYSyH.js","sources":["../../../admin/src/pages/EditConfigurationPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useTracking, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { useDoc } from '../hooks/useDocument';\nimport { useDocLayout } from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport { useUpdateContentTypeConfigurationMutation } from '../services/contentTypes';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\nconst EditConfigurationPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { isLoading: isLoadingSchema, schema, model } = useDoc();\n const { isLoading: isLoadingLayout, error, list, edit } = useDocLayout();\n\n const {\n fieldSizes,\n error: errorFieldSizes,\n isLoading: isLoadingFieldSizes,\n isFetching: isFetchingFieldSizes,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorFieldSizes) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorFieldSizes),\n });\n }\n }, [errorFieldSizes, formatAPIError, toggleNotification]);\n\n const isLoading =\n isLoadingSchema || isLoadingLayout || isLoadingFieldSizes || isFetchingFieldSizes;\n\n const [updateConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(list.metadatas).reduce<Metadatas>(\n (acc, [name, { mainField: _mainField, ...listMeta }]) => {\n const existingEditMeta = edit.metadatas[name];\n\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = data.layout.flatMap((row) => row.children).find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: {\n ...existingEditMeta,\n ...editedMetadata,\n },\n list: listMeta,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: data.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: list.layout.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditEditSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (errorFieldSizes || error || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${edit.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={edit}\n />\n </>\n );\n};\n\nconst ProtectedEditConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditConfigurationPage, EditConfigurationPage };\n"],"names":["EditConfigurationPage","trackUsage","useTracking","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isLoading","isLoadingSchema","schema","model","useDoc","isLoadingLayout","error","list","edit","useDocLayout","fieldSizes","errorFieldSizes","isLoadingFieldSizes","isFetching","isFetchingFieldSizes","useGetInitialDataQuery","undefined","selectFromResult","res","Object","entries","data","reduce","acc","attributeName","default","size","React","useEffect","type","message","updateConfiguration","useUpdateContentTypeConfigurationMutation","handleSubmit","meta","metadatas","name","mainField","_mainField","listMeta","existingEditMeta","__temp_key__","_size","_name","editedMetadata","layout","flatMap","row","children","find","field","layouts","map","TEMP_FIELD_NAME","settings","setIn","uid","id","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","attributes","ProtectedEditConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","collectionTypesConfigurations","Protect"],"mappings":"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"}
@@ -2,10 +2,10 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useTracking, useNotification, useAPIErrorHandler, Page } from '@strapi/admin/strapi-admin';
4
4
  import { useIntl } from 'react-intl';
5
- import { C as ConfigurationForm, T as TEMP_FIELD_NAME } from './Form-rQQtxfmF.mjs';
6
- import { c as useDoc, m as useDocLayout, a as useGetInitialDataQuery, A as useUpdateContentTypeConfigurationMutation } from './index-BkM_Z7pU.mjs';
5
+ import { C as ConfigurationForm, T as TEMP_FIELD_NAME } from './Form-DsvK3WTh.mjs';
6
+ import { m as useDoc, G as useDocLayout, a as useGetInitialDataQuery, J as useUpdateContentTypeConfigurationMutation } from './index-CIOT3ggy.mjs';
7
7
  import { u as useTypedSelector } from './hooks-DMvik5y_.mjs';
8
- import { s as setIn } from './objects-wl73iEma.mjs';
8
+ import { s as setIn } from './objects-D2z-IJgu.mjs';
9
9
  import '@strapi/design-system';
10
10
  import 'fractional-indexing';
11
11
  import 'lodash/fp/pipe';
@@ -13,8 +13,6 @@ import '@strapi/icons';
13
13
  import 'react-dnd-html5-backend';
14
14
  import 'react-router-dom';
15
15
  import 'styled-components';
16
- import './useDragAndDrop-HYwNDExe.mjs';
17
- import 'react-dnd';
18
16
  import './ComponentIcon-BZcTc4rj.mjs';
19
17
  import '@strapi/icons/symbols';
20
18
  import 'yup';
@@ -25,6 +23,7 @@ import 'date-fns';
25
23
  import '@reduxjs/toolkit';
26
24
  import 'prismjs';
27
25
  import 'react-redux';
26
+ import 'react-dnd';
28
27
  import 'lodash/clone';
29
28
  import 'lodash/toPath';
30
29
 
@@ -156,4 +155,4 @@ const ProtectedEditConfigurationPage = ()=>{
156
155
  };
157
156
 
158
157
  export { EditConfigurationPage, ProtectedEditConfigurationPage };
159
- //# sourceMappingURL=EditConfigurationPage-CoivzF-x.mjs.map
158
+ //# sourceMappingURL=EditConfigurationPage-D1iHIzSR.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditConfigurationPage-CoivzF-x.mjs","sources":["../../../admin/src/pages/EditConfigurationPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useTracking, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { useDoc } from '../hooks/useDocument';\nimport { useDocLayout } from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport { useUpdateContentTypeConfigurationMutation } from '../services/contentTypes';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\nconst EditConfigurationPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { isLoading: isLoadingSchema, schema, model } = useDoc();\n const { isLoading: isLoadingLayout, error, list, edit } = useDocLayout();\n\n const {\n fieldSizes,\n error: errorFieldSizes,\n isLoading: isLoadingFieldSizes,\n isFetching: isFetchingFieldSizes,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorFieldSizes) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorFieldSizes),\n });\n }\n }, [errorFieldSizes, formatAPIError, toggleNotification]);\n\n const isLoading =\n isLoadingSchema || isLoadingLayout || isLoadingFieldSizes || isFetchingFieldSizes;\n\n const [updateConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(list.metadatas).reduce<Metadatas>(\n (acc, [name, { mainField: _mainField, ...listMeta }]) => {\n const existingEditMeta = edit.metadatas[name];\n\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = data.layout.flatMap((row) => row.children).find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: {\n ...existingEditMeta,\n ...editedMetadata,\n },\n list: listMeta,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: data.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: list.layout.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditEditSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (errorFieldSizes || error || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${edit.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={edit}\n />\n </>\n );\n};\n\nconst ProtectedEditConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditConfigurationPage, EditConfigurationPage };\n"],"names":["EditConfigurationPage","trackUsage","useTracking","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isLoading","isLoadingSchema","schema","model","useDoc","isLoadingLayout","error","list","edit","useDocLayout","fieldSizes","errorFieldSizes","isLoadingFieldSizes","isFetching","isFetchingFieldSizes","useGetInitialDataQuery","undefined","selectFromResult","res","Object","entries","data","reduce","acc","attributeName","default","size","React","useEffect","type","message","updateConfiguration","useUpdateContentTypeConfigurationMutation","handleSubmit","meta","metadatas","name","mainField","_mainField","listMeta","existingEditMeta","__temp_key__","_size","_name","editedMetadata","layout","flatMap","row","children","find","field","layouts","map","TEMP_FIELD_NAME","settings","setIn","uid","id","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","attributes","ProtectedEditConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","collectionTypesConfigurations","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"EditConfigurationPage-D1iHIzSR.mjs","sources":["../../../admin/src/pages/EditConfigurationPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useTracking, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { useDoc } from '../hooks/useDocument';\nimport { useDocLayout } from '../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../modules/hooks';\nimport { useUpdateContentTypeConfigurationMutation } from '../services/contentTypes';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { setIn } from '../utils/objects';\n\nimport type { Metadatas } from '../../../shared/contracts/content-types';\n\nconst EditConfigurationPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { isLoading: isLoadingSchema, schema, model } = useDoc();\n const { isLoading: isLoadingLayout, error, list, edit } = useDocLayout();\n\n const {\n fieldSizes,\n error: errorFieldSizes,\n isLoading: isLoadingFieldSizes,\n isFetching: isFetchingFieldSizes,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorFieldSizes) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorFieldSizes),\n });\n }\n }, [errorFieldSizes, formatAPIError, toggleNotification]);\n\n const isLoading =\n isLoadingSchema || isLoadingLayout || isLoadingFieldSizes || isFetchingFieldSizes;\n\n const [updateConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(list.metadatas).reduce<Metadatas>(\n (acc, [name, { mainField: _mainField, ...listMeta }]) => {\n const existingEditMeta = edit.metadatas[name];\n\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = data.layout.flatMap((row) => row.children).find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: {\n ...existingEditMeta,\n ...editedMetadata,\n },\n list: listMeta,\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateConfiguration({\n layouts: {\n edit: data.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: list.layout.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditEditSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (errorFieldSizes || error || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Page.Title>{`Configure ${edit.settings.displayName} Edit View`}</Page.Title>\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={edit}\n />\n </>\n );\n};\n\nconst ProtectedEditConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditConfigurationPage, EditConfigurationPage };\n"],"names":["EditConfigurationPage","trackUsage","useTracking","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isLoading","isLoadingSchema","schema","model","useDoc","isLoadingLayout","error","list","edit","useDocLayout","fieldSizes","errorFieldSizes","isLoadingFieldSizes","isFetching","isFetchingFieldSizes","useGetInitialDataQuery","undefined","selectFromResult","res","Object","entries","data","reduce","acc","attributeName","default","size","React","useEffect","type","message","updateConfiguration","useUpdateContentTypeConfigurationMutation","handleSubmit","meta","metadatas","name","mainField","_mainField","listMeta","existingEditMeta","__temp_key__","_size","_name","editedMetadata","layout","flatMap","row","children","find","field","layouts","map","TEMP_FIELD_NAME","settings","setIn","uid","id","defaultMessage","_jsx","Page","Loading","Error","_jsxs","_Fragment","Title","displayName","ConfigurationForm","onSubmit","attributes","ProtectedEditConfigurationPage","permissions","useTypedSelector","state","admin_app","contentManager","collectionTypesConfigurations","Protect"],"mappings":"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"}