@strapi/content-manager 5.10.4 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-Cgjg4CQj.js → ComponentConfigurationPage-BBCYsnnE.js} +3 -3
  2. package/dist/admin/chunks/{ComponentConfigurationPage-Cgjg4CQj.js.map → ComponentConfigurationPage-BBCYsnnE.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-D6mjS3eX.mjs → ComponentConfigurationPage-DNBN8tI3.mjs} +3 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-D6mjS3eX.mjs.map → ComponentConfigurationPage-DNBN8tI3.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-DSSrKbwM.mjs → EditConfigurationPage-CoivzF-x.mjs} +3 -3
  6. package/dist/admin/chunks/{EditConfigurationPage-DSSrKbwM.mjs.map → EditConfigurationPage-CoivzF-x.mjs.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-C5E6D6NI.js → EditConfigurationPage-Cu0Vt-uc.js} +3 -3
  8. package/dist/admin/chunks/{EditConfigurationPage-C5E6D6NI.js.map → EditConfigurationPage-Cu0Vt-uc.js.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-Cyt_AqcH.js → EditViewPage-B48r4DLX.js} +5 -5
  10. package/dist/admin/chunks/{EditViewPage-Cyt_AqcH.js.map → EditViewPage-B48r4DLX.js.map} +1 -1
  11. package/dist/admin/chunks/{EditViewPage-B9oaTSxh.mjs → EditViewPage-BpGtaOKG.mjs} +5 -5
  12. package/dist/admin/chunks/{EditViewPage-B9oaTSxh.mjs.map → EditViewPage-BpGtaOKG.mjs.map} +1 -1
  13. package/dist/admin/chunks/{Form-BynZsnG8.js → Form-DD49gSWW.js} +2 -2
  14. package/dist/admin/chunks/{Form-BynZsnG8.js.map → Form-DD49gSWW.js.map} +1 -1
  15. package/dist/admin/chunks/{Form-CiDhWFF2.mjs → Form-rQQtxfmF.mjs} +2 -2
  16. package/dist/admin/chunks/{Form-CiDhWFF2.mjs.map → Form-rQQtxfmF.mjs.map} +1 -1
  17. package/dist/admin/chunks/{History-BIzCrHlU.mjs → History-BdsTgpW-.mjs} +5 -5
  18. package/dist/admin/chunks/{History-BIzCrHlU.mjs.map → History-BdsTgpW-.mjs.map} +1 -1
  19. package/dist/admin/chunks/{History-D8x3KfXk.js → History-RLJ9Svg6.js} +5 -5
  20. package/dist/admin/chunks/{History-D8x3KfXk.js.map → History-RLJ9Svg6.js.map} +1 -1
  21. package/dist/admin/chunks/{Input-Cx7glRRR.js → Input-BUVu6H9n.js} +4 -4
  22. package/dist/admin/chunks/{Input-Cx7glRRR.js.map → Input-BUVu6H9n.js.map} +1 -1
  23. package/dist/admin/chunks/{Input-BrTcf7W8.mjs → Input-CtIJ2J0c.mjs} +4 -4
  24. package/dist/admin/chunks/{Input-BrTcf7W8.mjs.map → Input-CtIJ2J0c.mjs.map} +1 -1
  25. package/dist/admin/chunks/{ListConfigurationPage-JWHsiJKb.mjs → ListConfigurationPage-38s4e-VJ.mjs} +2 -2
  26. package/dist/admin/chunks/{ListConfigurationPage-JWHsiJKb.mjs.map → ListConfigurationPage-38s4e-VJ.mjs.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-C1HEB6A1.js → ListConfigurationPage-DfnrA3dw.js} +2 -2
  28. package/dist/admin/chunks/{ListConfigurationPage-C1HEB6A1.js.map → ListConfigurationPage-DfnrA3dw.js.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-lpuA2rS8.mjs → ListViewPage-BTmlktgT.mjs} +3 -3
  30. package/dist/admin/chunks/{ListViewPage-lpuA2rS8.mjs.map → ListViewPage-BTmlktgT.mjs.map} +1 -1
  31. package/dist/admin/chunks/{ListViewPage-38RhQMrO.js → ListViewPage-D9-LGPq_.js} +3 -3
  32. package/dist/admin/chunks/{ListViewPage-38RhQMrO.js.map → ListViewPage-D9-LGPq_.js.map} +1 -1
  33. package/dist/admin/chunks/{NoContentTypePage-mxdu7QG9.mjs → NoContentTypePage-CcyR2i1K.mjs} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-mxdu7QG9.mjs.map → NoContentTypePage-CcyR2i1K.mjs.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-q48fU1h9.js → NoContentTypePage-owzdv-pl.js} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-q48fU1h9.js.map → NoContentTypePage-owzdv-pl.js.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-B_p7s1uj.js → NoPermissionsPage-CM_r8w5u.js} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-B_p7s1uj.js.map → NoPermissionsPage-CM_r8w5u.js.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-CihsLbNC.mjs → NoPermissionsPage-lBonAXej.mjs} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-CihsLbNC.mjs.map → NoPermissionsPage-lBonAXej.mjs.map} +1 -1
  41. package/dist/admin/chunks/{Preview-CMoqDEKI.js → Preview-Bv3GKyWZ.js} +90 -85
  42. package/dist/admin/chunks/Preview-Bv3GKyWZ.js.map +1 -0
  43. package/dist/admin/chunks/{Preview-DGQMt8XZ.mjs → Preview-Dh5Z7aGp.mjs} +92 -87
  44. package/dist/admin/chunks/Preview-Dh5Z7aGp.mjs.map +1 -0
  45. package/dist/admin/chunks/{Relations-BemEu63h.mjs → Relations-DP5krCGC.mjs} +3 -3
  46. package/dist/admin/chunks/{Relations-BemEu63h.mjs.map → Relations-DP5krCGC.mjs.map} +1 -1
  47. package/dist/admin/chunks/{Relations-BtC_Gort.js → Relations-T8Cr0N9M.js} +3 -3
  48. package/dist/admin/chunks/{Relations-BtC_Gort.js.map → Relations-T8Cr0N9M.js.map} +1 -1
  49. package/dist/admin/chunks/{index-njcS3gUl.mjs → index-BkM_Z7pU.mjs} +23 -16
  50. package/dist/admin/chunks/index-BkM_Z7pU.mjs.map +1 -0
  51. package/dist/admin/chunks/{index-D7EkCTnw.js → index-CGBB9Dho.js} +23 -16
  52. package/dist/admin/chunks/index-CGBB9Dho.js.map +1 -0
  53. package/dist/admin/chunks/{layout-os6F94Aa.mjs → layout-D8ji6QNJ.mjs} +4 -4
  54. package/dist/admin/chunks/{layout-os6F94Aa.mjs.map → layout-D8ji6QNJ.mjs.map} +1 -1
  55. package/dist/admin/chunks/{layout-Ccv9FwbI.js → layout-Dbmjk7mC.js} +4 -4
  56. package/dist/admin/chunks/{layout-Ccv9FwbI.js.map → layout-Dbmjk7mC.js.map} +1 -1
  57. package/dist/admin/chunks/{relations-De8hSklO.mjs → relations-Dv0FHoBS.mjs} +2 -2
  58. package/dist/admin/chunks/{relations-De8hSklO.mjs.map → relations-Dv0FHoBS.mjs.map} +1 -1
  59. package/dist/admin/chunks/{relations-iguhDgFp.js → relations-jNJK8ESO.js} +2 -2
  60. package/dist/admin/chunks/{relations-iguhDgFp.js.map → relations-jNJK8ESO.js.map} +1 -1
  61. package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
  62. package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
  63. package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
  64. package/dist/admin/chunks/uk-DB6OgySY.js.map +1 -0
  65. package/dist/admin/index.js +1 -1
  66. package/dist/admin/index.mjs +1 -1
  67. package/dist/admin/src/content-manager.d.ts +1 -0
  68. package/dist/admin/src/hooks/useDocument.d.ts +2 -0
  69. package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
  70. package/dist/admin/src/preview/pages/Preview.d.ts +2 -0
  71. package/package.json +8 -8
  72. package/dist/admin/chunks/Preview-CMoqDEKI.js.map +0 -1
  73. package/dist/admin/chunks/Preview-DGQMt8XZ.mjs.map +0 -1
  74. package/dist/admin/chunks/index-D7EkCTnw.js.map +0 -1
  75. package/dist/admin/chunks/index-njcS3gUl.mjs.map +0 -1
  76. package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
  77. package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
  78. package/dist/admin/chunks/uk-Cpgmm7gE.mjs +0 -140
  79. package/dist/admin/chunks/uk-Cpgmm7gE.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EditViewPage-B9oaTSxh.mjs","sources":["../../../admin/src/hooks/useOnce.ts","../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\nexport const useOnce = (effect: React.EffectCallback) => React.useEffect(effect, emptyDeps);\n\nconst emptyDeps: React.DependencyList = [];\n","import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDoc } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = useDoc();\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues || hasError) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["useOnce","effect","React","useEffect","emptyDeps","EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","useDoc","hasDraftAndPublished","options","draftAndPublish","state","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","isLazyLoading","useLazyComponents","initialValues","documentId","_jsx","Page","Loading","Error","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","Form","disabled","method","validate","initialErrors","forceValidation","resetForm","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","FormLayout","Panels","Blocker","onProceed","styled","Trigger","docStatus","statuses","find","doc","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"EditViewPage-BpGtaOKG.mjs","sources":["../../../admin/src/hooks/useOnce.ts","../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\nexport const useOnce = (effect: React.EffectCallback) => React.useEffect(effect, emptyDeps);\n\nconst emptyDeps: React.DependencyList = [];\n","import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDoc } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = useDoc();\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues || hasError) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["useOnce","effect","React","useEffect","emptyDeps","EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","useDoc","hasDraftAndPublished","options","draftAndPublish","state","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","isLazyLoading","useLazyComponents","initialValues","documentId","_jsx","Page","Loading","Error","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","Form","disabled","method","validate","initialErrors","forceValidation","resetForm","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","FormLayout","Panels","Blocker","onProceed","styled","Trigger","docStatus","statuses","find","doc","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -7,7 +7,7 @@ var designSystem = require('@strapi/design-system');
7
7
  var fractionalIndexing = require('fractional-indexing');
8
8
  var pipe = require('lodash/fp/pipe');
9
9
  var reactIntl = require('react-intl');
10
- var index = require('./index-D7EkCTnw.js');
10
+ var index = require('./index-CGBB9Dho.js');
11
11
  var Icons = require('@strapi/icons');
12
12
  var reactDndHtml5Backend = require('react-dnd-html5-backend');
13
13
  var reactRouterDom = require('react-router-dom');
@@ -975,4 +975,4 @@ const Header = ({ name })=>{
975
975
 
976
976
  exports.ConfigurationForm = ConfigurationForm;
977
977
  exports.TEMP_FIELD_NAME = TEMP_FIELD_NAME;
978
- //# sourceMappingURL=Form-BynZsnG8.js.map
978
+ //# sourceMappingURL=Form-DD49gSWW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form-BynZsnG8.js","sources":["../../../admin/src/components/ConfigurationForm/EditFieldForm.tsx","../../../admin/src/components/ConfigurationForm/Fields.tsx","../../../admin/src/components/ConfigurationForm/Form.tsx"],"sourcesContent":["import {\n useNotification,\n InputRenderer,\n Form,\n InputProps,\n useField,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Grid, Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD } from '../../constants/attributes';\nimport { useGetInitialDataQuery } from '../../services/init';\nimport { capitalise } from '../../utils/strings';\nimport { getTranslation } from '../../utils/translations';\nimport { FieldTypeIcon } from '../FieldTypeIcon';\n\nimport { TEMP_FIELD_NAME } from './Fields';\n\nimport type { ConfigurationFormData } from './Form';\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Constants\n * -----------------------------------------------------------------------------------------------*/\n\nconst FIELD_SCHEMA = yup.object().shape({\n label: yup.string().required().nullable(),\n description: yup.string(),\n editable: yup.boolean(),\n size: yup.number().required(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditFieldForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditFieldFormProps {\n attribute?: Schema.Attribute.AnyAttribute;\n name: string;\n onClose: () => void;\n}\n\nconst EditFieldForm = ({ attribute, name, onClose }: EditFieldFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const { value, onChange } =\n useField<ConfigurationFormData['layout'][number]['children'][number]>(name);\n\n const { data: mainFieldOptions } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n if (attribute?.type !== 'relation' || !res.data) {\n return { data: [] };\n }\n\n if ('targetModel' in attribute && typeof attribute.targetModel === 'string') {\n const targetSchema = res.data.contentTypes.find(\n (schema) => schema.uid === attribute.targetModel\n );\n\n if (targetSchema) {\n return {\n data: Object.entries(targetSchema.attributes).reduce<\n Array<{ label: string; value: string }>\n >((acc, [key, attribute]) => {\n /**\n * Create the list of attributes from the schema as to which can\n * be our `mainField` and dictate the display name of the schema\n * we're editing.\n */\n if (!ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD.includes(attribute.type)) {\n acc.push({\n label: key,\n value: key,\n });\n }\n\n return acc;\n }, []),\n };\n }\n }\n\n return { data: [] };\n },\n skip: attribute?.type !== 'relation',\n });\n\n if (!value || value.name === TEMP_FIELD_NAME || !attribute) {\n // This is very unlikely to happen, but it ensures the form is not opened without a value.\n console.error(\n \"You've opened a field to edit without it being part of the form, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.containers.edit-settings.modal-form.error',\n defaultMessage: 'An error occurred while trying to open the form.',\n }),\n type: 'danger',\n });\n\n return null;\n }\n\n return (\n <Modal.Content>\n <Form\n method=\"PUT\"\n initialValues={value}\n validationSchema={FIELD_SCHEMA}\n onSubmit={(data) => {\n onChange(name, data);\n onClose();\n }}\n >\n <Modal.Header>\n <Flex gap={3}>\n <FieldTypeIcon type={attribute.type} />\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-manager.containers.edit-settings.modal-form.label',\n defaultMessage: 'Edit {fieldName}',\n },\n { fieldName: capitalise(value.name) }\n )}\n </Modal.Title>\n </Flex>\n </Modal.Header>\n <Modal.Body>\n <Grid.Root gap={4}>\n {[\n {\n name: 'label',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.label'),\n defaultMessage: 'Label',\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n name: 'description',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.description'),\n defaultMessage: 'Description',\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n name: 'placeholder',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.placeholder'),\n defaultMessage: 'Placeholder',\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n name: 'editable',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.editable'),\n defaultMessage: 'Editable',\n }),\n size: 6,\n type: 'boolean' as const,\n },\n {\n name: 'mainField',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.mainField'),\n defaultMessage: 'Entry title',\n }),\n hint: formatMessage({\n id: getTranslation(\n 'containers.SettingPage.edit-settings.modal-form.mainField.hint'\n ),\n defaultMessage: 'Set the displayed field',\n }),\n size: 6,\n options: mainFieldOptions,\n type: 'enumeration' as const,\n },\n {\n name: 'size',\n label: formatMessage({\n id: getTranslation('containers.ListSettingsView.modal-form.size'),\n defaultMessage: 'Size',\n }),\n size: 6,\n options: [\n { value: '4', label: '33%' },\n { value: '6', label: '50%' },\n { value: '8', label: '66%' },\n { value: '12', label: '100%' },\n ],\n type: 'enumeration' as const,\n },\n ]\n .filter(filterFieldsBasedOnAttributeType(attribute.type))\n .map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button type=\"submit\">\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/**\n * @internal\n * @description not all edit fields have the same editable properties, it depends on the type\n * e.g. a dynamic zone can only change it's label.\n */\nconst filterFieldsBasedOnAttributeType = (type: Schema.Attribute.Kind) => (field: InputProps) => {\n switch (type) {\n case 'blocks':\n case 'richtext':\n return field.name !== 'size' && field.name !== 'mainField';\n case 'boolean':\n case 'media':\n return field.name !== 'placeholder' && field.name !== 'mainField';\n case 'component':\n case 'dynamiczone':\n return field.name === 'label' || field.name === 'editable';\n case 'json':\n return field.name !== 'placeholder' && field.name !== 'mainField' && field.name !== 'size';\n case 'relation':\n return true;\n default:\n return field.name !== 'mainField';\n }\n};\n\nexport { EditFieldForm };\nexport type { EditFieldFormProps };\n","import * as React from 'react';\n\nimport { useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Modal,\n Box,\n Flex,\n Grid,\n IconButton,\n IconButtonComponent,\n Typography,\n useComposedRefs,\n Link,\n Menu,\n} from '@strapi/design-system';\nimport { Cog, Cross, Drag, Pencil, Plus } from '@strapi/icons';\nimport { generateNKeysBetween as generateNKeysBetweenImpl } from 'fractional-indexing';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ItemTypes } from '../../constants/dragAndDrop';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../utils/translations';\nimport { ComponentIcon } from '../ComponentIcon';\n\nimport { EditFieldForm, EditFieldFormProps } from './EditFieldForm';\n\nimport type { ConfigurationFormData, EditFieldSpacerLayout } from './Form';\nimport type { EditLayout } from '../../hooks/useDocumentLayout';\n\ntype FormField = ConfigurationFormData['layout'][number]['children'][number];\ntype Field = Omit<ConfigurationFormData['layout'][number]['children'][number], '__temp_key__'>;\n\n/* -------------------------------------------------------------------------------------------------\n * Fields\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldsProps extends Pick<EditLayout, 'metadatas'>, Pick<FieldProps, 'components'> {\n attributes: {\n [key: string]: FieldProps['attribute'];\n };\n fieldSizes: Record<string, number>;\n components: EditLayout['components'];\n}\n\nconst Fields = ({ attributes, fieldSizes, components, metadatas = {} }: FieldsProps) => {\n const { formatMessage } = useIntl();\n\n const layout = useForm<ConfigurationFormData['layout']>(\n 'Fields',\n (state) => state.values.layout ?? []\n );\n const onChange = useForm('Fields', (state) => state.onChange);\n const addFieldRow = useForm('Fields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('Fields', (state) => state.removeFieldRow);\n\n const existingFields = layout.map((row) => row.children.map((field) => field.name)).flat();\n\n /**\n * Get the fields that are not already in the layout\n * But also check that they are visible before we give users\n * the option to display them. e.g. `id` is not visible.\n */\n const remainingFields = Object.entries(metadatas).reduce<Field[]>((acc, current) => {\n const [name, { visible, ...field }] = current;\n\n if (!existingFields.includes(name) && visible === true) {\n const type = attributes[name]?.type;\n const size = type ? fieldSizes[type] : 12;\n\n acc.push({\n ...field,\n label: field.label ?? name,\n name,\n size,\n });\n }\n\n return acc;\n }, []);\n\n const handleMoveField: FieldProps['onMoveField'] = (\n [newRowIndex, newFieldIndex],\n [currentRowIndex, currentFieldIndex]\n ) => {\n /**\n * Because this view has the constraint that the sum of field sizes cannot be greater\n * than 12, we don't use the form's method to move field rows, instead, we calculate\n * the new layout and set the entire form.\n */\n const newLayout = structuredClone(layout);\n\n /**\n * Remove field from the current layout space using splice so we have the item\n */\n const [field] = newLayout[currentRowIndex].children.splice(currentFieldIndex, 1);\n\n if (!field || field.name === TEMP_FIELD_NAME) {\n return;\n }\n\n const newRow = newLayout[newRowIndex].children;\n const [newFieldKey] = generateNKeysBetween(newRow, 1, currentFieldIndex, newFieldIndex);\n\n /**\n * Next we inject the field into it's new row at it's specified index, we then remove the spaces\n * if they exist and recalculate into potentially two arrays ONLY if the sizing is now over 12,\n * the row and the rest of the row that couldn't fit.\n *\n * for example, if i have a row of `[{size: 4}, {size: 6}]` and i add `{size: 8}` a index 0,\n * the new array will look like `[{size: 8}, {size: 4}, {size: 6}]` which breaks the limit of 12,\n * so instead we make two arrays for the new rows `[[{size: 8}, {size: 4}], [{size: 6}]]` which we\n * then inject at the original row point with spacers included.\n */\n newRow.splice(newFieldIndex, 0, { ...field, __temp_key__: newFieldKey });\n\n if (newLayout[newRowIndex].children.reduce((acc, curr) => acc + curr.size, 0) > 12) {\n const recalculatedRows = chunkArray(\n newLayout[newRowIndex].children.filter((field) => field.name !== TEMP_FIELD_NAME)\n );\n\n const rowKeys = generateNKeysBetween(\n newLayout,\n recalculatedRows.length,\n currentRowIndex,\n newRowIndex\n );\n\n newLayout.splice(\n newRowIndex,\n 1,\n ...recalculatedRows.map((row, index) => ({\n __temp_key__: rowKeys[index],\n children: row,\n }))\n );\n }\n\n /**\n * Now we remove our spacers from the rows so we can understand what dead rows exist:\n * - if there's only spacers left\n * - there's nothing in the row, e.g. a size 12 field left it.\n * These rows are then filtered out.\n * After that, we recalculate the spacers for the rows that need them.\n */\n const newLayoutWithSpacers = newLayout\n .map((row) => ({\n ...row,\n children: row.children.filter((field) => field.name !== TEMP_FIELD_NAME),\n }))\n .filter((row) => row.children.length > 0)\n .map((row) => {\n const totalSpaceTaken = row.children.reduce((acc, curr) => acc + curr.size, 0);\n\n if (totalSpaceTaken < 12) {\n const [spacerKey] = generateNKeysBetweenImpl(\n row.children.at(-1)?.__temp_key__,\n undefined,\n 1\n );\n\n return {\n ...row,\n children: [\n ...row.children,\n {\n name: TEMP_FIELD_NAME,\n size: 12 - totalSpaceTaken,\n __temp_key__: spacerKey,\n } satisfies EditFieldSpacerLayout,\n ],\n };\n }\n\n return row;\n });\n\n onChange('layout', newLayoutWithSpacers);\n };\n\n const handleRemoveField =\n (rowIndex: number, fieldIndex: number): FieldProps['onRemoveField'] =>\n () => {\n if (layout[rowIndex].children.length === 1) {\n removeFieldRow(`layout`, rowIndex);\n } else {\n onChange(`layout.${rowIndex}.children`, [\n ...layout[rowIndex].children.slice(0, fieldIndex),\n ...layout[rowIndex].children.slice(fieldIndex + 1),\n ]);\n }\n };\n\n const handleAddField = (field: Field) => () => {\n addFieldRow('layout', { children: [field] });\n };\n\n return (\n <Flex paddingTop={6} direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex alignItems=\"flex-start\" direction=\"column\" justifyContent=\"space-between\">\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: getTranslation('containers.list.displayedFields'),\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'containers.SettingPage.editSettings.description',\n defaultMessage: 'Drag & drop the fields to build the layout',\n })}\n </Typography>\n </Flex>\n <Box padding={4} hasRadius borderStyle=\"dashed\" borderWidth=\"1px\" borderColor=\"neutral300\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {layout.map((row, rowIndex) => (\n <Grid.Root gap={2} key={row.__temp_key__}>\n {row.children.map(({ size, ...field }, fieldIndex) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Field\n attribute={attributes[field.name]}\n components={components}\n index={[rowIndex, fieldIndex]}\n name={`layout.${rowIndex}.children.${fieldIndex}`}\n onMoveField={handleMoveField}\n onRemoveField={handleRemoveField(rowIndex, fieldIndex)}\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n <Menu.Root>\n <Menu.Trigger\n startIcon={<Plus />}\n endIcon={null}\n disabled={remainingFields.length === 0}\n fullWidth\n variant=\"secondary\"\n >\n {formatMessage({\n id: getTranslation('containers.SettingPage.add.field'),\n defaultMessage: 'Insert another field',\n })}\n </Menu.Trigger>\n <Menu.Content>\n {remainingFields.map((field) => (\n <Menu.Item key={field.name} onSelect={handleAddField(field)}>\n {field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Box>\n </Flex>\n );\n};\n\n/**\n * @internal\n * @description Small abstraction to solve within an array of fields where you can\n * add a field to the beginning or start, move back and forth what it's index range\n * should be when calculating it's new temp key\n */\nconst generateNKeysBetween = <Field extends { __temp_key__: string }>(\n field: Field[],\n count: number,\n currInd: number,\n newInd: number\n) => {\n const startKey = currInd > newInd ? field[newInd - 1]?.__temp_key__ : field[newInd]?.__temp_key__;\n const endKey = currInd > newInd ? field[newInd]?.__temp_key__ : field[newInd + 1]?.__temp_key__;\n\n return generateNKeysBetweenImpl(startKey, endKey, count);\n};\n\n/**\n * @internal\n * @description chunks a row of layouts by the max size we allow, 12. It does not add the\n * spacers again, that should be added separately.\n */\nconst chunkArray = (array: FormField[]) => {\n const result: Array<FormField[]> = [];\n let temp: FormField[] = [];\n\n array.reduce((acc, field) => {\n if (acc + field.size > 12) {\n result.push(temp);\n temp = [field];\n return field.size;\n } else {\n temp.push(field);\n return acc + field.size;\n }\n }, 0);\n\n if (temp.length > 0) {\n result.push(temp);\n }\n\n return result;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Field\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldProps extends Pick<EditFieldFormProps, 'name' | 'attribute'> {\n components: EditLayout['components'];\n index: [row: number, index: number];\n onMoveField: UseDragAndDropOptions<number[]>['onMoveItem'];\n onRemoveField: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst TEMP_FIELD_NAME = '_TEMP_';\n\n/**\n * Displays a field in the layout with drag options, also\n * opens a modal to edit the details of said field.\n */\nconst Field = ({ attribute, components, name, index, onMoveField, onRemoveField }: FieldProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n\n const { value } = useField<FormField>(name);\n\n const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop<\n Array<number>\n >(true, {\n dropSensitivity: 'immediate',\n type: ItemTypes.EDIT_FIELD,\n item: { index, label: value?.label, name },\n index,\n onMoveItem: onMoveField,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef]);\n\n const composedRefs = useComposedRefs<HTMLSpanElement>(dragRef, objectRef);\n\n const handleRemoveField: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n onRemoveField(e);\n };\n\n const onEditFieldMeta: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsModalOpen(true);\n };\n\n const tempRefs = useComposedRefs<HTMLSpanElement>(dropRef, objectRef);\n\n if (!value) {\n return null;\n }\n\n if (value.name === TEMP_FIELD_NAME) {\n return <Flex tag=\"span\" height=\"100%\" style={{ opacity: 0 }} ref={tempRefs} />;\n }\n\n return (\n <Modal.Root open={isModalOpen} onOpenChange={setIsModalOpen}>\n <Flex\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n style={{ opacity: isDragging ? 0.5 : 1 }}\n ref={dropRef}\n gap={3}\n cursor=\"pointer\"\n onClick={() => {\n setIsModalOpen(true);\n }}\n >\n <DragButton\n tag=\"span\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: value.label }\n )}\n onClick={(e) => e.stopPropagation()}\n ref={composedRefs}\n >\n <Drag />\n </DragButton>\n <Flex direction=\"column\" alignItems=\"flex-start\" grow={1} overflow=\"hidden\">\n <Flex gap={3} justifyContent=\"space-between\" width=\"100%\">\n <Typography ellipsis fontWeight=\"bold\">\n {value.label}\n </Typography>\n <Flex>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n background=\"transparent\"\n onClick={onEditFieldMeta}\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: value.label }\n )}\n >\n <Pencil />\n </IconButton>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n onClick={handleRemoveField}\n background=\"transparent\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: value.label }\n )}\n >\n <Cross />\n </IconButton>\n </Flex>\n </Flex>\n {attribute?.type === 'component' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n direction=\"column\"\n gap={2}\n width=\"100%\"\n >\n <Grid.Root gap={4} width=\"100%\">\n {components[attribute.component].layout.map((row) =>\n row.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Flex\n alignItems=\"center\"\n background=\"neutral0\"\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={3}\n paddingRight={3}\n hasRadius\n borderColor=\"neutral200\"\n >\n <Typography textColor=\"neutral800\">{field.name}</Typography>\n </Flex>\n </Grid.Item>\n ))\n )}\n </Grid.Root>\n <Link\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n startIcon={<Cog />}\n tag={NavLink}\n to={`../components/${attribute.component}/configurations/edit`}\n >\n {formatMessage({\n id: getTranslation('components.FieldItem.linkToComponentLayout'),\n defaultMessage: \"Set the component's layout\",\n })}\n </Link>\n </Flex>\n ) : null}\n {attribute?.type === 'dynamiczone' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n gap={2}\n width=\"100%\"\n >\n {attribute?.components.map((uid) => (\n <ComponentLink\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n key={uid}\n to={`../components/${uid}/configurations/edit`}\n >\n <ComponentIcon icon={components[uid].settings.icon} />\n <Typography fontSize={1} textColor=\"neutral600\" fontWeight=\"bold\">\n {components[uid].settings.displayName}\n </Typography>\n </ComponentLink>\n ))}\n </Flex>\n ) : null}\n </Flex>\n </Flex>\n {value.name !== TEMP_FIELD_NAME && (\n <EditFieldForm attribute={attribute} name={name} onClose={() => setIsModalOpen(false)} />\n )}\n </Modal.Root>\n );\n};\n\nconst DragButton = styled<IconButtonComponent<'span'>>(IconButton)`\n height: unset;\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0;\n border: none;\n background-color: transparent;\n border-radius: 0px;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n\n svg {\n width: 1.2rem;\n height: 1.2rem;\n }\n`;\n\nconst ComponentLink = styled(NavLink)`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[1]};\n padding: ${(props) => props.theme.spaces[2]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n background: ${({ theme }) => theme.colors.neutral0};\n width: 14rem;\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: none;\n\n &:focus,\n &:hover {\n ${({ theme }) => `\n background-color: ${theme.colors.primary100};\n border-color: ${theme.colors.primary200};\n\n ${Typography} {\n color: ${theme.colors.primary600};\n }\n `}\n\n /* > ComponentIcon */\n > div:first-child {\n background: ${({ theme }) => theme.colors.primary200};\n color: ${({ theme }) => theme.colors.primary600};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n }\n }\n`;\n\nexport { Fields, TEMP_FIELD_NAME };\nexport type { FieldsProps };\n","import * as React from 'react';\n\nimport {\n Form,\n FormProps,\n useForm,\n InputRenderer,\n BackButton,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { generateNKeysBetween } from 'fractional-indexing';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD } from '../../constants/attributes';\nimport { capitalise } from '../../utils/strings';\nimport { getTranslation } from '../../utils/translations';\n\nimport { Fields, FieldsProps, TEMP_FIELD_NAME } from './Fields';\n\nimport type { EditFieldLayout, EditLayout } from '../../hooks/useDocumentLayout';\n\n/* -------------------------------------------------------------------------------------------------\n * ConfigurationForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfigurationFormProps extends Pick<FieldsProps, 'attributes' | 'fieldSizes'> {\n layout: EditLayout;\n onSubmit: FormProps<ConfigurationFormData>['onSubmit'];\n}\n\n/**\n * Every key in EditFieldLayout is turned to optional never and then we overwrite the ones we are using.\n */\n\ntype EditFieldSpacerLayout = {\n [key in keyof Omit<EditFieldLayout, 'name' | 'size'>]?: never;\n} & {\n description?: never;\n editable?: never;\n name: '_TEMP_';\n size: number;\n __temp_key__: string;\n};\n\ninterface ConfigurationFormData extends Pick<EditLayout, 'settings'> {\n layout: Array<{\n __temp_key__: string;\n children: Array<\n | (Pick<EditFieldLayout, 'label' | 'size' | 'name' | 'placeholder' | 'mainField'> & {\n description: EditFieldLayout['hint'];\n editable: EditFieldLayout['disabled'];\n __temp_key__: string;\n })\n | EditFieldSpacerLayout\n >;\n }>;\n}\n\nconst ConfigurationForm = ({\n attributes,\n fieldSizes,\n layout: editLayout,\n onSubmit,\n}: ConfigurationFormProps) => {\n const { components, settings, layout, metadatas } = editLayout;\n\n const { formatMessage } = useIntl();\n\n const initialValues: ConfigurationFormData = React.useMemo(() => {\n const transformations = pipe(\n flattenPanels,\n replaceMainFieldWithNameOnly,\n extractMetadata,\n addTmpSpaceToLayout,\n addTmpKeysToLayout\n );\n\n return {\n layout: transformations(layout),\n settings,\n };\n }, [layout, settings]);\n\n return (\n <Layouts.Root>\n <Main>\n <Form initialValues={initialValues} onSubmit={onSubmit} method=\"PUT\">\n <Header name={settings.displayName ?? ''} />\n <Layouts.Content>\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={6}\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.settings'),\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n type=\"enumeration\"\n label={formatMessage({\n id: getTranslation('containers.SettingPage.editSettings.entry.title'),\n defaultMessage: 'Entry title',\n })}\n hint={formatMessage({\n id: getTranslation(\n 'containers.SettingPage.editSettings.entry.title.description'\n ),\n defaultMessage: 'Set the display field of your entry',\n })}\n name=\"settings.mainField\"\n options={Object.entries(attributes).reduce<\n Array<{ label: string; value: string }>\n >((acc, [key, attribute]) => {\n if (!attribute) {\n return acc;\n }\n\n /**\n * Create the list of attributes from the schema as to which can\n * be our `mainField` and dictate the display name of the schema\n * we're editing.\n */\n if (!ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD.includes(attribute.type)) {\n acc.push({\n label: key,\n value: key,\n });\n }\n\n return acc;\n }, [])}\n />\n </Grid.Item>\n <Grid.Item\n paddingTop={6}\n paddingBottom={6}\n col={12}\n s={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Divider />\n </Grid.Item>\n <Grid.Item col={12} s={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.view'),\n defaultMessage: 'View',\n })}\n </Typography>\n </Grid.Item>\n <Grid.Item col={12} s={12} direction=\"column\" alignItems=\"stretch\">\n <Fields\n attributes={attributes}\n components={components}\n fieldSizes={fieldSizes}\n metadatas={metadatas}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Form>\n </Main>\n </Layouts.Root>\n );\n};\n\n/**\n * @internal\n * @description Panels don't exist in the layout, so we flatten by one.\n */\nconst flattenPanels = (layout: EditLayout['layout']): EditLayout['layout'][number] =>\n layout.flat(1);\n\n/**\n * @internal\n * @description We don't need the mainField object in the layout, we only need the name.\n */\nconst replaceMainFieldWithNameOnly = (layout: EditLayout['layout'][number]) =>\n layout.map((row) =>\n row.map((field) => ({\n ...field,\n mainField: field.mainField?.name,\n }))\n );\n\n/**\n * @internal\n * @description We extract the metadata values from the field layout, because these are editable by the user.\n */\nconst extractMetadata = (\n layout: EditLayout['layout'][number]\n): Array<Exclude<ConfigurationFormData['layout'], { name: '_TEMP_' }>[number]['children']> => {\n return layout.map((row) =>\n row.map(({ label, disabled, hint, placeholder, size, name, mainField }) => ({\n label,\n editable: !disabled,\n description: hint,\n mainField,\n placeholder,\n size,\n name,\n __temp_key__: '',\n }))\n );\n};\n\n/**\n * @internal\n * @description Each row of the layout has a max size of 12 (based on bootstrap grid system)\n * So in order to offer a better drop zone we add the _TEMP_ div to complete the remaining substract (12 - existing)\n */\nconst addTmpSpaceToLayout = (\n layout: ReturnType<typeof extractMetadata>\n): Array<ConfigurationFormData['layout'][number]['children']> => [\n ...layout.map((row) => {\n const totalSpaceTaken = row.reduce((acc, field) => acc + field.size, 0);\n\n if (totalSpaceTaken < 12) {\n return [\n ...row,\n {\n name: TEMP_FIELD_NAME,\n size: 12 - totalSpaceTaken,\n __temp_key__: '',\n } satisfies EditFieldSpacerLayout,\n ];\n }\n\n return row;\n }),\n];\n\n/**\n * @internal\n * @description At this point of the transformations we have Field[][], but each row for the form should have a __temp_key__\n * applied. This means we need to change it so `Field` is nested under the children property.\n */\nconst addTmpKeysToLayout = (\n layout: ReturnType<typeof addTmpSpaceToLayout>\n): ConfigurationFormData['layout'] => {\n const keys = generateNKeysBetween(undefined, undefined, layout.length);\n\n return layout.map((row, rowIndex) => {\n const fieldKeys = generateNKeysBetween(undefined, undefined, row.length);\n\n return {\n __temp_key__: keys[rowIndex],\n children: row.map((field, fieldIndex) => {\n return {\n ...field,\n __temp_key__: fieldKeys[fieldIndex],\n };\n }),\n };\n });\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n name: string;\n}\n\nconst Header = ({ name }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const modified = useForm('Header', (state) => state.modified);\n const isSubmitting = useForm('Header', (state) => state.isSubmitting);\n\n return (\n <Layouts.Header\n title={formatMessage(\n {\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.title'),\n defaultMessage: `Configure the view - {name}`,\n },\n { name: capitalise(name) }\n )}\n subtitle={formatMessage({\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.description.edit-settings'),\n defaultMessage: 'Customize how the edit view will look like.',\n })}\n navigationAction={<BackButton />}\n primaryAction={\n <Button disabled={!modified} loading={isSubmitting} type=\"submit\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n );\n};\n\nexport { ConfigurationForm };\nexport type { ConfigurationFormProps, ConfigurationFormData, EditFieldSpacerLayout };\n"],"names":["FIELD_SCHEMA","yup","object","shape","label","string","required","nullable","description","editable","boolean","size","number","EditFieldForm","attribute","name","onClose","formatMessage","useIntl","toggleNotification","useNotification","value","onChange","useField","data","mainFieldOptions","useGetInitialDataQuery","undefined","selectFromResult","res","type","targetModel","targetSchema","contentTypes","find","schema","uid","Object","entries","attributes","reduce","acc","key","ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD","includes","push","skip","TEMP_FIELD_NAME","console","error","message","id","defaultMessage","_jsx","Modal","Content","_jsxs","Form","method","initialValues","validationSchema","onSubmit","Header","Flex","gap","FieldTypeIcon","Title","fieldName","capitalise","Body","Grid","Root","getTranslation","hint","options","filter","filterFieldsBasedOnAttributeType","map","field","Item","col","direction","alignItems","InputRenderer","Footer","Close","Button","variant","Fields","fieldSizes","components","metadatas","layout","useForm","state","values","addFieldRow","removeFieldRow","existingFields","row","children","flat","remainingFields","current","visible","handleMoveField","newRowIndex","newFieldIndex","currentRowIndex","currentFieldIndex","newLayout","structuredClone","splice","newRow","newFieldKey","generateNKeysBetween","__temp_key__","curr","recalculatedRows","chunkArray","rowKeys","length","index","newLayoutWithSpacers","totalSpaceTaken","spacerKey","generateNKeysBetweenImpl","at","handleRemoveField","rowIndex","fieldIndex","slice","handleAddField","paddingTop","justifyContent","Typography","fontWeight","textColor","Box","padding","hasRadius","borderStyle","borderWidth","borderColor","Field","onMoveField","onRemoveField","Menu","Trigger","startIcon","Plus","endIcon","disabled","fullWidth","onSelect","count","currInd","newInd","startKey","endKey","array","result","temp","isModalOpen","setIsModalOpen","React","useState","isDragging","objectRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","dropSensitivity","ItemTypes","EDIT_FIELD","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","composedRefs","useComposedRefs","e","preventDefault","stopPropagation","onEditFieldMeta","tempRefs","tag","height","style","opacity","ref","open","onOpenChange","background","cursor","onClick","DragButton","withTooltip","Drag","grow","overflow","width","ellipsis","IconButton","Pencil","Cross","paddingRight","paddingBottom","paddingLeft","component","Link","Cog","NavLink","to","ComponentLink","ComponentIcon","icon","settings","fontSize","displayName","styled","theme","colors","neutral150","spaces","props","neutral200","neutral0","borderRadius","primary100","primary200","primary600","ConfigurationForm","editLayout","useMemo","transformations","pipe","flattenPanels","replaceMainFieldWithNameOnly","extractMetadata","addTmpSpaceToLayout","addTmpKeysToLayout","Layouts","Main","shadow","s","Divider","mainField","placeholder","keys","fieldKeys","modified","isSubmitting","title","subtitle","navigationAction","BackButton","primaryAction","loading"],"mappings":"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"}
1
+ {"version":3,"file":"Form-DD49gSWW.js","sources":["../../../admin/src/components/ConfigurationForm/EditFieldForm.tsx","../../../admin/src/components/ConfigurationForm/Fields.tsx","../../../admin/src/components/ConfigurationForm/Form.tsx"],"sourcesContent":["import {\n useNotification,\n InputRenderer,\n Form,\n InputProps,\n useField,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Grid, Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD } from '../../constants/attributes';\nimport { useGetInitialDataQuery } from '../../services/init';\nimport { capitalise } from '../../utils/strings';\nimport { getTranslation } from '../../utils/translations';\nimport { FieldTypeIcon } from '../FieldTypeIcon';\n\nimport { TEMP_FIELD_NAME } from './Fields';\n\nimport type { ConfigurationFormData } from './Form';\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Constants\n * -----------------------------------------------------------------------------------------------*/\n\nconst FIELD_SCHEMA = yup.object().shape({\n label: yup.string().required().nullable(),\n description: yup.string(),\n editable: yup.boolean(),\n size: yup.number().required(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditFieldForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditFieldFormProps {\n attribute?: Schema.Attribute.AnyAttribute;\n name: string;\n onClose: () => void;\n}\n\nconst EditFieldForm = ({ attribute, name, onClose }: EditFieldFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const { value, onChange } =\n useField<ConfigurationFormData['layout'][number]['children'][number]>(name);\n\n const { data: mainFieldOptions } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n if (attribute?.type !== 'relation' || !res.data) {\n return { data: [] };\n }\n\n if ('targetModel' in attribute && typeof attribute.targetModel === 'string') {\n const targetSchema = res.data.contentTypes.find(\n (schema) => schema.uid === attribute.targetModel\n );\n\n if (targetSchema) {\n return {\n data: Object.entries(targetSchema.attributes).reduce<\n Array<{ label: string; value: string }>\n >((acc, [key, attribute]) => {\n /**\n * Create the list of attributes from the schema as to which can\n * be our `mainField` and dictate the display name of the schema\n * we're editing.\n */\n if (!ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD.includes(attribute.type)) {\n acc.push({\n label: key,\n value: key,\n });\n }\n\n return acc;\n }, []),\n };\n }\n }\n\n return { data: [] };\n },\n skip: attribute?.type !== 'relation',\n });\n\n if (!value || value.name === TEMP_FIELD_NAME || !attribute) {\n // This is very unlikely to happen, but it ensures the form is not opened without a value.\n console.error(\n \"You've opened a field to edit without it being part of the form, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.containers.edit-settings.modal-form.error',\n defaultMessage: 'An error occurred while trying to open the form.',\n }),\n type: 'danger',\n });\n\n return null;\n }\n\n return (\n <Modal.Content>\n <Form\n method=\"PUT\"\n initialValues={value}\n validationSchema={FIELD_SCHEMA}\n onSubmit={(data) => {\n onChange(name, data);\n onClose();\n }}\n >\n <Modal.Header>\n <Flex gap={3}>\n <FieldTypeIcon type={attribute.type} />\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-manager.containers.edit-settings.modal-form.label',\n defaultMessage: 'Edit {fieldName}',\n },\n { fieldName: capitalise(value.name) }\n )}\n </Modal.Title>\n </Flex>\n </Modal.Header>\n <Modal.Body>\n <Grid.Root gap={4}>\n {[\n {\n name: 'label',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.label'),\n defaultMessage: 'Label',\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n name: 'description',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.description'),\n defaultMessage: 'Description',\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n name: 'placeholder',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.placeholder'),\n defaultMessage: 'Placeholder',\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n name: 'editable',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.editable'),\n defaultMessage: 'Editable',\n }),\n size: 6,\n type: 'boolean' as const,\n },\n {\n name: 'mainField',\n label: formatMessage({\n id: getTranslation('containers.edit-settings.modal-form.mainField'),\n defaultMessage: 'Entry title',\n }),\n hint: formatMessage({\n id: getTranslation(\n 'containers.SettingPage.edit-settings.modal-form.mainField.hint'\n ),\n defaultMessage: 'Set the displayed field',\n }),\n size: 6,\n options: mainFieldOptions,\n type: 'enumeration' as const,\n },\n {\n name: 'size',\n label: formatMessage({\n id: getTranslation('containers.ListSettingsView.modal-form.size'),\n defaultMessage: 'Size',\n }),\n size: 6,\n options: [\n { value: '4', label: '33%' },\n { value: '6', label: '50%' },\n { value: '8', label: '66%' },\n { value: '12', label: '100%' },\n ],\n type: 'enumeration' as const,\n },\n ]\n .filter(filterFieldsBasedOnAttributeType(attribute.type))\n .map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button type=\"submit\">\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/**\n * @internal\n * @description not all edit fields have the same editable properties, it depends on the type\n * e.g. a dynamic zone can only change it's label.\n */\nconst filterFieldsBasedOnAttributeType = (type: Schema.Attribute.Kind) => (field: InputProps) => {\n switch (type) {\n case 'blocks':\n case 'richtext':\n return field.name !== 'size' && field.name !== 'mainField';\n case 'boolean':\n case 'media':\n return field.name !== 'placeholder' && field.name !== 'mainField';\n case 'component':\n case 'dynamiczone':\n return field.name === 'label' || field.name === 'editable';\n case 'json':\n return field.name !== 'placeholder' && field.name !== 'mainField' && field.name !== 'size';\n case 'relation':\n return true;\n default:\n return field.name !== 'mainField';\n }\n};\n\nexport { EditFieldForm };\nexport type { EditFieldFormProps };\n","import * as React from 'react';\n\nimport { useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Modal,\n Box,\n Flex,\n Grid,\n IconButton,\n IconButtonComponent,\n Typography,\n useComposedRefs,\n Link,\n Menu,\n} from '@strapi/design-system';\nimport { Cog, Cross, Drag, Pencil, Plus } from '@strapi/icons';\nimport { generateNKeysBetween as generateNKeysBetweenImpl } from 'fractional-indexing';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ItemTypes } from '../../constants/dragAndDrop';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../utils/translations';\nimport { ComponentIcon } from '../ComponentIcon';\n\nimport { EditFieldForm, EditFieldFormProps } from './EditFieldForm';\n\nimport type { ConfigurationFormData, EditFieldSpacerLayout } from './Form';\nimport type { EditLayout } from '../../hooks/useDocumentLayout';\n\ntype FormField = ConfigurationFormData['layout'][number]['children'][number];\ntype Field = Omit<ConfigurationFormData['layout'][number]['children'][number], '__temp_key__'>;\n\n/* -------------------------------------------------------------------------------------------------\n * Fields\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldsProps extends Pick<EditLayout, 'metadatas'>, Pick<FieldProps, 'components'> {\n attributes: {\n [key: string]: FieldProps['attribute'];\n };\n fieldSizes: Record<string, number>;\n components: EditLayout['components'];\n}\n\nconst Fields = ({ attributes, fieldSizes, components, metadatas = {} }: FieldsProps) => {\n const { formatMessage } = useIntl();\n\n const layout = useForm<ConfigurationFormData['layout']>(\n 'Fields',\n (state) => state.values.layout ?? []\n );\n const onChange = useForm('Fields', (state) => state.onChange);\n const addFieldRow = useForm('Fields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('Fields', (state) => state.removeFieldRow);\n\n const existingFields = layout.map((row) => row.children.map((field) => field.name)).flat();\n\n /**\n * Get the fields that are not already in the layout\n * But also check that they are visible before we give users\n * the option to display them. e.g. `id` is not visible.\n */\n const remainingFields = Object.entries(metadatas).reduce<Field[]>((acc, current) => {\n const [name, { visible, ...field }] = current;\n\n if (!existingFields.includes(name) && visible === true) {\n const type = attributes[name]?.type;\n const size = type ? fieldSizes[type] : 12;\n\n acc.push({\n ...field,\n label: field.label ?? name,\n name,\n size,\n });\n }\n\n return acc;\n }, []);\n\n const handleMoveField: FieldProps['onMoveField'] = (\n [newRowIndex, newFieldIndex],\n [currentRowIndex, currentFieldIndex]\n ) => {\n /**\n * Because this view has the constraint that the sum of field sizes cannot be greater\n * than 12, we don't use the form's method to move field rows, instead, we calculate\n * the new layout and set the entire form.\n */\n const newLayout = structuredClone(layout);\n\n /**\n * Remove field from the current layout space using splice so we have the item\n */\n const [field] = newLayout[currentRowIndex].children.splice(currentFieldIndex, 1);\n\n if (!field || field.name === TEMP_FIELD_NAME) {\n return;\n }\n\n const newRow = newLayout[newRowIndex].children;\n const [newFieldKey] = generateNKeysBetween(newRow, 1, currentFieldIndex, newFieldIndex);\n\n /**\n * Next we inject the field into it's new row at it's specified index, we then remove the spaces\n * if they exist and recalculate into potentially two arrays ONLY if the sizing is now over 12,\n * the row and the rest of the row that couldn't fit.\n *\n * for example, if i have a row of `[{size: 4}, {size: 6}]` and i add `{size: 8}` a index 0,\n * the new array will look like `[{size: 8}, {size: 4}, {size: 6}]` which breaks the limit of 12,\n * so instead we make two arrays for the new rows `[[{size: 8}, {size: 4}], [{size: 6}]]` which we\n * then inject at the original row point with spacers included.\n */\n newRow.splice(newFieldIndex, 0, { ...field, __temp_key__: newFieldKey });\n\n if (newLayout[newRowIndex].children.reduce((acc, curr) => acc + curr.size, 0) > 12) {\n const recalculatedRows = chunkArray(\n newLayout[newRowIndex].children.filter((field) => field.name !== TEMP_FIELD_NAME)\n );\n\n const rowKeys = generateNKeysBetween(\n newLayout,\n recalculatedRows.length,\n currentRowIndex,\n newRowIndex\n );\n\n newLayout.splice(\n newRowIndex,\n 1,\n ...recalculatedRows.map((row, index) => ({\n __temp_key__: rowKeys[index],\n children: row,\n }))\n );\n }\n\n /**\n * Now we remove our spacers from the rows so we can understand what dead rows exist:\n * - if there's only spacers left\n * - there's nothing in the row, e.g. a size 12 field left it.\n * These rows are then filtered out.\n * After that, we recalculate the spacers for the rows that need them.\n */\n const newLayoutWithSpacers = newLayout\n .map((row) => ({\n ...row,\n children: row.children.filter((field) => field.name !== TEMP_FIELD_NAME),\n }))\n .filter((row) => row.children.length > 0)\n .map((row) => {\n const totalSpaceTaken = row.children.reduce((acc, curr) => acc + curr.size, 0);\n\n if (totalSpaceTaken < 12) {\n const [spacerKey] = generateNKeysBetweenImpl(\n row.children.at(-1)?.__temp_key__,\n undefined,\n 1\n );\n\n return {\n ...row,\n children: [\n ...row.children,\n {\n name: TEMP_FIELD_NAME,\n size: 12 - totalSpaceTaken,\n __temp_key__: spacerKey,\n } satisfies EditFieldSpacerLayout,\n ],\n };\n }\n\n return row;\n });\n\n onChange('layout', newLayoutWithSpacers);\n };\n\n const handleRemoveField =\n (rowIndex: number, fieldIndex: number): FieldProps['onRemoveField'] =>\n () => {\n if (layout[rowIndex].children.length === 1) {\n removeFieldRow(`layout`, rowIndex);\n } else {\n onChange(`layout.${rowIndex}.children`, [\n ...layout[rowIndex].children.slice(0, fieldIndex),\n ...layout[rowIndex].children.slice(fieldIndex + 1),\n ]);\n }\n };\n\n const handleAddField = (field: Field) => () => {\n addFieldRow('layout', { children: [field] });\n };\n\n return (\n <Flex paddingTop={6} direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex alignItems=\"flex-start\" direction=\"column\" justifyContent=\"space-between\">\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: getTranslation('containers.list.displayedFields'),\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'containers.SettingPage.editSettings.description',\n defaultMessage: 'Drag & drop the fields to build the layout',\n })}\n </Typography>\n </Flex>\n <Box padding={4} hasRadius borderStyle=\"dashed\" borderWidth=\"1px\" borderColor=\"neutral300\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {layout.map((row, rowIndex) => (\n <Grid.Root gap={2} key={row.__temp_key__}>\n {row.children.map(({ size, ...field }, fieldIndex) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Field\n attribute={attributes[field.name]}\n components={components}\n index={[rowIndex, fieldIndex]}\n name={`layout.${rowIndex}.children.${fieldIndex}`}\n onMoveField={handleMoveField}\n onRemoveField={handleRemoveField(rowIndex, fieldIndex)}\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n <Menu.Root>\n <Menu.Trigger\n startIcon={<Plus />}\n endIcon={null}\n disabled={remainingFields.length === 0}\n fullWidth\n variant=\"secondary\"\n >\n {formatMessage({\n id: getTranslation('containers.SettingPage.add.field'),\n defaultMessage: 'Insert another field',\n })}\n </Menu.Trigger>\n <Menu.Content>\n {remainingFields.map((field) => (\n <Menu.Item key={field.name} onSelect={handleAddField(field)}>\n {field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Box>\n </Flex>\n );\n};\n\n/**\n * @internal\n * @description Small abstraction to solve within an array of fields where you can\n * add a field to the beginning or start, move back and forth what it's index range\n * should be when calculating it's new temp key\n */\nconst generateNKeysBetween = <Field extends { __temp_key__: string }>(\n field: Field[],\n count: number,\n currInd: number,\n newInd: number\n) => {\n const startKey = currInd > newInd ? field[newInd - 1]?.__temp_key__ : field[newInd]?.__temp_key__;\n const endKey = currInd > newInd ? field[newInd]?.__temp_key__ : field[newInd + 1]?.__temp_key__;\n\n return generateNKeysBetweenImpl(startKey, endKey, count);\n};\n\n/**\n * @internal\n * @description chunks a row of layouts by the max size we allow, 12. It does not add the\n * spacers again, that should be added separately.\n */\nconst chunkArray = (array: FormField[]) => {\n const result: Array<FormField[]> = [];\n let temp: FormField[] = [];\n\n array.reduce((acc, field) => {\n if (acc + field.size > 12) {\n result.push(temp);\n temp = [field];\n return field.size;\n } else {\n temp.push(field);\n return acc + field.size;\n }\n }, 0);\n\n if (temp.length > 0) {\n result.push(temp);\n }\n\n return result;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Field\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldProps extends Pick<EditFieldFormProps, 'name' | 'attribute'> {\n components: EditLayout['components'];\n index: [row: number, index: number];\n onMoveField: UseDragAndDropOptions<number[]>['onMoveItem'];\n onRemoveField: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst TEMP_FIELD_NAME = '_TEMP_';\n\n/**\n * Displays a field in the layout with drag options, also\n * opens a modal to edit the details of said field.\n */\nconst Field = ({ attribute, components, name, index, onMoveField, onRemoveField }: FieldProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n\n const { value } = useField<FormField>(name);\n\n const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop<\n Array<number>\n >(true, {\n dropSensitivity: 'immediate',\n type: ItemTypes.EDIT_FIELD,\n item: { index, label: value?.label, name },\n index,\n onMoveItem: onMoveField,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef]);\n\n const composedRefs = useComposedRefs<HTMLSpanElement>(dragRef, objectRef);\n\n const handleRemoveField: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n onRemoveField(e);\n };\n\n const onEditFieldMeta: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsModalOpen(true);\n };\n\n const tempRefs = useComposedRefs<HTMLSpanElement>(dropRef, objectRef);\n\n if (!value) {\n return null;\n }\n\n if (value.name === TEMP_FIELD_NAME) {\n return <Flex tag=\"span\" height=\"100%\" style={{ opacity: 0 }} ref={tempRefs} />;\n }\n\n return (\n <Modal.Root open={isModalOpen} onOpenChange={setIsModalOpen}>\n <Flex\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n style={{ opacity: isDragging ? 0.5 : 1 }}\n ref={dropRef}\n gap={3}\n cursor=\"pointer\"\n onClick={() => {\n setIsModalOpen(true);\n }}\n >\n <DragButton\n tag=\"span\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: value.label }\n )}\n onClick={(e) => e.stopPropagation()}\n ref={composedRefs}\n >\n <Drag />\n </DragButton>\n <Flex direction=\"column\" alignItems=\"flex-start\" grow={1} overflow=\"hidden\">\n <Flex gap={3} justifyContent=\"space-between\" width=\"100%\">\n <Typography ellipsis fontWeight=\"bold\">\n {value.label}\n </Typography>\n <Flex>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n background=\"transparent\"\n onClick={onEditFieldMeta}\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: value.label }\n )}\n >\n <Pencil />\n </IconButton>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n onClick={handleRemoveField}\n background=\"transparent\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: value.label }\n )}\n >\n <Cross />\n </IconButton>\n </Flex>\n </Flex>\n {attribute?.type === 'component' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n direction=\"column\"\n gap={2}\n width=\"100%\"\n >\n <Grid.Root gap={4} width=\"100%\">\n {components[attribute.component].layout.map((row) =>\n row.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Flex\n alignItems=\"center\"\n background=\"neutral0\"\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={3}\n paddingRight={3}\n hasRadius\n borderColor=\"neutral200\"\n >\n <Typography textColor=\"neutral800\">{field.name}</Typography>\n </Flex>\n </Grid.Item>\n ))\n )}\n </Grid.Root>\n <Link\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n startIcon={<Cog />}\n tag={NavLink}\n to={`../components/${attribute.component}/configurations/edit`}\n >\n {formatMessage({\n id: getTranslation('components.FieldItem.linkToComponentLayout'),\n defaultMessage: \"Set the component's layout\",\n })}\n </Link>\n </Flex>\n ) : null}\n {attribute?.type === 'dynamiczone' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n gap={2}\n width=\"100%\"\n >\n {attribute?.components.map((uid) => (\n <ComponentLink\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n key={uid}\n to={`../components/${uid}/configurations/edit`}\n >\n <ComponentIcon icon={components[uid].settings.icon} />\n <Typography fontSize={1} textColor=\"neutral600\" fontWeight=\"bold\">\n {components[uid].settings.displayName}\n </Typography>\n </ComponentLink>\n ))}\n </Flex>\n ) : null}\n </Flex>\n </Flex>\n {value.name !== TEMP_FIELD_NAME && (\n <EditFieldForm attribute={attribute} name={name} onClose={() => setIsModalOpen(false)} />\n )}\n </Modal.Root>\n );\n};\n\nconst DragButton = styled<IconButtonComponent<'span'>>(IconButton)`\n height: unset;\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0;\n border: none;\n background-color: transparent;\n border-radius: 0px;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n\n svg {\n width: 1.2rem;\n height: 1.2rem;\n }\n`;\n\nconst ComponentLink = styled(NavLink)`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[1]};\n padding: ${(props) => props.theme.spaces[2]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n background: ${({ theme }) => theme.colors.neutral0};\n width: 14rem;\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: none;\n\n &:focus,\n &:hover {\n ${({ theme }) => `\n background-color: ${theme.colors.primary100};\n border-color: ${theme.colors.primary200};\n\n ${Typography} {\n color: ${theme.colors.primary600};\n }\n `}\n\n /* > ComponentIcon */\n > div:first-child {\n background: ${({ theme }) => theme.colors.primary200};\n color: ${({ theme }) => theme.colors.primary600};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n }\n }\n`;\n\nexport { Fields, TEMP_FIELD_NAME };\nexport type { FieldsProps };\n","import * as React from 'react';\n\nimport {\n Form,\n FormProps,\n useForm,\n InputRenderer,\n BackButton,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { generateNKeysBetween } from 'fractional-indexing';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD } from '../../constants/attributes';\nimport { capitalise } from '../../utils/strings';\nimport { getTranslation } from '../../utils/translations';\n\nimport { Fields, FieldsProps, TEMP_FIELD_NAME } from './Fields';\n\nimport type { EditFieldLayout, EditLayout } from '../../hooks/useDocumentLayout';\n\n/* -------------------------------------------------------------------------------------------------\n * ConfigurationForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfigurationFormProps extends Pick<FieldsProps, 'attributes' | 'fieldSizes'> {\n layout: EditLayout;\n onSubmit: FormProps<ConfigurationFormData>['onSubmit'];\n}\n\n/**\n * Every key in EditFieldLayout is turned to optional never and then we overwrite the ones we are using.\n */\n\ntype EditFieldSpacerLayout = {\n [key in keyof Omit<EditFieldLayout, 'name' | 'size'>]?: never;\n} & {\n description?: never;\n editable?: never;\n name: '_TEMP_';\n size: number;\n __temp_key__: string;\n};\n\ninterface ConfigurationFormData extends Pick<EditLayout, 'settings'> {\n layout: Array<{\n __temp_key__: string;\n children: Array<\n | (Pick<EditFieldLayout, 'label' | 'size' | 'name' | 'placeholder' | 'mainField'> & {\n description: EditFieldLayout['hint'];\n editable: EditFieldLayout['disabled'];\n __temp_key__: string;\n })\n | EditFieldSpacerLayout\n >;\n }>;\n}\n\nconst ConfigurationForm = ({\n attributes,\n fieldSizes,\n layout: editLayout,\n onSubmit,\n}: ConfigurationFormProps) => {\n const { components, settings, layout, metadatas } = editLayout;\n\n const { formatMessage } = useIntl();\n\n const initialValues: ConfigurationFormData = React.useMemo(() => {\n const transformations = pipe(\n flattenPanels,\n replaceMainFieldWithNameOnly,\n extractMetadata,\n addTmpSpaceToLayout,\n addTmpKeysToLayout\n );\n\n return {\n layout: transformations(layout),\n settings,\n };\n }, [layout, settings]);\n\n return (\n <Layouts.Root>\n <Main>\n <Form initialValues={initialValues} onSubmit={onSubmit} method=\"PUT\">\n <Header name={settings.displayName ?? ''} />\n <Layouts.Content>\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={6}\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.settings'),\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n type=\"enumeration\"\n label={formatMessage({\n id: getTranslation('containers.SettingPage.editSettings.entry.title'),\n defaultMessage: 'Entry title',\n })}\n hint={formatMessage({\n id: getTranslation(\n 'containers.SettingPage.editSettings.entry.title.description'\n ),\n defaultMessage: 'Set the display field of your entry',\n })}\n name=\"settings.mainField\"\n options={Object.entries(attributes).reduce<\n Array<{ label: string; value: string }>\n >((acc, [key, attribute]) => {\n if (!attribute) {\n return acc;\n }\n\n /**\n * Create the list of attributes from the schema as to which can\n * be our `mainField` and dictate the display name of the schema\n * we're editing.\n */\n if (!ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD.includes(attribute.type)) {\n acc.push({\n label: key,\n value: key,\n });\n }\n\n return acc;\n }, [])}\n />\n </Grid.Item>\n <Grid.Item\n paddingTop={6}\n paddingBottom={6}\n col={12}\n s={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Divider />\n </Grid.Item>\n <Grid.Item col={12} s={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.view'),\n defaultMessage: 'View',\n })}\n </Typography>\n </Grid.Item>\n <Grid.Item col={12} s={12} direction=\"column\" alignItems=\"stretch\">\n <Fields\n attributes={attributes}\n components={components}\n fieldSizes={fieldSizes}\n metadatas={metadatas}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Form>\n </Main>\n </Layouts.Root>\n );\n};\n\n/**\n * @internal\n * @description Panels don't exist in the layout, so we flatten by one.\n */\nconst flattenPanels = (layout: EditLayout['layout']): EditLayout['layout'][number] =>\n layout.flat(1);\n\n/**\n * @internal\n * @description We don't need the mainField object in the layout, we only need the name.\n */\nconst replaceMainFieldWithNameOnly = (layout: EditLayout['layout'][number]) =>\n layout.map((row) =>\n row.map((field) => ({\n ...field,\n mainField: field.mainField?.name,\n }))\n );\n\n/**\n * @internal\n * @description We extract the metadata values from the field layout, because these are editable by the user.\n */\nconst extractMetadata = (\n layout: EditLayout['layout'][number]\n): Array<Exclude<ConfigurationFormData['layout'], { name: '_TEMP_' }>[number]['children']> => {\n return layout.map((row) =>\n row.map(({ label, disabled, hint, placeholder, size, name, mainField }) => ({\n label,\n editable: !disabled,\n description: hint,\n mainField,\n placeholder,\n size,\n name,\n __temp_key__: '',\n }))\n );\n};\n\n/**\n * @internal\n * @description Each row of the layout has a max size of 12 (based on bootstrap grid system)\n * So in order to offer a better drop zone we add the _TEMP_ div to complete the remaining substract (12 - existing)\n */\nconst addTmpSpaceToLayout = (\n layout: ReturnType<typeof extractMetadata>\n): Array<ConfigurationFormData['layout'][number]['children']> => [\n ...layout.map((row) => {\n const totalSpaceTaken = row.reduce((acc, field) => acc + field.size, 0);\n\n if (totalSpaceTaken < 12) {\n return [\n ...row,\n {\n name: TEMP_FIELD_NAME,\n size: 12 - totalSpaceTaken,\n __temp_key__: '',\n } satisfies EditFieldSpacerLayout,\n ];\n }\n\n return row;\n }),\n];\n\n/**\n * @internal\n * @description At this point of the transformations we have Field[][], but each row for the form should have a __temp_key__\n * applied. This means we need to change it so `Field` is nested under the children property.\n */\nconst addTmpKeysToLayout = (\n layout: ReturnType<typeof addTmpSpaceToLayout>\n): ConfigurationFormData['layout'] => {\n const keys = generateNKeysBetween(undefined, undefined, layout.length);\n\n return layout.map((row, rowIndex) => {\n const fieldKeys = generateNKeysBetween(undefined, undefined, row.length);\n\n return {\n __temp_key__: keys[rowIndex],\n children: row.map((field, fieldIndex) => {\n return {\n ...field,\n __temp_key__: fieldKeys[fieldIndex],\n };\n }),\n };\n });\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n name: string;\n}\n\nconst Header = ({ name }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const modified = useForm('Header', (state) => state.modified);\n const isSubmitting = useForm('Header', (state) => state.isSubmitting);\n\n return (\n <Layouts.Header\n title={formatMessage(\n {\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.title'),\n defaultMessage: `Configure the view - {name}`,\n },\n { name: capitalise(name) }\n )}\n subtitle={formatMessage({\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.description.edit-settings'),\n defaultMessage: 'Customize how the edit view will look like.',\n })}\n navigationAction={<BackButton />}\n primaryAction={\n <Button disabled={!modified} loading={isSubmitting} type=\"submit\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n );\n};\n\nexport { ConfigurationForm };\nexport type { ConfigurationFormProps, ConfigurationFormData, EditFieldSpacerLayout };\n"],"names":["FIELD_SCHEMA","yup","object","shape","label","string","required","nullable","description","editable","boolean","size","number","EditFieldForm","attribute","name","onClose","formatMessage","useIntl","toggleNotification","useNotification","value","onChange","useField","data","mainFieldOptions","useGetInitialDataQuery","undefined","selectFromResult","res","type","targetModel","targetSchema","contentTypes","find","schema","uid","Object","entries","attributes","reduce","acc","key","ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD","includes","push","skip","TEMP_FIELD_NAME","console","error","message","id","defaultMessage","_jsx","Modal","Content","_jsxs","Form","method","initialValues","validationSchema","onSubmit","Header","Flex","gap","FieldTypeIcon","Title","fieldName","capitalise","Body","Grid","Root","getTranslation","hint","options","filter","filterFieldsBasedOnAttributeType","map","field","Item","col","direction","alignItems","InputRenderer","Footer","Close","Button","variant","Fields","fieldSizes","components","metadatas","layout","useForm","state","values","addFieldRow","removeFieldRow","existingFields","row","children","flat","remainingFields","current","visible","handleMoveField","newRowIndex","newFieldIndex","currentRowIndex","currentFieldIndex","newLayout","structuredClone","splice","newRow","newFieldKey","generateNKeysBetween","__temp_key__","curr","recalculatedRows","chunkArray","rowKeys","length","index","newLayoutWithSpacers","totalSpaceTaken","spacerKey","generateNKeysBetweenImpl","at","handleRemoveField","rowIndex","fieldIndex","slice","handleAddField","paddingTop","justifyContent","Typography","fontWeight","textColor","Box","padding","hasRadius","borderStyle","borderWidth","borderColor","Field","onMoveField","onRemoveField","Menu","Trigger","startIcon","Plus","endIcon","disabled","fullWidth","onSelect","count","currInd","newInd","startKey","endKey","array","result","temp","isModalOpen","setIsModalOpen","React","useState","isDragging","objectRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","dropSensitivity","ItemTypes","EDIT_FIELD","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","composedRefs","useComposedRefs","e","preventDefault","stopPropagation","onEditFieldMeta","tempRefs","tag","height","style","opacity","ref","open","onOpenChange","background","cursor","onClick","DragButton","withTooltip","Drag","grow","overflow","width","ellipsis","IconButton","Pencil","Cross","paddingRight","paddingBottom","paddingLeft","component","Link","Cog","NavLink","to","ComponentLink","ComponentIcon","icon","settings","fontSize","displayName","styled","theme","colors","neutral150","spaces","props","neutral200","neutral0","borderRadius","primary100","primary200","primary600","ConfigurationForm","editLayout","useMemo","transformations","pipe","flattenPanels","replaceMainFieldWithNameOnly","extractMetadata","addTmpSpaceToLayout","addTmpKeysToLayout","Layouts","Main","shadow","s","Divider","mainField","placeholder","keys","fieldKeys","modified","isSubmitting","title","subtitle","navigationAction","BackButton","primaryAction","loading"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { Modal, Flex, Grid, Button, IconButton, Typography, Box, Menu, useCompos
5
5
  import { generateNKeysBetween as generateNKeysBetween$1 } from 'fractional-indexing';
6
6
  import pipe from 'lodash/fp/pipe';
7
7
  import { useIntl } from 'react-intl';
8
- import { a as useGetInitialDataQuery, E as ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD, z as capitalise, g as getTranslation } from './index-njcS3gUl.mjs';
8
+ import { a as useGetInitialDataQuery, E as ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD, z as capitalise, g as getTranslation } from './index-BkM_Z7pU.mjs';
9
9
  import { Plus, Drag, Pencil, Cross, Cog } from '@strapi/icons';
10
10
  import { getEmptyImage } from 'react-dnd-html5-backend';
11
11
  import { NavLink } from 'react-router-dom';
@@ -952,4 +952,4 @@ const Header = ({ name })=>{
952
952
  };
953
953
 
954
954
  export { ConfigurationForm as C, TEMP_FIELD_NAME as T };
955
- //# sourceMappingURL=Form-CiDhWFF2.mjs.map
955
+ //# sourceMappingURL=Form-rQQtxfmF.mjs.map