@strapi/content-manager 0.0.0-next.8d576f41729640e32a4a0cfcb258b6288e6631f6 → 0.0.0-next.8f0cdd4f9e4697ffed86c783465297fe532713f8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/Widgets.js +253 -0
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/components/Widgets.mjs +236 -3
- package/dist/admin/components/Widgets.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +24 -3
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +25 -4
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +0 -3
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +1 -4
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/index.js +47 -8
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +47 -9
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/layout.js +1 -27
- package/dist/admin/layout.js.map +1 -1
- package/dist/admin/layout.mjs +2 -9
- package/dist/admin/layout.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +23 -6
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +25 -8
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +59 -63
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +61 -65
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +13 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +14 -3
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +156 -105
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +159 -108
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +27 -3
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +27 -3
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +103 -0
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +103 -1
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +221 -203
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +222 -204
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +3 -1
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +3 -1
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
- package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
- package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
- package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +101 -35
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +102 -36
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/services/api.js +3 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +3 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +30 -14
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +30 -14
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/homepage.js +11 -2
- package/dist/admin/services/homepage.js.map +1 -1
- package/dist/admin/services/homepage.mjs +11 -3
- package/dist/admin/services/homepage.mjs.map +1 -1
- package/dist/admin/src/components/Widgets.d.ts +2 -1
- package/dist/admin/src/exports.d.ts +1 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +16 -16
- package/dist/admin/src/services/homepage.d.ts +6 -2
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/api.d.ts +1 -1
- package/dist/admin/src/utils/validation.d.ts +1 -0
- package/dist/admin/translations/en.json.js +6 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +6 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +5 -2
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +5 -2
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +10 -2
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +10 -2
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/utils/api.js +1 -1
- package/dist/admin/utils/api.js.map +1 -1
- package/dist/admin/utils/api.mjs +1 -1
- package/dist/admin/utils/api.mjs.map +1 -1
- package/dist/admin/utils/validation.js +18 -6
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/admin/utils/validation.mjs +18 -6
- package/dist/admin/utils/validation.mjs.map +1 -1
- package/dist/server/controllers/relations.js +2 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +2 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +20 -19
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +20 -19
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/homepage/controllers/homepage.js +5 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -1
- package/dist/server/homepage/controllers/homepage.mjs +5 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
- package/dist/server/homepage/routes/homepage.js +11 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -1
- package/dist/server/homepage/routes/homepage.mjs +11 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -1
- package/dist/server/homepage/services/homepage.js +86 -46
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +86 -46
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/preview/services/preview-config.js +5 -1
- package/dist/server/preview/services/preview-config.js.map +1 -1
- package/dist/server/preview/services/preview-config.mjs +5 -1
- package/dist/server/preview/services/preview-config.mjs.map +1 -1
- package/dist/server/preview/services/preview.js +4 -0
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +4 -0
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +1 -1
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +1 -1
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts +2 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/index.d.ts +7 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -1
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts +4 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/services/index.d.ts +7 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +7 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +1 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview-config.d.ts +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +1 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +7 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +13 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/package.json +7 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography).attrs({ maxWidth: '14.4rem', display: 'block' })`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\nexport { LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","attrs","maxWidth","display","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Tr,\n Typography,\n Portal,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery, useGetCountDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography).attrs({ maxWidth: '14.4rem', display: 'block' })`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ChartEntriesWidget\n * -----------------------------------------------------------------------------------------------*/\nconst RADIUS = 80;\nconst STROKE = 10;\nconst CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);\n\ntype ThemeColor = keyof DefaultTheme['colors'];\n\nconst ArcChart = styled.circle<{ $arcColor: ThemeColor }>`\n stroke: ${({ theme, $arcColor }) => theme.colors[$arcColor]};\n`;\n\nconst TextChart = styled.tspan<{ $textColor: ThemeColor }>`\n text-transform: lowercase;\n fill: ${({ theme, $textColor }) => theme.colors[$textColor]};\n`;\n\nconst KeyChartItem = styled(Flex)`\n width: 100%;\n\n ${({ theme }) => theme.breakpoints.small} {\n width: auto;\n }\n`;\n\ninterface ChartData {\n label: string;\n count: number;\n color: ThemeColor;\n}\n\nconst DonutChartSVG = ({ data }: { data: ChartData[] }) => {\n const { locale } = useIntl();\n const { formatMessage } = useIntl();\n const total = data.reduce((acc, curr) => acc + curr.count, 0);\n const [tooltip, setTooltip] = React.useState<{\n visible: boolean;\n x: number;\n y: number;\n value: ChartData | null;\n isTouch?: boolean;\n }>({ visible: false, x: 0, y: 0, value: null });\n\n let cumulativePercent = 0;\n\n const handleMouseOver = (e: React.MouseEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x: e.clientX,\n y: e.clientY,\n value,\n });\n };\n const handleMouseOut = () => {\n setTooltip((t) => ({ ...t, visible: false }));\n };\n\n const handleFocus = (e: React.FocusEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x:\n e.currentTarget.getBoundingClientRect().width / 2 +\n e.currentTarget.getBoundingClientRect().left,\n y:\n e.currentTarget.getBoundingClientRect().height +\n e.currentTarget.getBoundingClientRect().top,\n value,\n });\n };\n\n return (\n <Flex direction=\"column\" gap={6} margin=\"auto\">\n <svg\n width={RADIUS * 2}\n height={RADIUS * 2}\n viewBox={`0 0 ${RADIUS * 2} ${RADIUS * 2}`}\n style={{ position: 'relative', zIndex: 1 }}\n >\n <g transform={`rotate(-90 ${RADIUS} ${RADIUS})`}>\n {data.map((value) => {\n const percent = (value.count / total) * 100;\n const arcLength = (percent / 100) * CIRCUMFERENCE;\n const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;\n const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);\n const el = (\n <ArcChart\n key={value.label}\n cx={RADIUS}\n cy={RADIUS}\n r={RADIUS - STROKE / 2}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeDasharray={dashArray}\n strokeDashoffset={dashOffset}\n style={{ transition: 'stroke-dashoffset 0.3s', cursor: 'pointer' }}\n tabIndex={0}\n aria-describedby={tooltip.visible ? 'chart-tooltip' : undefined}\n onFocus={(e) => handleFocus(e, value)}\n onBlur={handleMouseOut}\n onMouseMove={(e) => handleMouseOver(e, value)}\n onMouseLeave={handleMouseOut}\n $arcColor={value.color}\n />\n );\n cumulativePercent += percent;\n return el;\n })}\n </g>\n <text x={RADIUS} y={RADIUS} textAnchor=\"middle\" fontSize=\"2.4rem\" fontWeight=\"bold\">\n <TextChart x={RADIUS} dy=\"0\" $textColor=\"neutral800\">\n {new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(total)}\n </TextChart>\n <TextChart\n x={RADIUS}\n dy=\"1.4em\"\n fontSize=\"1.4rem\"\n fontWeight=\"normal\"\n $textColor=\"neutral600\"\n >\n {formatMessage({\n id: 'content-manager.widget.chart-entries.title',\n defaultMessage: 'entries',\n })}\n </TextChart>\n </text>\n </svg>\n {tooltip.visible && tooltip.value && (\n <Portal\n style={{\n position: 'fixed',\n left: 16,\n top: 16,\n zIndex: 2,\n transform: `translate(${tooltip.x}px, ${tooltip.y}px)`,\n }}\n data-testid=\"entries-chart-tooltip\"\n >\n <Box\n background=\"neutral900\"\n padding={2}\n borderRadius={1}\n textAlign=\"center\"\n role=\"tooltip\"\n aria-live=\"polite\"\n >\n <Typography textColor=\"neutral0\">\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.tooltip',\n defaultMessage: '{count} items',\n },\n {\n count: tooltip.value.count,\n label: tooltip.value.label,\n }\n )}\n </Typography>\n </Box>\n </Portal>\n )}\n <Flex gap={4} wrap=\"wrap\">\n {data.map(\n (value) =>\n value.count > 0 && (\n <KeyChartItem gap={1} key={value.label}>\n <Box background={value.color} padding={2} borderRadius={1} />\n <Typography variant=\"pi\">{value.label}</Typography>\n </KeyChartItem>\n )\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst ChartEntriesWidget = () => {\n const { formatMessage } = useIntl();\n const { data: countDocuments, isLoading, error } = useGetCountDocumentsQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error) {\n return <Widget.Error />;\n }\n\n const { draft, published, modified } = countDocuments ?? {\n draft: 0,\n published: 0,\n modified: 0,\n };\n\n const total = draft + published + modified;\n\n if (!total) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return (\n <Flex minHeight=\"100%\">\n <DonutChartSVG\n data={[\n {\n label: formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'Draft',\n }),\n count: draft,\n color: 'secondary500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.modified',\n defaultMessage: 'Modified',\n }),\n count: modified,\n color: 'alternative500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'Published',\n }),\n count: published,\n color: 'success500',\n },\n ]}\n />\n </Flex>\n );\n};\n\nexport { ChartEntriesWidget, LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","attrs","maxWidth","display","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget","RADIUS","STROKE","CIRCUMFERENCE","Math","PI","ArcChart","circle","theme","$arcColor","colors","TextChart","tspan","$textColor","KeyChartItem","Flex","breakpoints","small","DonutChartSVG","total","reduce","acc","curr","count","tooltip","setTooltip","React","useState","visible","x","y","value","cumulativePercent","handleMouseOver","clientX","clientY","handleMouseOut","t","handleFocus","currentTarget","getBoundingClientRect","width","left","height","top","direction","gap","margin","svg","viewBox","style","position","zIndex","g","transform","percent","arcLength","dashArray","dashOffset","el","cx","cy","r","fill","strokeWidth","strokeDasharray","strokeDashoffset","transition","tabIndex","aria-describedby","undefined","onFocus","onBlur","onMouseMove","onMouseLeave","color","text","textAnchor","fontSize","fontWeight","dy","Intl","NumberFormat","notation","maximumFractionDigits","format","Portal","data-testid","background","padding","borderRadius","textAlign","role","aria-live","wrap","ChartEntriesWidget","countDocuments","useGetCountDocumentsQuery","draft","published","modified","minHeight"],"mappings":"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"}
|
|
@@ -81,9 +81,18 @@ const createLayoutFromFields = (fields)=>{
|
|
|
81
81
|
/* -------------------------------------------------------------------------------------------------
|
|
82
82
|
* FormPanel
|
|
83
83
|
* -----------------------------------------------------------------------------------------------*/ const FormPanel = ({ panel })=>{
|
|
84
|
+
const fieldValues = strapiAdmin.useForm('Fields', (state)=>state.values);
|
|
85
|
+
const rulesEngine = strapiAdmin.createRulesEngine();
|
|
84
86
|
if (panel.some((row)=>row.some((field)=>field.type === 'dynamiczone'))) {
|
|
85
87
|
const [row] = panel;
|
|
86
88
|
const [field] = row;
|
|
89
|
+
const condition = field.attribute?.conditions?.visible;
|
|
90
|
+
if (condition) {
|
|
91
|
+
const isVisible = rulesEngine.evaluate(condition, fieldValues);
|
|
92
|
+
if (!isVisible) {
|
|
93
|
+
return null; // Skip rendering the dynamic zone if the condition is not met
|
|
94
|
+
}
|
|
95
|
+
}
|
|
87
96
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
|
|
88
97
|
gap: 4,
|
|
89
98
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
@@ -111,9 +120,20 @@ const createLayoutFromFields = (fields)=>{
|
|
|
111
120
|
direction: "column",
|
|
112
121
|
alignItems: "stretch",
|
|
113
122
|
gap: 6,
|
|
114
|
-
children: panel.map((row, gridRowIndex)
|
|
123
|
+
children: panel.map((row, gridRowIndex)=>{
|
|
124
|
+
const visibleFields = row.filter((field)=>{
|
|
125
|
+
const condition = field.attribute?.conditions?.visible;
|
|
126
|
+
if (condition) {
|
|
127
|
+
return rulesEngine.evaluate(condition, fieldValues);
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
});
|
|
131
|
+
if (visibleFields.length === 0) {
|
|
132
|
+
return null; // Skip rendering the entire grid row
|
|
133
|
+
}
|
|
134
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
|
|
115
135
|
gap: 4,
|
|
116
|
-
children:
|
|
136
|
+
children: visibleFields.map(({ size, ...field })=>{
|
|
117
137
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
118
138
|
col: size,
|
|
119
139
|
s: 12,
|
|
@@ -125,7 +145,8 @@ const createLayoutFromFields = (fields)=>{
|
|
|
125
145
|
})
|
|
126
146
|
}, field.name);
|
|
127
147
|
})
|
|
128
|
-
}, gridRowIndex)
|
|
148
|
+
}, gridRowIndex);
|
|
149
|
+
})
|
|
129
150
|
})
|
|
130
151
|
});
|
|
131
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionContent.js","sources":["../../../../admin/src/history/components/VersionContent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Form, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Divider, Flex, Grid, Typography } from '@strapi/design-system';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../hooks/useDocument';\nimport { useTypedSelector } from '../../modules/hooks';\nimport {\n prepareTempKeys,\n removeFieldsThatDontExistOnSchema,\n} from '../../pages/EditView/utils/data';\nimport { HistoryContextValue, useHistoryContext } from '../pages/History';\n\nimport { VersionInputRenderer } from './VersionInputRenderer';\n\nimport type { Metadatas } from '../../../../shared/contracts/content-types';\nimport type { GetInitData } from '../../../../shared/contracts/init';\nimport type { ComponentsDictionary, Document } from '../../hooks/useDocument';\nimport type { EditFieldLayout } from '../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\n\nconst createLayoutFromFields = <T extends EditFieldLayout | UnknownField>(fields: T[]) => {\n return (\n fields\n .reduce<Array<T[]>>((rows, field) => {\n if (field.type === 'dynamiczone') {\n // Dynamic zones take up all the columns in a row\n rows.push([field]);\n\n return rows;\n }\n\n if (!rows[rows.length - 1]) {\n // Create a new row if there isn't one available\n rows.push([]);\n }\n\n // Push fields to the current row, they wrap and handle their own column size\n rows[rows.length - 1].push(field);\n\n return rows;\n }, [])\n // Map the rows to panels\n .map((row) => [row])\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getRemainingFieldsLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GetRemainingFieldsLayoutOptions\n extends Pick<HistoryContextValue, 'layout'>,\n Pick<GetInitData.Response['data'], 'fieldSizes'> {\n schemaAttributes: HistoryContextValue['schema']['attributes'];\n metadatas: Metadatas;\n}\n\n/**\n * Build a layout for the fields that are were deleted from the edit view layout\n * via the configure the view page. This layout will be merged with the main one.\n * Those fields would be restored if the user restores the history version, which is why it's\n * important to show them, even if they're not in the normal layout.\n */\nfunction getRemaingFieldsLayout({\n layout,\n metadatas,\n schemaAttributes,\n fieldSizes,\n}: GetRemainingFieldsLayoutOptions) {\n const fieldsInLayout = layout.flatMap((panel) =>\n panel.flatMap((row) => row.flatMap((field) => field.name))\n );\n const remainingFields = Object.entries(metadatas).reduce<EditFieldLayout[]>(\n (currentRemainingFields, [name, field]) => {\n // Make sure we do not fields that are not visible, e.g. \"id\"\n if (!fieldsInLayout.includes(name) && field.edit.visible === true) {\n const attribute = schemaAttributes[name];\n // @ts-expect-error not sure why attribute causes type error\n currentRemainingFields.push({\n attribute,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: field.edit.label || name,\n name: name,\n size: fieldSizes[attribute.type].default ?? 12,\n });\n }\n\n return currentRemainingFields;\n },\n []\n );\n\n return createLayoutFromFields(remainingFields);\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FormPanel\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormPanel = ({ panel }: { panel: EditFieldLayout[][] }) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <VersionInputRenderer {...field} />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingLeft={6}\n paddingRight={6}\n paddingTop={6}\n paddingBottom={6}\n borderColor=\"neutral150\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {panel.map((row, gridRowIndex) => (\n <Grid.Root key={gridRowIndex} gap={4}>\n {row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <VersionInputRenderer {...field} />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n ))}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype UnknownField = EditFieldLayout & { shouldIgnoreRBAC: boolean };\n\nconst VersionContent = () => {\n const { formatMessage } = useIntl();\n const { fieldSizes } = useTypedSelector((state) => state['content-manager'].app);\n const version = useHistoryContext('VersionContent', (state) => state.selectedVersion);\n const layout = useHistoryContext('VersionContent', (state) => state.layout);\n const configuration = useHistoryContext('VersionContent', (state) => state.configuration);\n const schema = useHistoryContext('VersionContent', (state) => state.schema);\n\n // Build a layout for the unknown fields section\n const removedAttributes = version.meta.unknownAttributes.removed;\n const removedAttributesAsFields = Object.entries(removedAttributes).map(\n ([attributeName, attribute]) => {\n const field = {\n attribute,\n shouldIgnoreRBAC: true,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: attributeName,\n name: attributeName,\n size: fieldSizes[attribute.type].default ?? 12,\n } as UnknownField;\n\n return field;\n }\n );\n const unknownFieldsLayout = createLayoutFromFields(removedAttributesAsFields);\n\n // Build a layout for the fields that are were deleted from the layout\n const remainingFieldsLayout = getRemaingFieldsLayout({\n metadatas: configuration.contentType.metadatas,\n layout,\n schemaAttributes: schema.attributes,\n fieldSizes,\n });\n\n const { components } = useDoc();\n\n /**\n * Transform the data before passing it to the form so that each field\n * has a uniquely generated key\n */\n const transformedData = React.useMemo(() => {\n const transform =\n (schemaAttributes: Schema.Attributes, components: ComponentsDictionary = {}) =>\n (document: Omit<Document, 'id'>) => {\n const schema = { attributes: schemaAttributes };\n\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n prepareTempKeys(schema, components)\n );\n return transformations(document);\n };\n\n return transform(version.schema, components)(version.data);\n }, [components, version.data, version.schema]);\n\n return (\n <Layouts.Content>\n <Box paddingBottom={8}>\n <Form disabled={true} method=\"PUT\" initialValues={transformedData}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {[...layout, ...remainingFieldsLayout].map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n {removedAttributesAsFields.length > 0 && (\n <>\n <Divider />\n <Box paddingTop={8}>\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={6} gap={1}>\n <Typography variant=\"delta\">\n {formatMessage({\n id: 'content-manager.history.content.unknown-fields.title',\n defaultMessage: 'Unknown fields',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage(\n {\n id: 'content-manager.history.content.unknown-fields.message',\n defaultMessage:\n 'These fields have been deleted or renamed in the Content-Type Builder. <b>These fields will not be restored.</b>',\n },\n {\n b: (chunks: React.ReactNode) => (\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Form disabled={true} method=\"PUT\" initialValues={version.data}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {unknownFieldsLayout.map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n </>\n )}\n </Layouts.Content>\n );\n};\n\nexport { VersionContent, getRemaingFieldsLayout };\n"],"names":["createLayoutFromFields","fields","reduce","rows","field","type","push","length","map","row","getRemaingFieldsLayout","layout","metadatas","schemaAttributes","fieldSizes","fieldsInLayout","flatMap","panel","name","remainingFields","Object","entries","currentRemainingFields","includes","edit","visible","attribute","disabled","label","size","default","FormPanel","some","_jsx","Grid","Root","gap","Item","col","s","xs","direction","alignItems","VersionInputRenderer","Box","hasRadius","background","shadow","paddingLeft","paddingRight","paddingTop","paddingBottom","borderColor","Flex","gridRowIndex","VersionContent","formatMessage","useIntl","useTypedSelector","state","app","version","useHistoryContext","selectedVersion","configuration","schema","removedAttributes","meta","unknownAttributes","removed","removedAttributesAsFields","attributeName","shouldIgnoreRBAC","unknownFieldsLayout","remainingFieldsLayout","contentType","attributes","components","useDoc","transformedData","React","useMemo","transform","document","transformations","pipe","removeFieldsThatDontExistOnSchema","prepareTempKeys","data","_jsxs","Layouts","Content","Form","method","initialValues","position","index","_Fragment","Divider","Typography","variant","id","defaultMessage","b","chunks","fontWeight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VersionContent.js","sources":["../../../../admin/src/history/components/VersionContent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Form, Layouts, useForm, createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { Box, Divider, Flex, Grid, Typography } from '@strapi/design-system';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../hooks/useDocument';\nimport { useTypedSelector } from '../../modules/hooks';\nimport {\n prepareTempKeys,\n removeFieldsThatDontExistOnSchema,\n} from '../../pages/EditView/utils/data';\nimport { HistoryContextValue, useHistoryContext } from '../pages/History';\n\nimport { VersionInputRenderer } from './VersionInputRenderer';\n\nimport type { Metadatas } from '../../../../shared/contracts/content-types';\nimport type { GetInitData } from '../../../../shared/contracts/init';\nimport type { ComponentsDictionary, Document } from '../../hooks/useDocument';\nimport type { EditFieldLayout } from '../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\n\nconst createLayoutFromFields = <T extends EditFieldLayout | UnknownField>(fields: T[]) => {\n return (\n fields\n .reduce<Array<T[]>>((rows, field) => {\n if (field.type === 'dynamiczone') {\n // Dynamic zones take up all the columns in a row\n rows.push([field]);\n\n return rows;\n }\n\n if (!rows[rows.length - 1]) {\n // Create a new row if there isn't one available\n rows.push([]);\n }\n\n // Push fields to the current row, they wrap and handle their own column size\n rows[rows.length - 1].push(field);\n\n return rows;\n }, [])\n // Map the rows to panels\n .map((row) => [row])\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getRemainingFieldsLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GetRemainingFieldsLayoutOptions\n extends Pick<HistoryContextValue, 'layout'>,\n Pick<GetInitData.Response['data'], 'fieldSizes'> {\n schemaAttributes: HistoryContextValue['schema']['attributes'];\n metadatas: Metadatas;\n}\n\n/**\n * Build a layout for the fields that are were deleted from the edit view layout\n * via the configure the view page. This layout will be merged with the main one.\n * Those fields would be restored if the user restores the history version, which is why it's\n * important to show them, even if they're not in the normal layout.\n */\nfunction getRemaingFieldsLayout({\n layout,\n metadatas,\n schemaAttributes,\n fieldSizes,\n}: GetRemainingFieldsLayoutOptions) {\n const fieldsInLayout = layout.flatMap((panel) =>\n panel.flatMap((row) => row.flatMap((field) => field.name))\n );\n const remainingFields = Object.entries(metadatas).reduce<EditFieldLayout[]>(\n (currentRemainingFields, [name, field]) => {\n // Make sure we do not fields that are not visible, e.g. \"id\"\n if (!fieldsInLayout.includes(name) && field.edit.visible === true) {\n const attribute = schemaAttributes[name];\n // @ts-expect-error not sure why attribute causes type error\n currentRemainingFields.push({\n attribute,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: field.edit.label || name,\n name: name,\n size: fieldSizes[attribute.type].default ?? 12,\n });\n }\n\n return currentRemainingFields;\n },\n []\n );\n\n return createLayoutFromFields(remainingFields);\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FormPanel\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormPanel = ({ panel }: { panel: EditFieldLayout[][] }) => {\n const fieldValues = useForm('Fields', (state) => state.values);\n const rulesEngine = createRulesEngine();\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n const condition = field.attribute?.conditions?.visible;\n\n if (condition) {\n const isVisible = rulesEngine.evaluate(condition, fieldValues);\n if (!isVisible) {\n return null; // Skip rendering the dynamic zone if the condition is not met\n }\n }\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <VersionInputRenderer {...field} />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingLeft={6}\n paddingRight={6}\n paddingTop={6}\n paddingBottom={6}\n borderColor=\"neutral150\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {panel.map((row, gridRowIndex) => {\n const visibleFields = row.filter((field) => {\n const condition = field.attribute?.conditions?.visible;\n\n if (condition) {\n return rulesEngine.evaluate(condition, fieldValues);\n }\n\n return true;\n });\n\n if (visibleFields.length === 0) {\n return null; // Skip rendering the entire grid row\n }\n\n return (\n <Grid.Root key={gridRowIndex} gap={4}>\n {visibleFields.map(({ size, ...field }) => {\n return (\n <Grid.Item\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <VersionInputRenderer {...field} />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n );\n })}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype UnknownField = EditFieldLayout & { shouldIgnoreRBAC: boolean };\n\nconst VersionContent = () => {\n const { formatMessage } = useIntl();\n const { fieldSizes } = useTypedSelector((state) => state['content-manager'].app);\n const version = useHistoryContext('VersionContent', (state) => state.selectedVersion);\n const layout = useHistoryContext('VersionContent', (state) => state.layout);\n const configuration = useHistoryContext('VersionContent', (state) => state.configuration);\n const schema = useHistoryContext('VersionContent', (state) => state.schema);\n\n // Build a layout for the unknown fields section\n const removedAttributes = version.meta.unknownAttributes.removed;\n const removedAttributesAsFields = Object.entries(removedAttributes).map(\n ([attributeName, attribute]) => {\n const field = {\n attribute,\n shouldIgnoreRBAC: true,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: attributeName,\n name: attributeName,\n size: fieldSizes[attribute.type].default ?? 12,\n } as UnknownField;\n\n return field;\n }\n );\n const unknownFieldsLayout = createLayoutFromFields(removedAttributesAsFields);\n\n // Build a layout for the fields that are were deleted from the layout\n const remainingFieldsLayout = getRemaingFieldsLayout({\n metadatas: configuration.contentType.metadatas,\n layout,\n schemaAttributes: schema.attributes,\n fieldSizes,\n });\n\n const { components } = useDoc();\n\n /**\n * Transform the data before passing it to the form so that each field\n * has a uniquely generated key\n */\n const transformedData = React.useMemo(() => {\n const transform =\n (schemaAttributes: Schema.Attributes, components: ComponentsDictionary = {}) =>\n (document: Omit<Document, 'id'>) => {\n const schema = { attributes: schemaAttributes };\n\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n prepareTempKeys(schema, components)\n );\n return transformations(document);\n };\n\n return transform(version.schema, components)(version.data);\n }, [components, version.data, version.schema]);\n\n return (\n <Layouts.Content>\n <Box paddingBottom={8}>\n <Form disabled={true} method=\"PUT\" initialValues={transformedData}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {[...layout, ...remainingFieldsLayout].map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n {removedAttributesAsFields.length > 0 && (\n <>\n <Divider />\n <Box paddingTop={8}>\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={6} gap={1}>\n <Typography variant=\"delta\">\n {formatMessage({\n id: 'content-manager.history.content.unknown-fields.title',\n defaultMessage: 'Unknown fields',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage(\n {\n id: 'content-manager.history.content.unknown-fields.message',\n defaultMessage:\n 'These fields have been deleted or renamed in the Content-Type Builder. <b>These fields will not be restored.</b>',\n },\n {\n b: (chunks: React.ReactNode) => (\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Form disabled={true} method=\"PUT\" initialValues={version.data}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {unknownFieldsLayout.map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n </>\n )}\n </Layouts.Content>\n );\n};\n\nexport { VersionContent, getRemaingFieldsLayout };\n"],"names":["createLayoutFromFields","fields","reduce","rows","field","type","push","length","map","row","getRemaingFieldsLayout","layout","metadatas","schemaAttributes","fieldSizes","fieldsInLayout","flatMap","panel","name","remainingFields","Object","entries","currentRemainingFields","includes","edit","visible","attribute","disabled","label","size","default","FormPanel","fieldValues","useForm","state","values","rulesEngine","createRulesEngine","some","condition","conditions","isVisible","evaluate","_jsx","Grid","Root","gap","Item","col","s","xs","direction","alignItems","VersionInputRenderer","Box","hasRadius","background","shadow","paddingLeft","paddingRight","paddingTop","paddingBottom","borderColor","Flex","gridRowIndex","visibleFields","filter","VersionContent","formatMessage","useIntl","useTypedSelector","app","version","useHistoryContext","selectedVersion","configuration","schema","removedAttributes","meta","unknownAttributes","removed","removedAttributesAsFields","attributeName","shouldIgnoreRBAC","unknownFieldsLayout","remainingFieldsLayout","contentType","attributes","components","useDoc","transformedData","React","useMemo","transform","document","transformations","pipe","removeFieldsThatDontExistOnSchema","prepareTempKeys","data","_jsxs","Layouts","Content","Form","method","initialValues","position","index","_Fragment","Divider","Typography","variant","id","defaultMessage","b","chunks","fontWeight"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Layouts, Form } from '@strapi/admin/strapi-admin';
|
|
3
|
+
import { Layouts, Form, useForm, createRulesEngine } from '@strapi/admin/strapi-admin';
|
|
4
4
|
import { Box, Flex, Divider, Typography, Grid } from '@strapi/design-system';
|
|
5
5
|
import pipe from 'lodash/fp/pipe';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
|
@@ -60,9 +60,18 @@ const createLayoutFromFields = (fields)=>{
|
|
|
60
60
|
/* -------------------------------------------------------------------------------------------------
|
|
61
61
|
* FormPanel
|
|
62
62
|
* -----------------------------------------------------------------------------------------------*/ const FormPanel = ({ panel })=>{
|
|
63
|
+
const fieldValues = useForm('Fields', (state)=>state.values);
|
|
64
|
+
const rulesEngine = createRulesEngine();
|
|
63
65
|
if (panel.some((row)=>row.some((field)=>field.type === 'dynamiczone'))) {
|
|
64
66
|
const [row] = panel;
|
|
65
67
|
const [field] = row;
|
|
68
|
+
const condition = field.attribute?.conditions?.visible;
|
|
69
|
+
if (condition) {
|
|
70
|
+
const isVisible = rulesEngine.evaluate(condition, fieldValues);
|
|
71
|
+
if (!isVisible) {
|
|
72
|
+
return null; // Skip rendering the dynamic zone if the condition is not met
|
|
73
|
+
}
|
|
74
|
+
}
|
|
66
75
|
return /*#__PURE__*/ jsx(Grid.Root, {
|
|
67
76
|
gap: 4,
|
|
68
77
|
children: /*#__PURE__*/ jsx(Grid.Item, {
|
|
@@ -90,9 +99,20 @@ const createLayoutFromFields = (fields)=>{
|
|
|
90
99
|
direction: "column",
|
|
91
100
|
alignItems: "stretch",
|
|
92
101
|
gap: 6,
|
|
93
|
-
children: panel.map((row, gridRowIndex)
|
|
102
|
+
children: panel.map((row, gridRowIndex)=>{
|
|
103
|
+
const visibleFields = row.filter((field)=>{
|
|
104
|
+
const condition = field.attribute?.conditions?.visible;
|
|
105
|
+
if (condition) {
|
|
106
|
+
return rulesEngine.evaluate(condition, fieldValues);
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
});
|
|
110
|
+
if (visibleFields.length === 0) {
|
|
111
|
+
return null; // Skip rendering the entire grid row
|
|
112
|
+
}
|
|
113
|
+
return /*#__PURE__*/ jsx(Grid.Root, {
|
|
94
114
|
gap: 4,
|
|
95
|
-
children:
|
|
115
|
+
children: visibleFields.map(({ size, ...field })=>{
|
|
96
116
|
return /*#__PURE__*/ jsx(Grid.Item, {
|
|
97
117
|
col: size,
|
|
98
118
|
s: 12,
|
|
@@ -104,7 +124,8 @@ const createLayoutFromFields = (fields)=>{
|
|
|
104
124
|
})
|
|
105
125
|
}, field.name);
|
|
106
126
|
})
|
|
107
|
-
}, gridRowIndex)
|
|
127
|
+
}, gridRowIndex);
|
|
128
|
+
})
|
|
108
129
|
})
|
|
109
130
|
});
|
|
110
131
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionContent.mjs","sources":["../../../../admin/src/history/components/VersionContent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Form, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Divider, Flex, Grid, Typography } from '@strapi/design-system';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../hooks/useDocument';\nimport { useTypedSelector } from '../../modules/hooks';\nimport {\n prepareTempKeys,\n removeFieldsThatDontExistOnSchema,\n} from '../../pages/EditView/utils/data';\nimport { HistoryContextValue, useHistoryContext } from '../pages/History';\n\nimport { VersionInputRenderer } from './VersionInputRenderer';\n\nimport type { Metadatas } from '../../../../shared/contracts/content-types';\nimport type { GetInitData } from '../../../../shared/contracts/init';\nimport type { ComponentsDictionary, Document } from '../../hooks/useDocument';\nimport type { EditFieldLayout } from '../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\n\nconst createLayoutFromFields = <T extends EditFieldLayout | UnknownField>(fields: T[]) => {\n return (\n fields\n .reduce<Array<T[]>>((rows, field) => {\n if (field.type === 'dynamiczone') {\n // Dynamic zones take up all the columns in a row\n rows.push([field]);\n\n return rows;\n }\n\n if (!rows[rows.length - 1]) {\n // Create a new row if there isn't one available\n rows.push([]);\n }\n\n // Push fields to the current row, they wrap and handle their own column size\n rows[rows.length - 1].push(field);\n\n return rows;\n }, [])\n // Map the rows to panels\n .map((row) => [row])\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getRemainingFieldsLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GetRemainingFieldsLayoutOptions\n extends Pick<HistoryContextValue, 'layout'>,\n Pick<GetInitData.Response['data'], 'fieldSizes'> {\n schemaAttributes: HistoryContextValue['schema']['attributes'];\n metadatas: Metadatas;\n}\n\n/**\n * Build a layout for the fields that are were deleted from the edit view layout\n * via the configure the view page. This layout will be merged with the main one.\n * Those fields would be restored if the user restores the history version, which is why it's\n * important to show them, even if they're not in the normal layout.\n */\nfunction getRemaingFieldsLayout({\n layout,\n metadatas,\n schemaAttributes,\n fieldSizes,\n}: GetRemainingFieldsLayoutOptions) {\n const fieldsInLayout = layout.flatMap((panel) =>\n panel.flatMap((row) => row.flatMap((field) => field.name))\n );\n const remainingFields = Object.entries(metadatas).reduce<EditFieldLayout[]>(\n (currentRemainingFields, [name, field]) => {\n // Make sure we do not fields that are not visible, e.g. \"id\"\n if (!fieldsInLayout.includes(name) && field.edit.visible === true) {\n const attribute = schemaAttributes[name];\n // @ts-expect-error not sure why attribute causes type error\n currentRemainingFields.push({\n attribute,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: field.edit.label || name,\n name: name,\n size: fieldSizes[attribute.type].default ?? 12,\n });\n }\n\n return currentRemainingFields;\n },\n []\n );\n\n return createLayoutFromFields(remainingFields);\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FormPanel\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormPanel = ({ panel }: { panel: EditFieldLayout[][] }) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <VersionInputRenderer {...field} />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingLeft={6}\n paddingRight={6}\n paddingTop={6}\n paddingBottom={6}\n borderColor=\"neutral150\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {panel.map((row, gridRowIndex) => (\n <Grid.Root key={gridRowIndex} gap={4}>\n {row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <VersionInputRenderer {...field} />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n ))}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype UnknownField = EditFieldLayout & { shouldIgnoreRBAC: boolean };\n\nconst VersionContent = () => {\n const { formatMessage } = useIntl();\n const { fieldSizes } = useTypedSelector((state) => state['content-manager'].app);\n const version = useHistoryContext('VersionContent', (state) => state.selectedVersion);\n const layout = useHistoryContext('VersionContent', (state) => state.layout);\n const configuration = useHistoryContext('VersionContent', (state) => state.configuration);\n const schema = useHistoryContext('VersionContent', (state) => state.schema);\n\n // Build a layout for the unknown fields section\n const removedAttributes = version.meta.unknownAttributes.removed;\n const removedAttributesAsFields = Object.entries(removedAttributes).map(\n ([attributeName, attribute]) => {\n const field = {\n attribute,\n shouldIgnoreRBAC: true,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: attributeName,\n name: attributeName,\n size: fieldSizes[attribute.type].default ?? 12,\n } as UnknownField;\n\n return field;\n }\n );\n const unknownFieldsLayout = createLayoutFromFields(removedAttributesAsFields);\n\n // Build a layout for the fields that are were deleted from the layout\n const remainingFieldsLayout = getRemaingFieldsLayout({\n metadatas: configuration.contentType.metadatas,\n layout,\n schemaAttributes: schema.attributes,\n fieldSizes,\n });\n\n const { components } = useDoc();\n\n /**\n * Transform the data before passing it to the form so that each field\n * has a uniquely generated key\n */\n const transformedData = React.useMemo(() => {\n const transform =\n (schemaAttributes: Schema.Attributes, components: ComponentsDictionary = {}) =>\n (document: Omit<Document, 'id'>) => {\n const schema = { attributes: schemaAttributes };\n\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n prepareTempKeys(schema, components)\n );\n return transformations(document);\n };\n\n return transform(version.schema, components)(version.data);\n }, [components, version.data, version.schema]);\n\n return (\n <Layouts.Content>\n <Box paddingBottom={8}>\n <Form disabled={true} method=\"PUT\" initialValues={transformedData}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {[...layout, ...remainingFieldsLayout].map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n {removedAttributesAsFields.length > 0 && (\n <>\n <Divider />\n <Box paddingTop={8}>\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={6} gap={1}>\n <Typography variant=\"delta\">\n {formatMessage({\n id: 'content-manager.history.content.unknown-fields.title',\n defaultMessage: 'Unknown fields',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage(\n {\n id: 'content-manager.history.content.unknown-fields.message',\n defaultMessage:\n 'These fields have been deleted or renamed in the Content-Type Builder. <b>These fields will not be restored.</b>',\n },\n {\n b: (chunks: React.ReactNode) => (\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Form disabled={true} method=\"PUT\" initialValues={version.data}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {unknownFieldsLayout.map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n </>\n )}\n </Layouts.Content>\n );\n};\n\nexport { VersionContent, getRemaingFieldsLayout };\n"],"names":["createLayoutFromFields","fields","reduce","rows","field","type","push","length","map","row","getRemaingFieldsLayout","layout","metadatas","schemaAttributes","fieldSizes","fieldsInLayout","flatMap","panel","name","remainingFields","Object","entries","currentRemainingFields","includes","edit","visible","attribute","disabled","label","size","default","FormPanel","some","_jsx","Grid","Root","gap","Item","col","s","xs","direction","alignItems","VersionInputRenderer","Box","hasRadius","background","shadow","paddingLeft","paddingRight","paddingTop","paddingBottom","borderColor","Flex","gridRowIndex","VersionContent","formatMessage","useIntl","useTypedSelector","state","app","version","useHistoryContext","selectedVersion","configuration","schema","removedAttributes","meta","unknownAttributes","removed","removedAttributesAsFields","attributeName","shouldIgnoreRBAC","unknownFieldsLayout","remainingFieldsLayout","contentType","attributes","components","useDoc","transformedData","React","useMemo","transform","document","transformations","pipe","removeFieldsThatDontExistOnSchema","prepareTempKeys","data","_jsxs","Layouts","Content","Form","method","initialValues","position","index","_Fragment","Divider","Typography","variant","id","defaultMessage","b","chunks","fontWeight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VersionContent.mjs","sources":["../../../../admin/src/history/components/VersionContent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Form, Layouts, useForm, createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { Box, Divider, Flex, Grid, Typography } from '@strapi/design-system';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../hooks/useDocument';\nimport { useTypedSelector } from '../../modules/hooks';\nimport {\n prepareTempKeys,\n removeFieldsThatDontExistOnSchema,\n} from '../../pages/EditView/utils/data';\nimport { HistoryContextValue, useHistoryContext } from '../pages/History';\n\nimport { VersionInputRenderer } from './VersionInputRenderer';\n\nimport type { Metadatas } from '../../../../shared/contracts/content-types';\nimport type { GetInitData } from '../../../../shared/contracts/init';\nimport type { ComponentsDictionary, Document } from '../../hooks/useDocument';\nimport type { EditFieldLayout } from '../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\n\nconst createLayoutFromFields = <T extends EditFieldLayout | UnknownField>(fields: T[]) => {\n return (\n fields\n .reduce<Array<T[]>>((rows, field) => {\n if (field.type === 'dynamiczone') {\n // Dynamic zones take up all the columns in a row\n rows.push([field]);\n\n return rows;\n }\n\n if (!rows[rows.length - 1]) {\n // Create a new row if there isn't one available\n rows.push([]);\n }\n\n // Push fields to the current row, they wrap and handle their own column size\n rows[rows.length - 1].push(field);\n\n return rows;\n }, [])\n // Map the rows to panels\n .map((row) => [row])\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getRemainingFieldsLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GetRemainingFieldsLayoutOptions\n extends Pick<HistoryContextValue, 'layout'>,\n Pick<GetInitData.Response['data'], 'fieldSizes'> {\n schemaAttributes: HistoryContextValue['schema']['attributes'];\n metadatas: Metadatas;\n}\n\n/**\n * Build a layout for the fields that are were deleted from the edit view layout\n * via the configure the view page. This layout will be merged with the main one.\n * Those fields would be restored if the user restores the history version, which is why it's\n * important to show them, even if they're not in the normal layout.\n */\nfunction getRemaingFieldsLayout({\n layout,\n metadatas,\n schemaAttributes,\n fieldSizes,\n}: GetRemainingFieldsLayoutOptions) {\n const fieldsInLayout = layout.flatMap((panel) =>\n panel.flatMap((row) => row.flatMap((field) => field.name))\n );\n const remainingFields = Object.entries(metadatas).reduce<EditFieldLayout[]>(\n (currentRemainingFields, [name, field]) => {\n // Make sure we do not fields that are not visible, e.g. \"id\"\n if (!fieldsInLayout.includes(name) && field.edit.visible === true) {\n const attribute = schemaAttributes[name];\n // @ts-expect-error not sure why attribute causes type error\n currentRemainingFields.push({\n attribute,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: field.edit.label || name,\n name: name,\n size: fieldSizes[attribute.type].default ?? 12,\n });\n }\n\n return currentRemainingFields;\n },\n []\n );\n\n return createLayoutFromFields(remainingFields);\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FormPanel\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormPanel = ({ panel }: { panel: EditFieldLayout[][] }) => {\n const fieldValues = useForm('Fields', (state) => state.values);\n const rulesEngine = createRulesEngine();\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n const condition = field.attribute?.conditions?.visible;\n\n if (condition) {\n const isVisible = rulesEngine.evaluate(condition, fieldValues);\n if (!isVisible) {\n return null; // Skip rendering the dynamic zone if the condition is not met\n }\n }\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <VersionInputRenderer {...field} />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingLeft={6}\n paddingRight={6}\n paddingTop={6}\n paddingBottom={6}\n borderColor=\"neutral150\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {panel.map((row, gridRowIndex) => {\n const visibleFields = row.filter((field) => {\n const condition = field.attribute?.conditions?.visible;\n\n if (condition) {\n return rulesEngine.evaluate(condition, fieldValues);\n }\n\n return true;\n });\n\n if (visibleFields.length === 0) {\n return null; // Skip rendering the entire grid row\n }\n\n return (\n <Grid.Root key={gridRowIndex} gap={4}>\n {visibleFields.map(({ size, ...field }) => {\n return (\n <Grid.Item\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <VersionInputRenderer {...field} />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n );\n })}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype UnknownField = EditFieldLayout & { shouldIgnoreRBAC: boolean };\n\nconst VersionContent = () => {\n const { formatMessage } = useIntl();\n const { fieldSizes } = useTypedSelector((state) => state['content-manager'].app);\n const version = useHistoryContext('VersionContent', (state) => state.selectedVersion);\n const layout = useHistoryContext('VersionContent', (state) => state.layout);\n const configuration = useHistoryContext('VersionContent', (state) => state.configuration);\n const schema = useHistoryContext('VersionContent', (state) => state.schema);\n\n // Build a layout for the unknown fields section\n const removedAttributes = version.meta.unknownAttributes.removed;\n const removedAttributesAsFields = Object.entries(removedAttributes).map(\n ([attributeName, attribute]) => {\n const field = {\n attribute,\n shouldIgnoreRBAC: true,\n type: attribute.type,\n visible: true,\n disabled: true,\n label: attributeName,\n name: attributeName,\n size: fieldSizes[attribute.type].default ?? 12,\n } as UnknownField;\n\n return field;\n }\n );\n const unknownFieldsLayout = createLayoutFromFields(removedAttributesAsFields);\n\n // Build a layout for the fields that are were deleted from the layout\n const remainingFieldsLayout = getRemaingFieldsLayout({\n metadatas: configuration.contentType.metadatas,\n layout,\n schemaAttributes: schema.attributes,\n fieldSizes,\n });\n\n const { components } = useDoc();\n\n /**\n * Transform the data before passing it to the form so that each field\n * has a uniquely generated key\n */\n const transformedData = React.useMemo(() => {\n const transform =\n (schemaAttributes: Schema.Attributes, components: ComponentsDictionary = {}) =>\n (document: Omit<Document, 'id'>) => {\n const schema = { attributes: schemaAttributes };\n\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n prepareTempKeys(schema, components)\n );\n return transformations(document);\n };\n\n return transform(version.schema, components)(version.data);\n }, [components, version.data, version.schema]);\n\n return (\n <Layouts.Content>\n <Box paddingBottom={8}>\n <Form disabled={true} method=\"PUT\" initialValues={transformedData}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {[...layout, ...remainingFieldsLayout].map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n {removedAttributesAsFields.length > 0 && (\n <>\n <Divider />\n <Box paddingTop={8}>\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={6} gap={1}>\n <Typography variant=\"delta\">\n {formatMessage({\n id: 'content-manager.history.content.unknown-fields.title',\n defaultMessage: 'Unknown fields',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage(\n {\n id: 'content-manager.history.content.unknown-fields.message',\n defaultMessage:\n 'These fields have been deleted or renamed in the Content-Type Builder. <b>These fields will not be restored.</b>',\n },\n {\n b: (chunks: React.ReactNode) => (\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Form disabled={true} method=\"PUT\" initialValues={version.data}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\">\n {unknownFieldsLayout.map((panel, index) => {\n return <FormPanel key={index} panel={panel} />;\n })}\n </Flex>\n </Form>\n </Box>\n </>\n )}\n </Layouts.Content>\n );\n};\n\nexport { VersionContent, getRemaingFieldsLayout };\n"],"names":["createLayoutFromFields","fields","reduce","rows","field","type","push","length","map","row","getRemaingFieldsLayout","layout","metadatas","schemaAttributes","fieldSizes","fieldsInLayout","flatMap","panel","name","remainingFields","Object","entries","currentRemainingFields","includes","edit","visible","attribute","disabled","label","size","default","FormPanel","fieldValues","useForm","state","values","rulesEngine","createRulesEngine","some","condition","conditions","isVisible","evaluate","_jsx","Grid","Root","gap","Item","col","s","xs","direction","alignItems","VersionInputRenderer","Box","hasRadius","background","shadow","paddingLeft","paddingRight","paddingTop","paddingBottom","borderColor","Flex","gridRowIndex","visibleFields","filter","VersionContent","formatMessage","useIntl","useTypedSelector","app","version","useHistoryContext","selectedVersion","configuration","schema","removedAttributes","meta","unknownAttributes","removed","removedAttributesAsFields","attributeName","shouldIgnoreRBAC","unknownFieldsLayout","remainingFieldsLayout","contentType","attributes","components","useDoc","transformedData","React","useMemo","transform","document","transformations","pipe","removeFieldsThatDontExistOnSchema","prepareTempKeys","data","_jsxs","Layouts","Content","Form","method","initialValues","position","index","_Fragment","Divider","Typography","variant","id","defaultMessage","b","chunks","fontWeight"],"mappings":"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"}
|
|
@@ -60,7 +60,6 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
|
60
60
|
const { trackUsage } = strapiAdmin.useTracking();
|
|
61
61
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
62
62
|
const navigate = reactRouterDom.useNavigate();
|
|
63
|
-
const setCurrentStep = strapiAdmin.useGuidedTour('useDocumentActions', (state)=>state.setCurrentStep);
|
|
64
63
|
// Get metadata from context providers for tracking purposes
|
|
65
64
|
const previewContext = Preview.usePreviewContext('useDocumentActions', ()=>true, false);
|
|
66
65
|
const relationContext = RelationModal.useRelationModal('useDocumentActions', ()=>true, false);
|
|
@@ -465,7 +464,6 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
|
465
464
|
defaultMessage: 'Saved document'
|
|
466
465
|
})
|
|
467
466
|
});
|
|
468
|
-
setCurrentStep('contentManager.success');
|
|
469
467
|
return res.data;
|
|
470
468
|
} catch (err) {
|
|
471
469
|
toggleNotification({
|
|
@@ -484,7 +482,6 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
|
484
482
|
formatMessage,
|
|
485
483
|
fromPreview,
|
|
486
484
|
fromRelationModal,
|
|
487
|
-
setCurrentStep,
|
|
488
485
|
toggleNotification,
|
|
489
486
|
trackUsage
|
|
490
487
|
]);
|