@strapi/content-manager 0.0.0-experimental.25e22c6cc9bc6b35392bb55d09f641a0a65e7403 → 0.0.0-experimental.3c73a4c6f6073abdf1608121a200c3d4d87b1aa8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{ComponentConfigurationPage-WRPUXGd6.js → ComponentConfigurationPage-BZIaEffq.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-WRPUXGd6.js.map → ComponentConfigurationPage-BZIaEffq.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-gdUj_t-O.mjs → ComponentConfigurationPage-Cxz51Sve.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-gdUj_t-O.mjs.map → ComponentConfigurationPage-Cxz51Sve.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-C1vjMBgy.js → EditConfigurationPage-CM62NN0L.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-C1vjMBgy.js.map → EditConfigurationPage-CM62NN0L.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-BwuIPOJG.mjs → EditConfigurationPage-CZLbgfIp.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-BwuIPOJG.mjs.map → EditConfigurationPage-CZLbgfIp.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-DbcGfyqK.js → EditViewPage-CU7724gt.js} +45 -45
- package/dist/_chunks/EditViewPage-CU7724gt.js.map +1 -0
- package/dist/_chunks/{EditViewPage-0MiFkXa8.mjs → EditViewPage-CzuJgWWp.mjs} +46 -46
- package/dist/_chunks/EditViewPage-CzuJgWWp.mjs.map +1 -0
- package/dist/_chunks/{Field-BG1xu38N.js → Field-Dh1yZyqy.js} +115 -103
- package/dist/_chunks/Field-Dh1yZyqy.js.map +1 -0
- package/dist/_chunks/{Field-BDMSCcy5.mjs → Field-QtUSh5mU.mjs} +116 -104
- package/dist/_chunks/Field-QtUSh5mU.mjs.map +1 -0
- package/dist/_chunks/{Form-9BnFyUjy.js → Form-BOR8NOe1.js} +25 -21
- package/dist/_chunks/Form-BOR8NOe1.js.map +1 -0
- package/dist/_chunks/{Form-CPVWavB8.mjs → Form-COLpvlnv.mjs} +27 -23
- package/dist/_chunks/Form-COLpvlnv.mjs.map +1 -0
- package/dist/_chunks/{History-BVpd8LP3.mjs → History-Bu53Yfw-.mjs} +22 -101
- package/dist/_chunks/History-Bu53Yfw-.mjs.map +1 -0
- package/dist/_chunks/{History-BWWxLt2Z.js → History-CW2akQ6h.js} +21 -100
- package/dist/_chunks/History-CW2akQ6h.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DozVMKcR.mjs → ListConfigurationPage-TqrmwjPN.mjs} +45 -43
- package/dist/_chunks/ListConfigurationPage-TqrmwjPN.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-6swzjdAZ.js → ListConfigurationPage-jzdhEk_u.js} +43 -42
- package/dist/_chunks/ListConfigurationPage-jzdhEk_u.js.map +1 -0
- package/dist/_chunks/{ListViewPage-BlzfjS2Q.js → ListViewPage-B3bMOrMv.js} +64 -47
- package/dist/_chunks/ListViewPage-B3bMOrMv.js.map +1 -0
- package/dist/_chunks/{ListViewPage-Ds0ulgfG.mjs → ListViewPage-BO_mOXIl.mjs} +65 -48
- package/dist/_chunks/ListViewPage-BO_mOXIl.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-D2nCCWEl.js → NoContentTypePage-D77xsNHj.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-D2nCCWEl.js.map → NoContentTypePage-D77xsNHj.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BH11kaKt.mjs → NoContentTypePage-DqB0QV0k.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-BH11kaKt.mjs.map → NoContentTypePage-DqB0QV0k.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DN_JlsU2.js → NoPermissionsPage-C6qTGogm.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DN_JlsU2.js.map → NoPermissionsPage-C6qTGogm.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-BT2Tn0D_.mjs → NoPermissionsPage-DTXi042N.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-BT2Tn0D_.mjs.map → NoPermissionsPage-DTXi042N.mjs.map} +1 -1
- package/dist/_chunks/{Relations-CcgFTcWo.js → Relations-B6fb2POW.js} +3 -3
- package/dist/_chunks/{Relations-CcgFTcWo.js.map → Relations-B6fb2POW.js.map} +1 -1
- package/dist/_chunks/{Relations-Dnag3fhV.mjs → Relations-CJ4qdkRo.mjs} +3 -3
- package/dist/_chunks/{Relations-Dnag3fhV.mjs.map → Relations-CJ4qdkRo.mjs.map} +1 -1
- package/dist/_chunks/{en-Ux26r5pl.mjs → en-9GwRW_ku.mjs} +1 -3
- package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-9GwRW_ku.mjs.map} +1 -1
- package/dist/_chunks/{en-fbKQxLGn.js → en-DZXjRiWA.js} +1 -3
- package/dist/_chunks/{en-fbKQxLGn.js.map → en-DZXjRiWA.js.map} +1 -1
- package/dist/_chunks/{index-JNNNKUHs.mjs → index-Dahjdw4h.mjs} +266 -88
- package/dist/_chunks/index-Dahjdw4h.mjs.map +1 -0
- package/dist/_chunks/{index-CWpLBSt0.js → index-DcUu-_72.js} +265 -87
- package/dist/_chunks/index-DcUu-_72.js.map +1 -0
- package/dist/_chunks/{layout--iHdZzRk.js → layout-jcY4dyUG.js} +3 -3
- package/dist/_chunks/{layout--iHdZzRk.js.map → layout-jcY4dyUG.js.map} +1 -1
- package/dist/_chunks/{layout-DC503LnF.mjs → layout-omucV6TV.mjs} +3 -3
- package/dist/_chunks/{layout-DC503LnF.mjs.map → layout-omucV6TV.mjs.map} +1 -1
- package/dist/_chunks/{relations-CTje5t-a.mjs → relations-CN0-aw6p.mjs} +2 -2
- package/dist/_chunks/{relations-CTje5t-a.mjs.map → relations-CN0-aw6p.mjs.map} +1 -1
- package/dist/_chunks/{relations-BbHizA5K.js → relations-DGzD7ORa.js} +2 -2
- package/dist/_chunks/{relations-BbHizA5K.js.map → relations-DGzD7ORa.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/history/components/VersionInputRenderer.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +3 -7
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +10 -2
- package/dist/admin/src/pages/ListView/components/BulkActions/Actions.d.ts +30 -3
- package/dist/admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +2 -2
- package/dist/server/index.js +0 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +0 -3
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/_chunks/EditViewPage-0MiFkXa8.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-DbcGfyqK.js.map +0 -1
- package/dist/_chunks/Field-BDMSCcy5.mjs.map +0 -1
- package/dist/_chunks/Field-BG1xu38N.js.map +0 -1
- package/dist/_chunks/Form-9BnFyUjy.js.map +0 -1
- package/dist/_chunks/Form-CPVWavB8.mjs.map +0 -1
- package/dist/_chunks/History-BVpd8LP3.mjs.map +0 -1
- package/dist/_chunks/History-BWWxLt2Z.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-6swzjdAZ.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DozVMKcR.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-BlzfjS2Q.js.map +0 -1
- package/dist/_chunks/ListViewPage-Ds0ulgfG.mjs.map +0 -1
- package/dist/_chunks/index-CWpLBSt0.js.map +0 -1
- package/dist/_chunks/index-JNNNKUHs.mjs.map +0 -1
@@ -1,12 +1,12 @@
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
2
2
|
import * as React from "react";
|
3
3
|
import { useQueryParams, useNotification, Page, Form, Blocker, useRBAC } from "@strapi/admin/strapi-admin";
|
4
|
-
import { Flex, Grid, Box, Main, Tabs } from "@strapi/design-system";
|
4
|
+
import { Flex, Grid, GridItem, Box, Main, TabGroup, Tabs, TabPanels, TabPanel, Tab } from "@strapi/design-system";
|
5
5
|
import { useIntl } from "react-intl";
|
6
6
|
import { useLocation, useParams } from "react-router-dom";
|
7
7
|
import { styled } from "styled-components";
|
8
|
-
import { c as useDoc, f as useDocumentRBAC, h as useDocumentLayout, i as createYupSchema, j as Header, g as getTranslation, P as Panels, k as PERMISSIONS, l as DocumentRBAC, S as SINGLE_TYPES } from "./index-
|
9
|
-
import { M as MemoizedInputRenderer, u as useLazyComponents, c as createDefaultForm, t as transformDocument } from "./Field-
|
8
|
+
import { c as useDoc, f as useDocumentRBAC, h as useDocumentLayout, i as createYupSchema, j as Header, g as getTranslation, P as Panels, k as PERMISSIONS, l as DocumentRBAC, S as SINGLE_TYPES } from "./index-Dahjdw4h.mjs";
|
9
|
+
import { M as MemoizedInputRenderer, u as useLazyComponents, c as createDefaultForm, t as transformDocument } from "./Field-QtUSh5mU.mjs";
|
10
10
|
const useOnce = (effect) => React.useEffect(effect, emptyDeps);
|
11
11
|
const emptyDeps = [];
|
12
12
|
const FormLayout = ({ layout }) => {
|
@@ -14,7 +14,7 @@ const FormLayout = ({ layout }) => {
|
|
14
14
|
if (panel.some((row) => row.some((field) => field.type === "dynamiczone"))) {
|
15
15
|
const [row] = panel;
|
16
16
|
const [field] = row;
|
17
|
-
return /* @__PURE__ */ jsx(Grid
|
17
|
+
return /* @__PURE__ */ jsx(Grid, { gap: 4, children: /* @__PURE__ */ jsx(GridItem, { col: 12, s: 12, xs: 12, children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field }) }) }, field.name);
|
18
18
|
}
|
19
19
|
return /* @__PURE__ */ jsx(
|
20
20
|
Box,
|
@@ -27,8 +27,8 @@ const FormLayout = ({ layout }) => {
|
|
27
27
|
paddingTop: 6,
|
28
28
|
paddingBottom: 6,
|
29
29
|
borderColor: "neutral150",
|
30
|
-
children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: panel.map((row, gridRowIndex) => /* @__PURE__ */ jsx(Grid
|
31
|
-
return /* @__PURE__ */ jsx(
|
30
|
+
children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: panel.map((row, gridRowIndex) => /* @__PURE__ */ jsx(Grid, { gap: 4, children: row.map(({ size, ...field }) => {
|
31
|
+
return /* @__PURE__ */ jsx(GridItem, { col: size, s: 12, xs: 12, children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field }) }, field.name);
|
32
32
|
}) }, gridRowIndex)) })
|
33
33
|
},
|
34
34
|
index
|
@@ -42,11 +42,10 @@ const EditViewPage = () => {
|
|
42
42
|
query: { status }
|
43
43
|
},
|
44
44
|
setQuery
|
45
|
-
] = useQueryParams(
|
46
|
-
status: "draft"
|
47
|
-
});
|
45
|
+
] = useQueryParams();
|
48
46
|
const { formatMessage } = useIntl();
|
49
47
|
const { toggleNotification } = useNotification();
|
48
|
+
const tabApi = React.useRef(null);
|
50
49
|
const {
|
51
50
|
document,
|
52
51
|
meta,
|
@@ -92,9 +91,11 @@ const EditViewPage = () => {
|
|
92
91
|
if (!initialValues) {
|
93
92
|
return /* @__PURE__ */ jsx(Page.Error, {});
|
94
93
|
}
|
95
|
-
const handleTabChange = (
|
96
|
-
if (
|
97
|
-
setQuery({ status:
|
94
|
+
const handleTabChange = (index) => {
|
95
|
+
if (index === 0) {
|
96
|
+
setQuery({ status: "draft" }, "push", true);
|
97
|
+
} else {
|
98
|
+
setQuery({ status: "published" }, "push", true);
|
98
99
|
}
|
99
100
|
};
|
100
101
|
const documentTitle = mainField !== "id" && document?.[mainField] ? document[mainField] : "Untitled";
|
@@ -116,41 +117,40 @@ const EditViewPage = () => {
|
|
116
117
|
title: documentTitle
|
117
118
|
}
|
118
119
|
),
|
119
|
-
/* @__PURE__ */ jsxs(
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
120
|
+
/* @__PURE__ */ jsxs(
|
121
|
+
TabGroup,
|
122
|
+
{
|
123
|
+
ref: tabApi,
|
124
|
+
variant: "simple",
|
125
|
+
label: formatMessage({
|
126
|
+
id: getTranslation("containers.edit.tabs.label"),
|
127
|
+
defaultMessage: "Document status"
|
128
|
+
}),
|
129
|
+
selectedTabIndex: hasDraftAndPublished && status === "published" ? 1 : 0,
|
130
|
+
onTabChange: (index) => {
|
131
|
+
handleTabChange(index);
|
132
|
+
},
|
133
|
+
children: [
|
134
|
+
hasDraftAndPublished ? /* @__PURE__ */ jsxs(Tabs, { children: [
|
135
|
+
/* @__PURE__ */ jsx(StatusTab, { children: formatMessage({
|
129
136
|
id: getTranslation("containers.edit.tabs.draft"),
|
130
137
|
defaultMessage: "draft"
|
131
138
|
}) }),
|
132
|
-
/* @__PURE__ */ jsx(
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
)
|
143
|
-
] })
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
/* @__PURE__ */ jsxs(Grid.Item, { col: 9, s: 12, children: [
|
148
|
-
/* @__PURE__ */ jsx(Tabs.Content, { value: "draft", children: /* @__PURE__ */ jsx(FormLayout, { layout }) }),
|
149
|
-
/* @__PURE__ */ jsx(Tabs.Content, { value: "published", children: /* @__PURE__ */ jsx(FormLayout, { layout }) })
|
150
|
-
] }),
|
151
|
-
/* @__PURE__ */ jsx(Grid.Item, { col: 3, s: 12, children: /* @__PURE__ */ jsx(Panels, {}) })
|
152
|
-
] })
|
153
|
-
] }),
|
139
|
+
/* @__PURE__ */ jsx(StatusTab, { disabled: !meta || meta.availableStatus.length === 0, children: formatMessage({
|
140
|
+
id: getTranslation("containers.edit.tabs.published"),
|
141
|
+
defaultMessage: "published"
|
142
|
+
}) })
|
143
|
+
] }) : null,
|
144
|
+
/* @__PURE__ */ jsxs(Grid, { paddingTop: 8, gap: 4, children: [
|
145
|
+
/* @__PURE__ */ jsx(GridItem, { col: 9, s: 12, children: /* @__PURE__ */ jsxs(TabPanels, { children: [
|
146
|
+
/* @__PURE__ */ jsx(TabPanel, { children: /* @__PURE__ */ jsx(FormLayout, { layout }) }),
|
147
|
+
/* @__PURE__ */ jsx(TabPanel, { children: /* @__PURE__ */ jsx(FormLayout, { layout }) })
|
148
|
+
] }) }),
|
149
|
+
/* @__PURE__ */ jsx(GridItem, { col: 3, s: 12, children: /* @__PURE__ */ jsx(Panels, {}) })
|
150
|
+
] })
|
151
|
+
]
|
152
|
+
}
|
153
|
+
),
|
154
154
|
/* @__PURE__ */ jsx(
|
155
155
|
Blocker,
|
156
156
|
{
|
@@ -162,7 +162,7 @@ const EditViewPage = () => {
|
|
162
162
|
)
|
163
163
|
] });
|
164
164
|
};
|
165
|
-
const StatusTab = styled(
|
165
|
+
const StatusTab = styled(Tab)`
|
166
166
|
text-transform: uppercase;
|
167
167
|
`;
|
168
168
|
const getDocumentStatus = (document, meta) => {
|
@@ -200,4 +200,4 @@ export {
|
|
200
200
|
EditViewPage,
|
201
201
|
ProtectedEditViewPage
|
202
202
|
};
|
203
|
-
//# sourceMappingURL=EditViewPage-
|
203
|
+
//# sourceMappingURL=EditViewPage-CzuJgWWp.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EditViewPage-CzuJgWWp.mjs","sources":["../../admin/src/hooks/useOnce.ts","../../admin/src/pages/EditView/components/FormLayout.tsx","../../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 { Box, Flex, Grid, GridItem } from '@strapi/design-system';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\ninterface FormLayoutProps extends Pick<EditLayout, 'layout'> {}\n\nconst FormLayout = ({ layout }: FormLayoutProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((panel, index) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n return (\n <Grid key={field.name} gap={4}>\n <GridItem col={12} s={12} xs={12}>\n <InputRenderer {...field} />\n </GridItem>\n </Grid>\n );\n }\n\n return (\n <Box\n key={index}\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 key={gridRowIndex} gap={4}>\n {row.map(({ size, ...field }) => {\n return (\n <GridItem col={size} key={field.name} s={12} xs={12}>\n <InputRenderer {...field} />\n </GridItem>\n );\n })}\n </Grid>\n ))}\n </Flex>\n </Box>\n );\n })}\n </Flex>\n );\n};\n\nexport { FormLayout, FormLayoutProps };\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 {\n Grid,\n GridItem,\n Main,\n SetSelectedTabIndexHandler,\n Tab,\n TabGroup,\n TabPanel,\n TabPanels,\n Tabs,\n} 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';\nimport { transformDocument } from './utils/data';\nimport { createDefaultForm } from './utils/forms';\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 const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const tabApi = React.useRef<{\n _handlers: {\n setSelectedTabIndex: SetSelectedTabIndexHandler;\n };\n }>(null);\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\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 /**\n * Here we prepare the form for editing, we need to:\n * - remove prohibited fields from the document (passwords | ADD YOURS WHEN THERES A NEW ONE)\n * - swap out count objects on relations for empty arrays\n * - set __temp_key__ on array objects for drag & drop\n *\n * We also prepare the form for new documents, so we need to:\n * - set default values on fields\n */\n const initialValues = React.useMemo(() => {\n if ((!document && !isCreatingDocument && !isSingleType) || !schema) {\n return undefined;\n }\n\n /**\n * Check that we have an ID so we know the\n * document has been created in some way.\n */\n const form = document?.id ? document : createDefaultForm(schema, components);\n\n return transformDocument(schema, components)(form);\n }, [document, isCreatingDocument, isSingleType, schema, components]);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues) {\n return <Page.Error />;\n }\n\n const handleTabChange = (index: number) => {\n if (index === 0) {\n setQuery({ status: 'draft' }, 'push', true);\n } else {\n setQuery({ status: 'published' }, 'push', true);\n }\n };\n\n /**\n * We look to see what the mainField is from the configuration,\n * if it's an id we don't use it because it's a uuid format and\n * not very user friendly. Instead in that case, we simply write \"Untitled\".\n */\n const documentTitle =\n mainField !== 'id' && document?.[mainField] ? document[mainField] : 'Untitled';\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{`${documentTitle}`}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validationSchema={createYupSchema(schema?.attributes, components)}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={documentTitle}\n />\n <TabGroup\n ref={tabApi}\n variant=\"simple\"\n label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n selectedTabIndex={hasDraftAndPublished && status === 'published' ? 1 : 0}\n onTabChange={(index) => {\n // TODO: remove this hack when the tabs in the DS are implemented well and we can actually use callbacks.\n handleTabChange(index);\n }}\n >\n {hasDraftAndPublished ? (\n <Tabs>\n <StatusTab>\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab disabled={!meta || meta.availableStatus.length === 0}>\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs>\n ) : null}\n <Grid paddingTop={8} gap={4}>\n <GridItem col={9} s={12}>\n <TabPanels>\n <TabPanel>\n <FormLayout layout={layout} />\n </TabPanel>\n <TabPanel>\n <FormLayout layout={layout} />\n </TabPanel>\n </TabPanels>\n </GridItem>\n <GridItem col={3} s={12}>\n <Panels />\n </GridItem>\n </Grid>\n </TabGroup>\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(Tab)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where it's 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 };\n"],"names":["InputRenderer","permissions"],"mappings":"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"}
|
@@ -5,9 +5,9 @@ const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
5
5
|
const designSystem = require("@strapi/design-system");
|
6
6
|
const pipe$1 = require("lodash/fp/pipe");
|
7
7
|
const reactIntl = require("react-intl");
|
8
|
-
const index = require("./index-
|
8
|
+
const index = require("./index-DcUu-_72.js");
|
9
9
|
const fractionalIndexing = require("fractional-indexing");
|
10
|
-
const Relations = require("./Relations-
|
10
|
+
const Relations = require("./Relations-B6fb2POW.js");
|
11
11
|
const Icons = require("@strapi/icons");
|
12
12
|
const styledComponents = require("styled-components");
|
13
13
|
const ComponentIcon = require("./ComponentIcon-BXdiCGQp.js");
|
@@ -623,23 +623,17 @@ const LinkContent = React__namespace.forwardRef(
|
|
623
623
|
const [popoverOpen, setPopoverOpen] = React__namespace.useState(
|
624
624
|
editor.lastInsertedLinkPath ? slate.Path.equals(path, editor.lastInsertedLinkPath) : false
|
625
625
|
);
|
626
|
+
const linkRef = React__namespace.useRef(null);
|
626
627
|
const elementText = link.children.map((child) => child.text).join("");
|
627
628
|
const [linkText, setLinkText] = React__namespace.useState(elementText);
|
628
629
|
const [linkUrl, setLinkUrl] = React__namespace.useState(link.url);
|
629
630
|
const linkInputRef = React__namespace.useRef(null);
|
630
631
|
const [showRemoveButton, setShowRemoveButton] = React__namespace.useState(false);
|
631
632
|
const [isSaveDisabled, setIsSaveDisabled] = React__namespace.useState(false);
|
632
|
-
const
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
} else {
|
637
|
-
setPopoverOpen(isOpen);
|
638
|
-
if (link.url === "") {
|
639
|
-
removeLink(editor);
|
640
|
-
}
|
641
|
-
slateReact.ReactEditor.focus(editor);
|
642
|
-
}
|
633
|
+
const handleOpenEditPopover = (e) => {
|
634
|
+
e.preventDefault();
|
635
|
+
setPopoverOpen(true);
|
636
|
+
setShowRemoveButton(true);
|
643
637
|
};
|
644
638
|
const onLinkChange = (e) => {
|
645
639
|
setIsSaveDisabled(false);
|
@@ -662,14 +656,32 @@ const LinkContent = React__namespace.forwardRef(
|
|
662
656
|
setPopoverOpen(false);
|
663
657
|
editor.lastInsertedLinkPath = null;
|
664
658
|
};
|
659
|
+
const handleDismiss = () => {
|
660
|
+
setPopoverOpen(false);
|
661
|
+
if (link.url === "") {
|
662
|
+
removeLink(editor);
|
663
|
+
}
|
664
|
+
slateReact.ReactEditor.focus(editor);
|
665
|
+
};
|
666
|
+
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
667
|
+
const composedRefs = designSystem.useComposedRefs(linkRef, forwardedRef);
|
665
668
|
React__namespace.useEffect(() => {
|
666
669
|
if (popoverOpen)
|
667
670
|
linkInputRef.current?.focus();
|
668
671
|
}, [popoverOpen]);
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
672
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
673
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
674
|
+
StyledBaseLink,
|
675
|
+
{
|
676
|
+
...attributes,
|
677
|
+
ref: composedRefs,
|
678
|
+
href: link.url,
|
679
|
+
onClick: handleOpenEditPopover,
|
680
|
+
color: "primary600",
|
681
|
+
children
|
682
|
+
}
|
683
|
+
),
|
684
|
+
popoverOpen && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover, { source: linkRef, onDismiss: handleDismiss, padding: 4, contentEditable: false, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "form", onSubmit: handleSave, direction: "column", gap: 4, children: [
|
673
685
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { width: "368px", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
|
674
686
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
675
687
|
id: "components.Blocks.popover.text",
|
@@ -723,7 +735,7 @@ const LinkContent = React__namespace.forwardRef(
|
|
723
735
|
}
|
724
736
|
),
|
725
737
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
726
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick:
|
738
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: handleDismiss, children: formatMessage({
|
727
739
|
id: "components.Blocks.popover.cancel",
|
728
740
|
defaultMessage: "Cancel"
|
729
741
|
}) }),
|
@@ -2414,9 +2426,9 @@ const NonRepeatableComponent = ({
|
|
2414
2426
|
hasRadius: isNested,
|
2415
2427
|
borderColor: isNested ? "neutral200" : void 0,
|
2416
2428
|
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index2) => {
|
2417
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid
|
2429
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
|
2418
2430
|
const completeFieldName = `${name2}.${field.name}`;
|
2419
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
2431
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, s: 12, xs: 12, children: children({ ...field, name: completeFieldName }) }, completeFieldName);
|
2420
2432
|
}) }, index2);
|
2421
2433
|
}) })
|
2422
2434
|
}
|
@@ -2592,9 +2604,9 @@ const RepeatableComponent = ({
|
|
2592
2604
|
onGrabItem: handleGrabItem,
|
2593
2605
|
__temp_key__: key,
|
2594
2606
|
children: layout.map((row, index22) => {
|
2595
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid
|
2607
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
|
2596
2608
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2597
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
2609
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, s: 12, xs: 12, children: children({ ...field, name: completeFieldName }) }, completeFieldName);
|
2598
2610
|
}) }, index22);
|
2599
2611
|
})
|
2600
2612
|
}
|
@@ -2639,7 +2651,7 @@ const TextButtonCustom = styledComponents.styled(designSystem.TextButton)`
|
|
2639
2651
|
}
|
2640
2652
|
|
2641
2653
|
@media (prefers-reduced-motion: no-preference) {
|
2642
|
-
transition: background-color 120ms ${(props) => props.theme.
|
2654
|
+
transition: background-color 120ms ${(props) => props.theme.easings.easeOutQuad};
|
2643
2655
|
}
|
2644
2656
|
`;
|
2645
2657
|
const Component = ({
|
@@ -2907,7 +2919,7 @@ const ComponentBox = styledComponents.styled(designSystem.Flex)`
|
|
2907
2919
|
cursor: pointer;
|
2908
2920
|
|
2909
2921
|
@media (prefers-reduced-motion: no-preference) {
|
2910
|
-
transition: color 120ms ${(props) => props.theme.
|
2922
|
+
transition: color 120ms ${(props) => props.theme.easings.easeOutQuad};
|
2911
2923
|
}
|
2912
2924
|
|
2913
2925
|
&:focus,
|
@@ -4294,6 +4306,8 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4294
4306
|
};
|
4295
4307
|
const CustomIconButton = styledComponents.styled(designSystem.IconButton)`
|
4296
4308
|
padding: ${({ theme }) => theme.spaces[2]};
|
4309
|
+
/* Trick to prevent the outline from overflowing because of the general outline-offset */
|
4310
|
+
outline-offset: -2px !important;
|
4297
4311
|
|
4298
4312
|
svg {
|
4299
4313
|
width: 1.8rem;
|
@@ -4360,7 +4374,7 @@ const WysiwygNav = ({
|
|
4360
4374
|
id: "components.Wysiwyg.selectOptions.title",
|
4361
4375
|
defaultMessage: "Add a title"
|
4362
4376
|
});
|
4363
|
-
React__namespace.useRef(null);
|
4377
|
+
const buttonMoreRef = React__namespace.useRef(null);
|
4364
4378
|
const handleTogglePopover = () => {
|
4365
4379
|
setVisiblePopover((prev) => !prev);
|
4366
4380
|
};
|
@@ -4451,81 +4465,79 @@ const WysiwygNav = ({
|
|
4451
4465
|
}
|
4452
4466
|
)
|
4453
4467
|
] }),
|
4454
|
-
/* @__PURE__ */ jsxRuntime.
|
4455
|
-
|
4456
|
-
/* @__PURE__ */ jsxRuntime.
|
4457
|
-
/* @__PURE__ */ jsxRuntime.
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
|
4463
|
-
|
4464
|
-
|
4465
|
-
|
4466
|
-
|
4467
|
-
|
4468
|
-
|
4469
|
-
|
4470
|
-
|
4471
|
-
|
4472
|
-
|
4473
|
-
|
4474
|
-
|
4475
|
-
|
4476
|
-
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
|
4481
|
-
|
4482
|
-
|
4483
|
-
|
4484
|
-
|
4485
|
-
|
4486
|
-
/* @__PURE__ */ jsxRuntime.
|
4487
|
-
|
4488
|
-
|
4489
|
-
|
4490
|
-
|
4491
|
-
|
4492
|
-
|
4493
|
-
|
4494
|
-
|
4495
|
-
|
4496
|
-
|
4497
|
-
|
4498
|
-
{
|
4499
|
-
|
4500
|
-
|
4501
|
-
|
4502
|
-
|
4503
|
-
|
4504
|
-
|
4505
|
-
|
4506
|
-
|
4507
|
-
|
4508
|
-
|
4509
|
-
|
4510
|
-
|
4511
|
-
|
4512
|
-
|
4513
|
-
|
4514
|
-
|
4515
|
-
|
4516
|
-
|
4517
|
-
|
4518
|
-
|
4519
|
-
|
4520
|
-
|
4521
|
-
|
4522
|
-
|
4523
|
-
|
4524
|
-
|
4525
|
-
|
4526
|
-
|
4527
|
-
] }) })
|
4528
|
-
] })
|
4468
|
+
/* @__PURE__ */ jsxRuntime.jsx(MoreButton, { ref: buttonMoreRef, onClick: handleTogglePopover, label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) }),
|
4469
|
+
visiblePopover && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover, { onDismiss: handleTogglePopover, centered: true, source: buttonMoreRef, spacing: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
|
4470
|
+
/* @__PURE__ */ jsxRuntime.jsxs(IconButtonGroupMargin, { children: [
|
4471
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4472
|
+
CustomIconButton,
|
4473
|
+
{
|
4474
|
+
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4475
|
+
label: "Strikethrough",
|
4476
|
+
name: "Strikethrough",
|
4477
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.StrikeThrough, {})
|
4478
|
+
}
|
4479
|
+
),
|
4480
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4481
|
+
CustomIconButton,
|
4482
|
+
{
|
4483
|
+
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4484
|
+
label: "BulletList",
|
4485
|
+
name: "BulletList",
|
4486
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.BulletList, {})
|
4487
|
+
}
|
4488
|
+
),
|
4489
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4490
|
+
CustomIconButton,
|
4491
|
+
{
|
4492
|
+
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4493
|
+
label: "NumberList",
|
4494
|
+
name: "NumberList",
|
4495
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.NumberList, {})
|
4496
|
+
}
|
4497
|
+
)
|
4498
|
+
] }),
|
4499
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.IconButtonGroup, { children: [
|
4500
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4501
|
+
CustomIconButton,
|
4502
|
+
{
|
4503
|
+
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4504
|
+
label: "Code",
|
4505
|
+
name: "Code",
|
4506
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Code, {})
|
4507
|
+
}
|
4508
|
+
),
|
4509
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4510
|
+
CustomIconButton,
|
4511
|
+
{
|
4512
|
+
onClick: () => {
|
4513
|
+
handleTogglePopover();
|
4514
|
+
onToggleMediaLib();
|
4515
|
+
},
|
4516
|
+
label: "Image",
|
4517
|
+
name: "Image",
|
4518
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Image, {})
|
4519
|
+
}
|
4520
|
+
),
|
4521
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4522
|
+
CustomLinkIconButton,
|
4523
|
+
{
|
4524
|
+
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4525
|
+
label: "Link",
|
4526
|
+
name: "Link",
|
4527
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Link, {})
|
4528
|
+
}
|
4529
|
+
),
|
4530
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4531
|
+
CustomIconButton,
|
4532
|
+
{
|
4533
|
+
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4534
|
+
label: "Quote",
|
4535
|
+
name: "Quote",
|
4536
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Quotes, {})
|
4537
|
+
}
|
4538
|
+
)
|
4539
|
+
] })
|
4540
|
+
] }) })
|
4529
4541
|
] }),
|
4530
4542
|
onTogglePreviewMode && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: onTogglePreviewMode, variant: "tertiary", children: formatMessage({
|
4531
4543
|
id: "components.Wysiwyg.ToggleMode.preview-mode",
|
@@ -4919,9 +4931,9 @@ const DynamicComponent = ({
|
|
4919
4931
|
),
|
4920
4932
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: accordionActions })
|
4921
4933
|
] }),
|
4922
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid
|
4934
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
|
4923
4935
|
const fieldName = `${name2}.${index$1}.${field.name}`;
|
4924
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
4936
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, s: 12, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName }) }, fieldName);
|
4925
4937
|
}) }, rowInd)) }) }) })
|
4926
4938
|
] }) }) })
|
4927
4939
|
] });
|
@@ -5228,4 +5240,4 @@ exports.transformDocument = transformDocument;
|
|
5228
5240
|
exports.useDynamicZone = useDynamicZone;
|
5229
5241
|
exports.useFieldHint = useFieldHint;
|
5230
5242
|
exports.useLazyComponents = useLazyComponents;
|
5231
|
-
//# sourceMappingURL=Field-
|
5243
|
+
//# sourceMappingURL=Field-Dh1yZyqy.js.map
|