@strapi/content-manager 5.12.3 → 5.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/admin/components/Widgets.js +161 -0
  2. package/dist/admin/components/Widgets.js.map +1 -0
  3. package/dist/admin/components/Widgets.mjs +158 -0
  4. package/dist/admin/components/Widgets.mjs.map +1 -0
  5. package/dist/admin/content-manager.js.map +1 -1
  6. package/dist/admin/content-manager.mjs.map +1 -1
  7. package/dist/admin/history/pages/History.js +1 -9
  8. package/dist/admin/history/pages/History.js.map +1 -1
  9. package/dist/admin/history/pages/History.mjs +1 -9
  10. package/dist/admin/history/pages/History.mjs.map +1 -1
  11. package/dist/admin/hooks/useDocumentActions.js +8 -1
  12. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  13. package/dist/admin/hooks/useDocumentActions.mjs +8 -1
  14. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  15. package/dist/admin/hooks/useDocumentContext.js +57 -0
  16. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  17. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  18. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  19. package/dist/admin/index.js +41 -2
  20. package/dist/admin/index.js.map +1 -1
  21. package/dist/admin/index.mjs +42 -3
  22. package/dist/admin/index.mjs.map +1 -1
  23. package/dist/admin/pages/EditView/EditViewPage.js +85 -93
  24. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  25. package/dist/admin/pages/EditView/EditViewPage.mjs +86 -94
  26. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/DocumentActions.js +28 -32
  28. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  29. package/dist/admin/pages/EditView/components/DocumentActions.mjs +32 -36
  30. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  32. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  34. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +2 -2
  36. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +2 -2
  38. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +2 -2
  40. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +2 -2
  42. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +5 -16
  44. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +5 -16
  46. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  48. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  50. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +432 -344
  52. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +432 -346
  54. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +55 -37
  56. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +57 -39
  58. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/UID.js +7 -7
  60. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +7 -7
  62. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -10
  64. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -10
  66. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  67. package/dist/admin/preview/components/PreviewHeader.js +2 -5
  68. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  69. package/dist/admin/preview/components/PreviewHeader.mjs +2 -5
  70. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  71. package/dist/admin/preview/pages/Preview.js +94 -102
  72. package/dist/admin/preview/pages/Preview.js.map +1 -1
  73. package/dist/admin/preview/pages/Preview.mjs +94 -102
  74. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  75. package/dist/admin/services/homepage.js +26 -0
  76. package/dist/admin/services/homepage.js.map +1 -0
  77. package/dist/admin/services/homepage.mjs +24 -0
  78. package/dist/admin/services/homepage.mjs.map +1 -0
  79. package/dist/admin/src/components/Widgets.d.ts +3 -0
  80. package/dist/admin/src/content-manager.d.ts +0 -3
  81. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  82. package/dist/admin/src/history/pages/History.d.ts +1 -1
  83. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  84. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  85. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  86. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +50 -5
  87. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  88. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  89. package/dist/admin/src/preview/pages/Preview.d.ts +2 -1
  90. package/dist/admin/src/services/homepage.d.ts +5 -0
  91. package/dist/server/src/services/homepage.d.ts +11 -0
  92. package/dist/server/src/services/homepage.d.ts.map +1 -0
  93. package/dist/shared/contracts/homepage.d.ts +25 -0
  94. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  95. package/package.json +8 -8
  96. package/dist/admin/features/DocumentContext.js +0 -71
  97. package/dist/admin/features/DocumentContext.js.map +0 -1
  98. package/dist/admin/features/DocumentContext.mjs +0 -49
  99. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  100. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -1 +1 @@
1
- {"version":3,"file":"RelationModal.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n ConfirmDialog,\n DescriptionComponentRenderer,\n Form as FormContext,\n useRBAC,\n useStrapiApp,\n createContext,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Dialog,\n EmptyStateLayout,\n Flex,\n IconButton,\n Loader,\n Modal,\n Typography,\n Tooltip,\n TextButton,\n} from '@strapi/design-system';\nimport { ArrowLeft, ArrowsOut, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../../../../../constants/collections';\nimport { PERMISSIONS } from '../../../../../constants/plugin';\nimport { type DocumentMeta, useDocumentContext } from '../../../../../features/DocumentContext';\nimport { DocumentRBAC } from '../../../../../features/DocumentRBAC';\nimport { useDocumentLayout } from '../../../../../hooks/useDocumentLayout';\nimport { useLazyGetDocumentQuery } from '../../../../../services/documents';\nimport { createYupSchema } from '../../../../../utils/validation';\nimport { DocumentActionButton } from '../../../components/DocumentActions';\nimport { DocumentStatus } from '../../DocumentStatus';\nimport { FormLayout } from '../../FormLayout';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../../../../content-manager';\n\ninterface RelationModalProps {\n triggerButtonLabel: string;\n relation: DocumentMeta;\n}\n\nexport function getCollectionType(url: string) {\n const regex = new RegExp(`(${COLLECTION_TYPES}|${SINGLE_TYPES})`);\n const match = url.match(regex);\n return match ? match[1] : undefined;\n}\n\nconst CustomModalContent = styled(Modal.Content)`\n width: 90%;\n max-width: 100%;\n height: 90%;\n max-height: 100%;\n`;\n\ninterface RelationModalContextValue {\n parentModified: boolean;\n depth: number;\n}\n\nconst [RelationModalProvider, useRelationModal] = createContext<RelationModalContextValue>(\n 'RelationModal',\n {\n parentModified: false,\n depth: 0,\n }\n);\n\nconst RelationModalForm = ({ relation, triggerButtonLabel }: RelationModalProps) => {\n const navigate = useNavigate();\n const { pathname, search } = useLocation();\n const { formatMessage } = useIntl();\n\n const [triggerRefetchDocument] = useLazyGetDocumentQuery();\n\n const currentDocument = useDocumentContext('RelationModalForm', (state) => state.document);\n const rootDocumentMeta = useDocumentContext(\n 'RelationModalForm',\n (state) => state.rootDocumentMeta\n );\n const currentDocumentMeta = useDocumentContext('RelationModalForm', (state) => state.meta);\n const changeDocument = useDocumentContext('RelationModalForm', (state) => state.changeDocument);\n const documentHistory = useDocumentContext('RelationModalForm', (state) => state.documentHistory);\n const setDocumentHistory = useDocumentContext(\n 'RelationModalForm',\n (state) => state.setDocumentHistory\n );\n\n const [isConfirmationOpen, setIsConfirmationOpen] = React.useState(false);\n const [actionPosition, setActionPosition] = React.useState<'cancel' | 'back' | 'navigate'>(\n 'cancel'\n );\n\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n // NOTE: Not sure about this relation modal context, maybe we should move this to DocumentContext?\n // Get parent modal context if it exists\n const parentContext = useRelationModal('RelationModalForm', (state) => state);\n // Get depth of nested modals\n const depth = parentContext ? parentContext.depth + 1 : 0;\n // Check if this is a nested modal\n const isNested = depth > 0;\n\n const addDocumentToHistory = (document: DocumentMeta) =>\n setDocumentHistory((prev) => [...prev, document]);\n\n const getPreviousDocument = () => {\n if (documentHistory.length === 0) return undefined;\n\n const lastDocument = documentHistory[documentHistory.length - 1];\n\n return lastDocument;\n };\n\n const removeLastDocumentFromHistory = () => {\n setDocumentHistory((prev) => [...prev].slice(0, prev.length - 1));\n };\n\n const handleToggleModal = () => {\n if (isModalOpen) {\n setIsModalOpen(false);\n const document = {\n collectionType: rootDocumentMeta.collectionType,\n model: rootDocumentMeta.model,\n documentId: rootDocumentMeta.documentId,\n };\n // Change back to the root document\n changeDocument(document);\n // Reset the document history\n setDocumentHistory([]);\n // Reset action position\n setActionPosition('cancel');\n // Read from cache or refetch root document\n triggerRefetchDocument(\n document,\n // Favor the cache\n true\n );\n } else {\n changeDocument(relation);\n setIsModalOpen(true);\n }\n };\n\n const getFullPageLink = (): string => {\n const isSingleType = currentDocumentMeta.collectionType === SINGLE_TYPES;\n const queryParams = currentDocumentMeta.params?.locale\n ? `?plugins[i18n][locale]=${currentDocumentMeta.params.locale}`\n : '';\n\n return `/content-manager/${currentDocumentMeta.collectionType}/${currentDocumentMeta.model}${isSingleType ? '' : '/' + currentDocumentMeta.documentId}${queryParams}`;\n };\n\n const handleRedirection = () => {\n const editViewUrl = `${pathname}${search}`;\n const isRootDocumentUrl = editViewUrl.includes(getFullPageLink());\n\n if (isRootDocumentUrl) {\n handleToggleModal();\n } else {\n navigate(getFullPageLink());\n }\n };\n\n const handleConfirm = () => {\n if (actionPosition === 'navigate') {\n handleRedirection();\n } else if (actionPosition === 'back') {\n const previousRelation = getPreviousDocument();\n if (previousRelation) {\n removeLastDocumentFromHistory();\n changeDocument(previousRelation);\n }\n } else {\n // Add current relation to history before opening a new one in case we are opening a new one\n if (currentDocumentMeta && Object.keys(currentDocumentMeta).length > 0) {\n addDocumentToHistory(currentDocumentMeta);\n }\n handleToggleModal();\n }\n };\n\n return (\n <FormContext\n method=\"PUT\"\n initialValues={currentDocument.getInitialFormValues()}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n currentDocument.schema?.attributes,\n currentDocument.components,\n {\n status: currentDocument.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n {({ modified, isSubmitting, resetForm }) => {\n // We don't count the root document, so history starts after 1\n const hasHistory = documentHistory.length > 1;\n\n return (\n <RelationModalProvider parentModified={modified} depth={depth}>\n <Modal.Root\n open={isModalOpen}\n onOpenChange={() => {\n if (isModalOpen) {\n if (modified && !isSubmitting) {\n setIsConfirmationOpen(true);\n } else {\n handleToggleModal();\n }\n }\n }}\n >\n <Modal.Trigger>\n <Tooltip description={triggerButtonLabel}>\n <CustomTextButton\n onClick={() => {\n // Check if parent modal has unsaved changes\n if (isNested && parentContext.parentModified) {\n setIsConfirmationOpen(true);\n // Return early to avoid opening the modal\n return;\n } else {\n if (modified && !isSubmitting) {\n setIsConfirmationOpen(true);\n } else {\n // Add current relation to history before opening a new one\n if (currentDocumentMeta && Object.keys(currentDocumentMeta).length > 0) {\n addDocumentToHistory(currentDocumentMeta);\n }\n handleToggleModal();\n }\n\n if (!isModalOpen) {\n setIsModalOpen(true);\n }\n }\n }}\n width=\"100%\"\n >\n {triggerButtonLabel}\n </CustomTextButton>\n </Tooltip>\n </Modal.Trigger>\n <CustomModalContent>\n <Modal.Header gap={2}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Flex gap={2}>\n <IconButton\n withTooltip={false}\n label=\"Back\"\n variant=\"ghost\"\n disabled={!hasHistory}\n onClick={() => {\n setActionPosition('back');\n if (modified && !isSubmitting) {\n setIsConfirmationOpen(true);\n } else {\n const previousRelation = getPreviousDocument();\n if (previousRelation) {\n removeLastDocumentFromHistory();\n changeDocument(previousRelation);\n }\n }\n }}\n marginRight={1}\n >\n <ArrowLeft />\n </IconButton>\n <Typography tag=\"span\" fontWeight={600}>\n {formatMessage({\n id: 'content-manager.components.RelationInputModal.modal-title',\n defaultMessage: 'Edit a relation',\n })}\n </Typography>\n </Flex>\n </Flex>\n </Modal.Header>\n <RelationModalBody>\n <IconButton\n onClick={() => {\n setActionPosition('navigate');\n\n if (modified && !isSubmitting) {\n setIsConfirmationOpen(true);\n } else {\n navigate(getFullPageLink());\n }\n }}\n variant=\"tertiary\"\n label={formatMessage({\n id: 'content-manager.components.RelationInputModal.button-fullpage',\n defaultMessage: 'Go to entry',\n })}\n >\n <ArrowsOut />\n </IconButton>\n </RelationModalBody>\n <Modal.Footer>\n <Button\n onClick={() => {\n if (modified && !isSubmitting) {\n setIsConfirmationOpen(true);\n } else {\n handleToggleModal();\n }\n }}\n variant=\"tertiary\"\n >\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Footer>\n </CustomModalContent>\n </Modal.Root>\n <Dialog.Root open={isConfirmationOpen} onOpenChange={setIsConfirmationOpen}>\n <ConfirmDialog\n onConfirm={() => {\n handleConfirm();\n setIsConfirmationOpen(false);\n resetForm();\n }}\n onCancel={() => {\n setIsConfirmationOpen(false);\n }}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'content-manager.components.RelationInputModal.confirmation-message',\n defaultMessage:\n 'Some changes were not saved. Are you sure you want to close this relation? All changes that were not saved will be lost.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </RelationModalProvider>\n );\n }}\n </FormContext>\n );\n};\n\nconst CustomTextButton = styled(TextButton)`\n & > span {\n font-size: ${({ theme }) => theme.fontSizes[2]};\n width: inherit;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`;\n\ninterface RelationModalBodyProps {\n /**\n * Additional modal actions such as \"Open in full page\"\n */\n children: React.ReactNode;\n}\n\nconst RelationModalBody = ({ children }: RelationModalBodyProps) => {\n const { formatMessage } = useIntl();\n\n const documentMeta = useDocumentContext('RelationModalBody', (state) => state.meta);\n const documentResponse = useDocumentContext('RelationModalBody', (state) => state.document);\n const onPreview = useDocumentContext('RelationModalBody', (state) => state.onPreview);\n const documentLayoutResponse = useDocumentLayout(documentMeta.model);\n const plugins = useStrapiApp('RelationModalBody', (state) => state.plugins);\n\n const initialValues = documentResponse.getInitialFormValues();\n\n const {\n permissions = [],\n isLoading: isLoadingPermissions,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: documentMeta.model,\n }))\n );\n\n const isLoading =\n isLoadingPermissions || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && !documentResponse.document?.documentId) {\n return (\n <Loader small>\n {formatMessage({\n id: 'content-manager.ListViewTable.relation-loading',\n defaultMessage: 'Relations are loading',\n })}\n </Loader>\n );\n }\n\n if (\n error ||\n !documentMeta.model ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return (\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n />\n </Flex>\n );\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n const hasDraftAndPublished = documentResponse.schema?.options?.draftAndPublish ?? false;\n\n const props = {\n activeTab: 'draft',\n collectionType: documentMeta.collectionType,\n model: documentMeta.model,\n documentId: documentMeta.documentId,\n document: documentResponse.document,\n meta: documentResponse.meta,\n onPreview,\n fromRelationModal: true,\n fromPreview: onPreview !== undefined,\n } satisfies DocumentActionProps;\n\n return (\n <Modal.Body>\n <DocumentRBAC permissions={permissions} model={documentMeta.model}>\n <Flex alignItems=\"flex-start\" direction=\"column\" gap={2}>\n <Flex width=\"100%\" justifyContent=\"space-between\" gap={2}>\n <Typography tag=\"h2\" variant=\"alpha\">\n {documentTitle}\n </Typography>\n <Flex gap={2}>\n {children}\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('relation-modal')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) => {\n return [action.position].flat().includes('relation-modal');\n });\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n {hasDraftAndPublished ? (\n <Box>\n <DocumentStatus status={documentResponse.document?.status} />\n </Box>\n ) : null}\n </Flex>\n\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\" paddingTop={7}>\n <Box overflow=\"auto\" flex={1}>\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={documentResponse}\n hasBackground={false}\n />\n </Box>\n </Flex>\n </DocumentRBAC>\n </Modal.Body>\n );\n};\n\nexport { RelationModalForm };\n"],"names":["getCollectionType","url","regex","RegExp","COLLECTION_TYPES","SINGLE_TYPES","match","undefined","CustomModalContent","styled","Modal","Content","RelationModalProvider","useRelationModal","createContext","parentModified","depth","RelationModalForm","relation","triggerButtonLabel","navigate","useNavigate","pathname","search","useLocation","formatMessage","useIntl","triggerRefetchDocument","useLazyGetDocumentQuery","currentDocument","useDocumentContext","state","document","rootDocumentMeta","currentDocumentMeta","meta","changeDocument","documentHistory","setDocumentHistory","isConfirmationOpen","setIsConfirmationOpen","React","useState","actionPosition","setActionPosition","isModalOpen","setIsModalOpen","parentContext","isNested","addDocumentToHistory","prev","getPreviousDocument","length","lastDocument","removeLastDocumentFromHistory","slice","handleToggleModal","collectionType","model","documentId","getFullPageLink","isSingleType","queryParams","params","locale","handleRedirection","editViewUrl","isRootDocumentUrl","includes","handleConfirm","previousRelation","Object","keys","_jsx","FormContext","method","initialValues","getInitialFormValues","validate","values","options","yupSchema","createYupSchema","schema","attributes","components","status","abortEarly","modified","isSubmitting","resetForm","hasHistory","_jsxs","Root","open","onOpenChange","Trigger","Tooltip","description","CustomTextButton","onClick","width","Header","gap","Flex","justifyContent","alignItems","IconButton","withTooltip","label","variant","disabled","marginRight","ArrowLeft","Typography","tag","fontWeight","id","defaultMessage","RelationModalBody","ArrowsOut","Footer","Button","Dialog","ConfirmDialog","onConfirm","onCancel","TextButton","theme","fontSizes","children","documentMeta","documentResponse","onPreview","documentLayoutResponse","useDocumentLayout","plugins","useStrapiApp","permissions","isLoading","isLoadingPermissions","error","useRBAC","PERMISSIONS","map","action","subject","Loader","small","height","EmptyStateLayout","icon","WarningCircle","content","documentTitle","getTitle","edit","settings","mainField","hasDraftAndPublished","draftAndPublish","props","activeTab","fromRelationModal","fromPreview","Body","DocumentRBAC","direction","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","actions","filteredActions","filter","position","flat","primaryAction","secondaryAction","_Fragment","DocumentActionButton","Box","DocumentStatus","flex","overflow","paddingTop","FormLayout","layout","hasBackground"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CO,SAASA,kBAAkBC,GAAW,EAAA;IAC3C,MAAMC,KAAAA,GAAQ,IAAIC,MAAAA,CAAO,CAAC,CAAC,EAAEC,4BAAAA,CAAiB,CAAC,EAAEC,wBAAa,CAAA,CAAC,CAAC,CAAA;IAChE,MAAMC,KAAAA,GAAQL,GAAIK,CAAAA,KAAK,CAACJ,KAAAA,CAAAA;AACxB,IAAA,OAAOI,KAAQA,GAAAA,KAAK,CAAC,CAAA,CAAE,GAAGC,SAAAA;AAC5B;AAEA,MAAMC,kBAAqBC,GAAAA,uBAAAA,CAAOC,kBAAMC,CAAAA,OAAO,CAAC;;;;;AAKhD,CAAC;AAOD,MAAM,CAACC,qBAAAA,EAAuBC,gBAAiB,CAAA,GAAGC,0BAChD,eACA,EAAA;IACEC,cAAgB,EAAA,KAAA;IAChBC,KAAO,EAAA;AACT,CAAA,CAAA;AAGF,MAAMC,oBAAoB,CAAC,EAAEC,QAAQ,EAAEC,kBAAkB,EAAsB,GAAA;AAC7E,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGC,0BAAAA,EAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,MAAM,CAACC,uBAAuB,GAAGC,iCAAAA,EAAAA;AAEjC,IAAA,MAAMC,kBAAkBC,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMC,QAAQ,CAAA;AACzF,IAAA,MAAMC,mBAAmBH,kCACvB,CAAA,mBAAA,EACA,CAACC,KAAAA,GAAUA,MAAME,gBAAgB,CAAA;AAEnC,IAAA,MAAMC,sBAAsBJ,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMI,IAAI,CAAA;AACzF,IAAA,MAAMC,iBAAiBN,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMK,cAAc,CAAA;AAC9F,IAAA,MAAMC,kBAAkBP,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMM,eAAe,CAAA;AAChG,IAAA,MAAMC,qBAAqBR,kCACzB,CAAA,mBAAA,EACA,CAACC,KAAAA,GAAUA,MAAMO,kBAAkB,CAAA;AAGrC,IAAA,MAAM,CAACC,kBAAoBC,EAAAA,qBAAAA,CAAsB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACnE,IAAA,MAAM,CAACC,cAAgBC,EAAAA,iBAAAA,CAAkB,GAAGH,gBAAAA,CAAMC,QAAQ,CACxD,QAAA,CAAA;AAGF,IAAA,MAAM,CAACG,WAAaC,EAAAA,cAAAA,CAAe,GAAGL,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;;;AAGrD,IAAA,MAAMK,aAAgBlC,GAAAA,gBAAAA,CAAiB,mBAAqB,EAAA,CAACkB,KAAUA,GAAAA,KAAAA,CAAAA;;AAEvE,IAAA,MAAMf,KAAQ+B,GAAAA,aAAAA,GAAgBA,aAAc/B,CAAAA,KAAK,GAAG,CAAI,GAAA,CAAA;;AAExD,IAAA,MAAMgC,WAAWhC,KAAQ,GAAA,CAAA;AAEzB,IAAA,MAAMiC,oBAAuB,GAAA,CAACjB,QAC5BM,GAAAA,kBAAAA,CAAmB,CAACY,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAMlB,gBAAAA;AAAS,aAAA,CAAA;AAElD,IAAA,MAAMmB,mBAAsB,GAAA,IAAA;AAC1B,QAAA,IAAId,eAAgBe,CAAAA,MAAM,KAAK,CAAA,EAAG,OAAO7C,SAAAA;AAEzC,QAAA,MAAM8C,eAAehB,eAAe,CAACA,eAAgBe,CAAAA,MAAM,GAAG,CAAE,CAAA;QAEhE,OAAOC,YAAAA;AACT,KAAA;AAEA,IAAA,MAAMC,6BAAgC,GAAA,IAAA;AACpChB,QAAAA,kBAAAA,CAAmB,CAACY,IAAS,GAAA;AAAIA,gBAAAA,GAAAA;AAAK,aAAA,CAACK,KAAK,CAAC,CAAGL,EAAAA,IAAAA,CAAKE,MAAM,GAAG,CAAA,CAAA,CAAA;AAChE,KAAA;AAEA,IAAA,MAAMI,iBAAoB,GAAA,IAAA;AACxB,QAAA,IAAIX,WAAa,EAAA;YACfC,cAAe,CAAA,KAAA,CAAA;AACf,YAAA,MAAMd,QAAW,GAAA;AACfyB,gBAAAA,cAAAA,EAAgBxB,iBAAiBwB,cAAc;AAC/CC,gBAAAA,KAAAA,EAAOzB,iBAAiByB,KAAK;AAC7BC,gBAAAA,UAAAA,EAAY1B,iBAAiB0B;AAC/B,aAAA;;YAEAvB,cAAeJ,CAAAA,QAAAA,CAAAA;;AAEfM,YAAAA,kBAAAA,CAAmB,EAAE,CAAA;;YAErBM,iBAAkB,CAAA,QAAA,CAAA;;AAElBjB,YAAAA,sBAAAA,CACEK;AAEA,YAAA,IAAA,CAAA;SAEG,MAAA;YACLI,cAAelB,CAAAA,QAAAA,CAAAA;YACf4B,cAAe,CAAA,IAAA,CAAA;AACjB;AACF,KAAA;AAEA,IAAA,MAAMc,eAAkB,GAAA,IAAA;QACtB,MAAMC,YAAAA,GAAe3B,mBAAoBuB,CAAAA,cAAc,KAAKpD,wBAAAA;AAC5D,QAAA,MAAMyD,WAAc5B,GAAAA,mBAAAA,CAAoB6B,MAAM,EAAEC,SAC5C,CAAC,uBAAuB,EAAE9B,mBAAAA,CAAoB6B,MAAM,CAACC,MAAM,CAAC,CAAC,GAC7D,EAAA;QAEJ,OAAO,CAAC,iBAAiB,EAAE9B,mBAAAA,CAAoBuB,cAAc,CAAC,CAAC,EAAEvB,mBAAoBwB,CAAAA,KAAK,CAAC,EAAEG,YAAAA,GAAe,KAAK,GAAM3B,GAAAA,mBAAAA,CAAoByB,UAAU,CAAC,EAAEG,YAAY,CAAC;AACvK,KAAA;AAEA,IAAA,MAAMG,iBAAoB,GAAA,IAAA;AACxB,QAAA,MAAMC,cAAc,CAAC,EAAE5C,QAAS,CAAA,EAAEC,OAAO,CAAC;QAC1C,MAAM4C,iBAAAA,GAAoBD,WAAYE,CAAAA,QAAQ,CAACR,eAAAA,EAAAA,CAAAA;AAE/C,QAAA,IAAIO,iBAAmB,EAAA;AACrBX,YAAAA,iBAAAA,EAAAA;SACK,MAAA;YACLpC,QAASwC,CAAAA,eAAAA,EAAAA,CAAAA;AACX;AACF,KAAA;AAEA,IAAA,MAAMS,aAAgB,GAAA,IAAA;AACpB,QAAA,IAAI1B,mBAAmB,UAAY,EAAA;AACjCsB,YAAAA,iBAAAA,EAAAA;SACK,MAAA,IAAItB,mBAAmB,MAAQ,EAAA;AACpC,YAAA,MAAM2B,gBAAmBnB,GAAAA,mBAAAA,EAAAA;AACzB,YAAA,IAAImB,gBAAkB,EAAA;AACpBhB,gBAAAA,6BAAAA,EAAAA;gBACAlB,cAAekC,CAAAA,gBAAAA,CAAAA;AACjB;SACK,MAAA;;AAEL,YAAA,IAAIpC,uBAAuBqC,MAAOC,CAAAA,IAAI,CAACtC,mBAAqBkB,CAAAA,CAAAA,MAAM,GAAG,CAAG,EAAA;gBACtEH,oBAAqBf,CAAAA,mBAAAA,CAAAA;AACvB;AACAsB,YAAAA,iBAAAA,EAAAA;AACF;AACF,KAAA;AAEA,IAAA,qBACEiB,cAACC,CAAAA,gBAAAA,EAAAA;QACCC,MAAO,EAAA,KAAA;AACPC,QAAAA,aAAAA,EAAe/C,gBAAgBgD,oBAAoB,EAAA;AACnDC,QAAAA,QAAAA,EAAU,CAACC,MAAiCC,EAAAA,OAAAA,GAAAA;YAC1C,MAAMC,SAAAA,GAAYC,2BAChBrD,eAAgBsD,CAAAA,MAAM,EAAEC,UACxBvD,EAAAA,eAAAA,CAAgBwD,UAAU,EAC1B;gBACEC,MAAQzD,EAAAA,eAAAA,CAAgBG,QAAQ,EAAEsD,MAAAA;AAClC,gBAAA,GAAGN;AACL,aAAA,CAAA;YAGF,OAAOC,SAAAA,CAAUH,QAAQ,CAACC,MAAQ,EAAA;gBAAEQ,UAAY,EAAA;AAAM,aAAA,CAAA;AACxD,SAAA;AAEC,QAAA,QAAA,EAAA,CAAC,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAA;;YAErC,MAAMC,UAAAA,GAAatD,eAAgBe,CAAAA,MAAM,GAAG,CAAA;AAE5C,YAAA,qBACEwC,eAAChF,CAAAA,qBAAAA,EAAAA;gBAAsBG,cAAgByE,EAAAA,QAAAA;gBAAUxE,KAAOA,EAAAA,KAAAA;;AACtD,kCAAA4E,eAAA,CAAClF,mBAAMmF,IAAI,EAAA;wBACTC,IAAMjD,EAAAA,WAAAA;wBACNkD,YAAc,EAAA,IAAA;AACZ,4BAAA,IAAIlD,WAAa,EAAA;gCACf,IAAI2C,QAAAA,IAAY,CAACC,YAAc,EAAA;oCAC7BjD,qBAAsB,CAAA,IAAA,CAAA;iCACjB,MAAA;AACLgB,oCAAAA,iBAAAA,EAAAA;AACF;AACF;AACF,yBAAA;;AAEA,0CAAAiB,cAAA,CAAC/D,mBAAMsF,OAAO,EAAA;AACZ,gCAAA,QAAA,gBAAAvB,cAACwB,CAAAA,oBAAAA,EAAAA;oCAAQC,WAAa/E,EAAAA,kBAAAA;AACpB,oCAAA,QAAA,gBAAAsD,cAAC0B,CAAAA,gBAAAA,EAAAA;wCACCC,OAAS,EAAA,IAAA;;4CAEP,IAAIpD,QAAAA,IAAYD,aAAchC,CAAAA,cAAc,EAAE;gDAC5CyB,qBAAsB,CAAA,IAAA,CAAA;;AAEtB,gDAAA;6CACK,MAAA;gDACL,IAAIgD,QAAAA,IAAY,CAACC,YAAc,EAAA;oDAC7BjD,qBAAsB,CAAA,IAAA,CAAA;iDACjB,MAAA;;AAEL,oDAAA,IAAIN,uBAAuBqC,MAAOC,CAAAA,IAAI,CAACtC,mBAAqBkB,CAAAA,CAAAA,MAAM,GAAG,CAAG,EAAA;wDACtEH,oBAAqBf,CAAAA,mBAAAA,CAAAA;AACvB;AACAsB,oDAAAA,iBAAAA,EAAAA;AACF;AAEA,gDAAA,IAAI,CAACX,WAAa,EAAA;oDAChBC,cAAe,CAAA,IAAA,CAAA;AACjB;AACF;AACF,yCAAA;wCACAuD,KAAM,EAAA,MAAA;AAELlF,wCAAAA,QAAAA,EAAAA;;;;0CAIPyE,eAACpF,CAAAA,kBAAAA,EAAAA;;AACC,kDAAAiE,cAAA,CAAC/D,mBAAM4F,MAAM,EAAA;wCAACC,GAAK,EAAA,CAAA;AACjB,wCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,iBAAAA,EAAAA;4CAAKC,cAAe,EAAA,eAAA;4CAAgBC,UAAW,EAAA,QAAA;4CAASL,KAAM,EAAA,MAAA;AAC7D,4CAAA,QAAA,gBAAAT,eAACY,CAAAA,iBAAAA,EAAAA;gDAAKD,GAAK,EAAA,CAAA;;kEACT9B,cAACkC,CAAAA,uBAAAA,EAAAA;wDACCC,WAAa,EAAA,KAAA;wDACbC,KAAM,EAAA,MAAA;wDACNC,OAAQ,EAAA,OAAA;AACRC,wDAAAA,QAAAA,EAAU,CAACpB,UAAAA;wDACXS,OAAS,EAAA,IAAA;4DACPxD,iBAAkB,CAAA,MAAA,CAAA;4DAClB,IAAI4C,QAAAA,IAAY,CAACC,YAAc,EAAA;gEAC7BjD,qBAAsB,CAAA,IAAA,CAAA;6DACjB,MAAA;AACL,gEAAA,MAAM8B,gBAAmBnB,GAAAA,mBAAAA,EAAAA;AACzB,gEAAA,IAAImB,gBAAkB,EAAA;AACpBhB,oEAAAA,6BAAAA,EAAAA;oEACAlB,cAAekC,CAAAA,gBAAAA,CAAAA;AACjB;AACF;AACF,yDAAA;wDACA0C,WAAa,EAAA,CAAA;AAEb,wDAAA,QAAA,gBAAAvC,cAACwC,CAAAA,eAAAA,EAAAA,EAAAA;;kEAEHxC,cAACyC,CAAAA,uBAAAA,EAAAA;wDAAWC,GAAI,EAAA,MAAA;wDAAOC,UAAY,EAAA,GAAA;kEAChC3F,aAAc,CAAA;4DACb4F,EAAI,EAAA,2DAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA;;;;;;kDAKR7C,cAAC8C,CAAAA,iBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA9C,cAACkC,CAAAA,uBAAAA,EAAAA;4CACCP,OAAS,EAAA,IAAA;gDACPxD,iBAAkB,CAAA,UAAA,CAAA;gDAElB,IAAI4C,QAAAA,IAAY,CAACC,YAAc,EAAA;oDAC7BjD,qBAAsB,CAAA,IAAA,CAAA;iDACjB,MAAA;oDACLpB,QAASwC,CAAAA,eAAAA,EAAAA,CAAAA;AACX;AACF,6CAAA;4CACAkD,OAAQ,EAAA,UAAA;AACRD,4CAAAA,KAAAA,EAAOpF,aAAc,CAAA;gDACnB4F,EAAI,EAAA,+DAAA;gDACJC,cAAgB,EAAA;AAClB,6CAAA,CAAA;AAEA,4CAAA,QAAA,gBAAA7C,cAAC+C,CAAAA,eAAAA,EAAAA,EAAAA;;;AAGL,kDAAA/C,cAAA,CAAC/D,mBAAM+G,MAAM,EAAA;AACX,wCAAA,QAAA,gBAAAhD,cAACiD,CAAAA,mBAAAA,EAAAA;4CACCtB,OAAS,EAAA,IAAA;gDACP,IAAIZ,QAAAA,IAAY,CAACC,YAAc,EAAA;oDAC7BjD,qBAAsB,CAAA,IAAA,CAAA;iDACjB,MAAA;AACLgB,oDAAAA,iBAAAA,EAAAA;AACF;AACF,6CAAA;4CACAsD,OAAQ,EAAA,UAAA;sDAEPrF,aAAc,CAAA;gDACb4F,EAAI,EAAA,8BAAA;gDACJC,cAAgB,EAAA;AAClB,6CAAA;;;;;;;AAKR,kCAAA7C,cAAA,CAACkD,oBAAO9B,IAAI,EAAA;wBAACC,IAAMvD,EAAAA,kBAAAA;wBAAoBwD,YAAcvD,EAAAA,qBAAAA;AACnD,wBAAA,QAAA,gBAAAiC,cAACmD,CAAAA,yBAAAA,EAAAA;4BACCC,SAAW,EAAA,IAAA;AACTxD,gCAAAA,aAAAA,EAAAA;gCACA7B,qBAAsB,CAAA,KAAA,CAAA;AACtBkD,gCAAAA,SAAAA,EAAAA;AACF,6BAAA;4BACAoC,QAAU,EAAA,IAAA;gCACRtF,qBAAsB,CAAA,KAAA,CAAA;AACxB,6BAAA;4BACAsE,OAAQ,EAAA,QAAA;sCAEPrF,aAAc,CAAA;gCACb4F,EAAI,EAAA,oEAAA;gCACJC,cACE,EAAA;AACJ,6BAAA;;;;;AAKV;;AAGN;AAEA,MAAMnB,gBAAAA,GAAmB1F,uBAAOsH,CAAAA,uBAAAA,CAAW;;eAE5B,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,SAAS,CAAC,CAAA,CAAE,CAAC;;;;;;AAMnD,CAAC;AASD,MAAMV,iBAAoB,GAAA,CAAC,EAAEW,QAAQ,EAA0B,GAAA;IAC7D,MAAM,EAAEzG,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMyG,eAAerG,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMI,IAAI,CAAA;AAClF,IAAA,MAAMiG,mBAAmBtG,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMC,QAAQ,CAAA;AAC1F,IAAA,MAAMqG,YAAYvG,kCAAmB,CAAA,mBAAA,EAAqB,CAACC,KAAAA,GAAUA,MAAMsG,SAAS,CAAA;IACpF,MAAMC,sBAAAA,GAAyBC,mCAAkBJ,CAAAA,YAAAA,CAAazE,KAAK,CAAA;AACnE,IAAA,MAAM8E,UAAUC,wBAAa,CAAA,mBAAA,EAAqB,CAAC1G,KAAAA,GAAUA,MAAMyG,OAAO,CAAA;IAE1E,MAAM5D,aAAAA,GAAgBwD,iBAAiBvD,oBAAoB,EAAA;AAE3D,IAAA,MAAM,EACJ6D,WAAc,GAAA,EAAE,EAChBC,SAAAA,EAAWC,oBAAoB,EAC/BC,KAAK,EACN,GAAGC,oBACFC,kBAAYC,CAAAA,GAAG,CAAC,CAACC,UAAY;AAC3BA,YAAAA,MAAAA;AACAC,YAAAA,OAAAA,EAASf,aAAazE;SACxB,CAAA,CAAA,CAAA;AAGF,IAAA,MAAMiF,YACJC,oBAAwBN,IAAAA,sBAAAA,CAAuBK,SAAS,IAAIP,iBAAiBO,SAAS;AACxF,IAAA,IAAIA,SAAa,IAAA,CAACP,gBAAiBpG,CAAAA,QAAQ,EAAE2B,UAAY,EAAA;AACvD,QAAA,qBACEc,cAAC0E,CAAAA,mBAAAA,EAAAA;YAAOC,KAAK,EAAA,IAAA;sBACV3H,aAAc,CAAA;gBACb4F,EAAI,EAAA,gDAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA;;AAGN;IAEA,IACEuB,KAAAA,IACA,CAACV,YAAazE,CAAAA,KAAK,IACnB4E,sBAAuBO,CAAAA,KAAK,IAC5B,CAACT,gBAAAA,CAAiBpG,QAAQ,IAC1B,CAACoG,iBAAiBjG,IAAI,IACtB,CAACiG,gBAAiBjD,CAAAA,MAAM,IACxB,CAACP,aACD,EAAA;AACA,QAAA,qBACEH,cAAC+B,CAAAA,iBAAAA,EAAAA;YAAKE,UAAW,EAAA,QAAA;YAAS2C,MAAO,EAAA,MAAA;YAAO5C,cAAe,EAAA,QAAA;AACrD,YAAA,QAAA,gBAAAhC,cAAC6E,CAAAA,6BAAAA,EAAAA;AACCC,gBAAAA,IAAAA,gBAAM9E,cAAC+E,CAAAA,mBAAAA,EAAAA;oBAAcnD,KAAM,EAAA;;AAC3BoD,gBAAAA,OAAAA,EAAShI,aAAc,CAAA;oBACrB4F,EAAI,EAAA,iBAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;;AAIR;IAEA,MAAMoC,aAAAA,GAAgBtB,iBAAiBuB,QAAQ,CAACrB,uBAAuBsB,IAAI,CAACC,QAAQ,CAACC,SAAS,CAAA;AAC9F,IAAA,MAAMC,oBAAuB3B,GAAAA,gBAAAA,CAAiBjD,MAAM,EAAEH,SAASgF,eAAmB,IAAA,KAAA;AAElF,IAAA,MAAMC,KAAQ,GAAA;QACZC,SAAW,EAAA,OAAA;AACXzG,QAAAA,cAAAA,EAAgB0E,aAAa1E,cAAc;AAC3CC,QAAAA,KAAAA,EAAOyE,aAAazE,KAAK;AACzBC,QAAAA,UAAAA,EAAYwE,aAAaxE,UAAU;AACnC3B,QAAAA,QAAAA,EAAUoG,iBAAiBpG,QAAQ;AACnCG,QAAAA,IAAAA,EAAMiG,iBAAiBjG,IAAI;AAC3BkG,QAAAA,SAAAA;QACA8B,iBAAmB,EAAA,IAAA;AACnBC,QAAAA,WAAAA,EAAa/B,SAAc9H,KAAAA;AAC7B,KAAA;IAEA,qBACEkE,cAAA,CAAC/D,mBAAM2J,IAAI,EAAA;AACT,QAAA,QAAA,gBAAAzE,eAAC0E,CAAAA,yBAAAA,EAAAA;YAAa5B,WAAaA,EAAAA,WAAAA;AAAahF,YAAAA,KAAAA,EAAOyE,aAAazE,KAAK;;8BAC/DkC,eAACY,CAAAA,iBAAAA,EAAAA;oBAAKE,UAAW,EAAA,YAAA;oBAAa6D,SAAU,EAAA,QAAA;oBAAShE,GAAK,EAAA,CAAA;;sCACpDX,eAACY,CAAAA,iBAAAA,EAAAA;4BAAKH,KAAM,EAAA,MAAA;4BAAOI,cAAe,EAAA,eAAA;4BAAgBF,GAAK,EAAA,CAAA;;8CACrD9B,cAACyC,CAAAA,uBAAAA,EAAAA;oCAAWC,GAAI,EAAA,IAAA;oCAAKL,OAAQ,EAAA,OAAA;AAC1B4C,oCAAAA,QAAAA,EAAAA;;8CAEH9D,eAACY,CAAAA,iBAAAA,EAAAA;oCAAKD,GAAK,EAAA,CAAA;;AACR2B,wCAAAA,QAAAA;sDACDzD,cAAC+F,CAAAA,wCAAAA,EAAAA;4CACCP,KAAOA,EAAAA,KAAAA;4CACPQ,YAAc,EACZjC,OAAO,CAAC,iBAAA,CAAkB,CAACkC,IAAI,CAC/BC,kBAAkB,CAAC,gBAAA,CAAA;sDAEpB,CAACC,OAAAA,GAAAA;AACA,gDAAA,MAAMC,eAAkBD,GAAAA,OAAAA,CAAQE,MAAM,CAAC,CAAC7B,MAAAA,GAAAA;oDACtC,OAAO;AAACA,wDAAAA,MAAAA,CAAO8B;qDAAS,CAACC,IAAI,EAAG5G,CAAAA,QAAQ,CAAC,gBAAA,CAAA;AAC3C,iDAAA,CAAA;gDACA,MAAM,CAAC6G,aAAeC,EAAAA,eAAAA,CAAgB,GAAGL,eAAAA;AAEzC,gDAAA,IAAI,CAACI,aAAAA,IAAiB,CAACC,eAAAA,EAAiB,OAAO,IAAA;;AAG/C,gDAAA,IAAID,iBAAiBC,eAAiB,EAAA;oDACpC,qBACEtF,eAAA,CAAAuF,mBAAA,EAAA;;0EAEE1G,cAAC2G,CAAAA,oCAAAA,EAAAA;AACE,gEAAA,GAAGF,eAAe;gEACnBpE,OAASoE,EAAAA,eAAAA,CAAgBpE,OAAO,IAAI;;0EAGtCrC,cAAC2G,CAAAA,oCAAAA,EAAAA;AACE,gEAAA,GAAGH,aAAa;gEACjBnE,OAASmE,EAAAA,aAAAA,CAAcnE,OAAO,IAAI;;;;AAI1C;;AAGA,gDAAA,qBACErC,cAAC2G,CAAAA,oCAAAA,EAAAA;AACE,oDAAA,GAAGH,aAAa;oDACjBnE,OAASmE,EAAAA,aAAAA,CAAcnE,OAAO,IAAI;;AAGxC;;;;;;AAILiD,wBAAAA,oBAAAA,iBACCtF,cAAC4G,CAAAA,gBAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAA5G,cAAC6G,CAAAA,6BAAAA,EAAAA;gCAAehG,MAAQ8C,EAAAA,gBAAAA,CAAiBpG,QAAQ,EAAEsD;;AAEnD,yBAAA,CAAA,GAAA;;;8BAGNb,cAAC+B,CAAAA,iBAAAA,EAAAA;oBAAK+E,IAAM,EAAA,CAAA;oBAAGC,QAAS,EAAA,MAAA;oBAAO9E,UAAW,EAAA,SAAA;oBAAU+E,UAAY,EAAA,CAAA;AAC9D,oBAAA,QAAA,gBAAAhH,cAAC4G,CAAAA,gBAAAA,EAAAA;wBAAIG,QAAS,EAAA,MAAA;wBAAOD,IAAM,EAAA,CAAA;AACzB,wBAAA,QAAA,gBAAA9G,cAACiH,CAAAA,qBAAAA,EAAAA;4BACCC,MAAQrD,EAAAA,sBAAAA,CAAuBsB,IAAI,CAAC+B,MAAM;4BAC1C3J,QAAUoG,EAAAA,gBAAAA;4BACVwD,aAAe,EAAA;;;;;;;AAO7B,CAAA;;;;;"}
1
+ {"version":3,"file":"RelationModal.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n ConfirmDialog,\n DescriptionComponentRenderer,\n Form as FormContext,\n useRBAC,\n useStrapiApp,\n createContext,\n useForm,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Dialog,\n EmptyStateLayout,\n Flex,\n IconButton,\n Loader,\n Modal,\n Typography,\n TextButton,\n} from '@strapi/design-system';\nimport { ArrowLeft, ArrowsOut, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../../../../../constants/collections';\nimport { PERMISSIONS } from '../../../../../constants/plugin';\nimport { buildValidParams } from '../../../../../exports';\nimport { DocumentRBAC } from '../../../../../features/DocumentRBAC';\nimport { useDoc, useDocument, type UseDocument } from '../../../../../hooks/useDocument';\nimport { type DocumentMeta } from '../../../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../../../hooks/useDocumentLayout';\nimport { useLazyGetDocumentQuery } from '../../../../../services/documents';\nimport { createYupSchema } from '../../../../../utils/validation';\nimport { DocumentActionButton } from '../../../components/DocumentActions';\nimport { DocumentStatus } from '../../DocumentStatus';\nimport { FormLayout } from '../../FormLayout';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../../../../content-manager';\n\nexport function getCollectionType(url: string) {\n const regex = new RegExp(`(${COLLECTION_TYPES}|${SINGLE_TYPES})`);\n const match = url.match(regex);\n return match ? match[1] : undefined;\n}\n\nconst StyledModalContent = styled(Modal.Content)`\n width: 90%;\n max-width: 100%;\n height: 90%;\n max-height: 100%;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * RelationContextWrapper\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n documentHistory: DocumentMeta[];\n confirmDialogIntent:\n | null // No dialog\n | 'close' // Close the modal\n | 'back' // Go back one document in the modal's history\n | 'navigate' // Open the document in the edit view instead of in the modal\n | DocumentMeta; // Open a specific document in the modal\n isModalOpen: boolean;\n hasUnsavedChanges: boolean;\n}\n\ntype Action =\n | {\n type: 'GO_TO_RELATION';\n payload: {\n document: DocumentMeta;\n shouldBypassConfirmation: boolean;\n };\n }\n | {\n type: 'GO_BACK';\n payload: { shouldBypassConfirmation: boolean };\n }\n | {\n type: 'GO_FULL_PAGE';\n }\n | {\n type: 'CANCEL_CONFIRM_DIALOG';\n }\n | {\n type: 'CLOSE_MODAL';\n payload: { shouldBypassConfirmation: boolean };\n }\n | {\n type: 'SET_HAS_UNSAVED_CHANGES';\n payload: { hasUnsavedChanges: boolean };\n };\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'GO_TO_RELATION':\n if (state.hasUnsavedChanges && !action.payload.shouldBypassConfirmation) {\n return { ...state, confirmDialogIntent: action.payload.document };\n }\n\n return {\n ...state,\n documentHistory: [...state.documentHistory, action.payload.document],\n confirmDialogIntent: null,\n isModalOpen: true,\n };\n case 'GO_BACK':\n if (state.hasUnsavedChanges && !action.payload.shouldBypassConfirmation) {\n return { ...state, confirmDialogIntent: 'back' };\n }\n\n return {\n ...state,\n documentHistory: state.documentHistory.slice(0, -1),\n confirmDialogIntent: null,\n };\n case 'GO_FULL_PAGE':\n if (state.hasUnsavedChanges) {\n return { ...state, confirmDialogIntent: 'navigate' };\n }\n\n return {\n ...state,\n documentHistory: [],\n hasUnsavedChanges: false,\n isModalOpen: false,\n confirmDialogIntent: null,\n };\n case 'CANCEL_CONFIRM_DIALOG':\n return {\n ...state,\n confirmDialogIntent: null,\n };\n case 'CLOSE_MODAL':\n if (state.hasUnsavedChanges && !action.payload.shouldBypassConfirmation) {\n return { ...state, confirmDialogIntent: 'close' };\n }\n\n return {\n ...state,\n documentHistory: [],\n confirmDialogIntent: null,\n hasUnsavedChanges: false,\n isModalOpen: false,\n };\n case 'SET_HAS_UNSAVED_CHANGES':\n return {\n ...state,\n hasUnsavedChanges: action.payload.hasUnsavedChanges,\n };\n default:\n return state;\n }\n}\n\ninterface RelationModalContextValue {\n state: State;\n dispatch: React.Dispatch<Action>;\n rootDocumentMeta: DocumentMeta;\n currentDocumentMeta: DocumentMeta;\n currentDocument: ReturnType<UseDocument>;\n onPreview?: () => void;\n}\n\nconst [RelationModalProvider, useRelationModal] =\n createContext<RelationModalContextValue>('RelationModal');\n\nconst getFullPageUrl = (currentDocumentMeta: DocumentMeta): string => {\n const isSingleType = currentDocumentMeta.collectionType === SINGLE_TYPES;\n const queryParams = currentDocumentMeta.params?.locale\n ? `?plugins[i18n][locale]=${currentDocumentMeta.params.locale}`\n : '';\n\n return `/content-manager/${currentDocumentMeta.collectionType}/${currentDocumentMeta.model}${isSingleType ? '' : '/' + currentDocumentMeta.documentId}${queryParams}`;\n};\n\n/**\n * Component responsible of rendering its children wrapped in a modal, form and context if needed\n */\nconst RelationModalRenderer = ({\n children,\n trigger,\n relation,\n}: {\n children: React.ReactNode;\n trigger: React.ReactNode;\n relation: DocumentMeta;\n}) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n\n const [state, dispatch] = React.useReducer(reducer, {\n documentHistory: [],\n confirmDialogIntent: null,\n isModalOpen: false,\n hasUnsavedChanges: false,\n });\n\n const rootDocument = useDoc();\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query ?? {}), [query]);\n\n const rootDocumentMeta: DocumentMeta = {\n documentId: rootDocument.document?.documentId || '',\n model: rootDocument.model,\n collectionType: rootDocument.collectionType,\n params,\n };\n\n const currentDocumentMeta = state.documentHistory.at(-1) ?? rootDocumentMeta;\n const currentDocument = useDocument(currentDocumentMeta);\n\n const parentContextValue = useRelationModal('RelationContextWrapper', (state) => state, false);\n\n // A parent relation is already rendering a modal. In this case simply render the trigger\n if (parentContextValue) {\n return trigger;\n }\n\n /**\n * There is no parent relation, so the relation modal doesn't exist. Create it and set up all the\n * pieces that will be used by potential child relations: the context, header, form, and footer.\n */\n return (\n <RelationModalProvider\n state={state}\n dispatch={dispatch}\n rootDocumentMeta={rootDocumentMeta}\n currentDocumentMeta={currentDocumentMeta}\n currentDocument={currentDocument}\n >\n <Modal.Root\n open={state.isModalOpen}\n onOpenChange={(open) => {\n if (open) {\n dispatch({\n type: 'GO_TO_RELATION',\n payload: { document: relation, shouldBypassConfirmation: false },\n });\n } else {\n dispatch({\n type: 'CLOSE_MODAL',\n payload: { shouldBypassConfirmation: false },\n });\n }\n }}\n >\n {trigger}\n <StyledModalContent>\n <Modal.Header gap={2}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Flex gap={2}>\n <IconButton\n withTooltip={false}\n label={formatMessage({ id: 'global.back', defaultMessage: 'Back' })}\n variant=\"ghost\"\n disabled={state.documentHistory.length < 2}\n onClick={() => {\n dispatch({\n type: 'GO_BACK',\n payload: { shouldBypassConfirmation: false },\n });\n }}\n marginRight={1}\n >\n <ArrowLeft />\n </IconButton>\n <Typography tag=\"span\" fontWeight={600}>\n {formatMessage({\n id: 'content-manager.components.RelationInputModal.modal-title',\n defaultMessage: 'Edit a relation',\n })}\n </Typography>\n </Flex>\n <IconButton\n onClick={() => {\n dispatch({\n type: 'GO_FULL_PAGE',\n });\n if (!state.hasUnsavedChanges) {\n navigate(getFullPageUrl(currentDocumentMeta));\n }\n }}\n variant=\"tertiary\"\n label={formatMessage({\n id: 'content-manager.components.RelationInputModal.button-fullpage',\n defaultMessage: 'Go to entry',\n })}\n >\n <ArrowsOut />\n </IconButton>\n </Flex>\n </Modal.Header>\n <Modal.Body>\n <FormContext\n method=\"PUT\"\n initialValues={currentDocument.getInitialFormValues()}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n currentDocument.schema?.attributes,\n currentDocument.components,\n {\n status: currentDocument.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n {children}\n </FormContext>\n </Modal.Body>\n </StyledModalContent>\n </Modal.Root>\n </RelationModalProvider>\n );\n};\n\n/**\n * All the main content (not header and footer) of the relation modal, plus the confirmation dialog.\n * Will be wrapped in a Modal.Body by the RelationModalRenderer.\n * Cannot be moved directly inside RelationModal because it needs access to the context via hooks.\n */\nconst RelationModalBody = () => {\n const navigate = useNavigate();\n const { pathname, search } = useLocation();\n const { formatMessage } = useIntl();\n\n const [triggerRefetchDocument] = useLazyGetDocumentQuery();\n\n const state = useRelationModal('RelationModalForm', (state) => state.state);\n const dispatch = useRelationModal('RelationModalForm', (state) => state.dispatch);\n const rootDocumentMeta = useRelationModal('RelationModalForm', (state) => state.rootDocumentMeta);\n const currentDocumentMeta = useRelationModal(\n 'RelationModalForm',\n (state) => state.currentDocumentMeta\n );\n\n /**\n * One-way sync the modified state from the form to the modal state.\n * It is needed because we need to consume state from the form context in order to lift it up\n * into the modal context. It is not possible otherwise because the modal needs the form state,\n * but it must be a parent of the form.\n */\n const modified = useForm('FormWatcher', (state) => state.modified);\n const isSubmitting = useForm('FormWatcher', (state) => state.isSubmitting);\n const hasUnsavedChanges = modified && !isSubmitting;\n React.useEffect(() => {\n dispatch({ type: 'SET_HAS_UNSAVED_CHANGES', payload: { hasUnsavedChanges } });\n }, [hasUnsavedChanges, dispatch]);\n\n const handleCloseModal = (shouldBypassConfirmation: boolean) => {\n dispatch({ type: 'CLOSE_MODAL', payload: { shouldBypassConfirmation } });\n\n if (shouldBypassConfirmation || !state.hasUnsavedChanges) {\n // TODO: check if we can avoid this by relying on RTK invalidatesTags.\n // If so we can delete this function and dispatch the events directly\n triggerRefetchDocument(\n // TODO check if params should be removed (as they were before)\n rootDocumentMeta,\n // Favor the cache\n true\n );\n }\n };\n\n const handleRedirection = () => {\n const editViewUrl = `${pathname}${search}`;\n const fullPageUrl = getFullPageUrl(currentDocumentMeta);\n const isRootDocumentUrl = editViewUrl.includes(fullPageUrl);\n\n if (isRootDocumentUrl) {\n handleCloseModal(true);\n } else {\n navigate(fullPageUrl);\n }\n };\n\n const handleConfirm = () => {\n if (state.confirmDialogIntent === null) {\n return;\n }\n if (state.confirmDialogIntent === 'navigate') {\n handleRedirection();\n } else if (state.confirmDialogIntent === 'back') {\n dispatch({ type: 'GO_BACK', payload: { shouldBypassConfirmation: true } });\n } else if (state.confirmDialogIntent === 'close') {\n handleCloseModal(true);\n } else if ('documentId' in state.confirmDialogIntent) {\n dispatch({\n type: 'GO_TO_RELATION',\n payload: { document: state.confirmDialogIntent, shouldBypassConfirmation: true },\n });\n }\n };\n\n return (\n <>\n <RelationEditView />\n <Dialog.Root open={state.confirmDialogIntent != null}>\n <ConfirmDialog\n onConfirm={() => handleConfirm()}\n onCancel={() => dispatch({ type: 'CANCEL_CONFIRM_DIALOG' })}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'content-manager.components.RelationInputModal.confirmation-message',\n defaultMessage:\n 'Some changes were not saved. Are you sure you want to close this relation? All changes that were not saved will be lost.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </>\n );\n};\n\nconst ModalTrigger = ({\n children,\n relation,\n}: {\n children: React.ReactNode;\n relation: DocumentMeta;\n}) => {\n const dispatch = useRelationModal('ModalTrigger', (state) => state.dispatch);\n\n return (\n <StyledTextButton\n onClick={() => {\n dispatch({\n type: 'GO_TO_RELATION',\n payload: { document: relation, shouldBypassConfirmation: false },\n });\n }}\n >\n {children}\n </StyledTextButton>\n );\n};\n\ninterface RelationModalProps {\n children: React.ReactNode;\n relation: DocumentMeta;\n}\n\nconst RelationModal = React.memo(({ relation, children }: RelationModalProps) => {\n return (\n <RelationModalRenderer\n relation={relation}\n trigger={<ModalTrigger relation={relation}>{children}</ModalTrigger>}\n >\n <RelationModalBody />\n </RelationModalRenderer>\n );\n});\n\nconst StyledTextButton = styled(TextButton)`\n max-width: 100%;\n & > span {\n font-size: ${({ theme }) => theme.fontSizes[2]};\n width: inherit;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`;\n\n/**\n * The mini edit view for a relation that is displayed inside a modal.\n * It's complete with its header, document actions and form layout.\n */\nconst RelationEditView = () => {\n const { formatMessage } = useIntl();\n\n const currentDocumentMeta = useRelationModal(\n 'RelationModalBody',\n (state) => state.currentDocumentMeta\n );\n const currentDocument = useRelationModal('RelationModalBody', (state) => state.currentDocument);\n const documentLayoutResponse = useDocumentLayout(currentDocumentMeta.model);\n const plugins = useStrapiApp('RelationModalBody', (state) => state.plugins);\n\n const initialValues = currentDocument.getInitialFormValues();\n\n const {\n permissions = [],\n isLoading: isLoadingPermissions,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: currentDocumentMeta.model,\n }))\n );\n\n const isLoading =\n isLoadingPermissions || documentLayoutResponse.isLoading || currentDocument.isLoading;\n\n if (isLoading && !currentDocument.document?.documentId) {\n return (\n <Loader small>\n {formatMessage({\n id: 'content-manager.ListViewTable.relation-loading',\n defaultMessage: 'Relations are loading',\n })}\n </Loader>\n );\n }\n\n if (\n error ||\n !currentDocumentMeta.model ||\n documentLayoutResponse.error ||\n !currentDocument.document ||\n !currentDocument.meta ||\n !currentDocument.schema ||\n !initialValues\n ) {\n return (\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n />\n </Flex>\n );\n }\n\n const documentTitle = currentDocument.getTitle(documentLayoutResponse.edit.settings.mainField);\n const hasDraftAndPublished = currentDocument.schema?.options?.draftAndPublish ?? false;\n\n const props = {\n activeTab: 'draft',\n collectionType: currentDocumentMeta.collectionType,\n model: currentDocumentMeta.model,\n documentId: currentDocumentMeta.documentId,\n document: currentDocument.document,\n meta: currentDocument.meta,\n } satisfies DocumentActionProps;\n\n return (\n <DocumentRBAC permissions={permissions} model={currentDocumentMeta.model}>\n <Flex alignItems=\"flex-start\" direction=\"column\" gap={2}>\n <Flex width=\"100%\" justifyContent=\"space-between\" gap={2}>\n <Typography tag=\"h2\" variant=\"alpha\">\n {documentTitle}\n </Typography>\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('relation-modal')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) => {\n return [action.position].flat().includes('relation-modal');\n });\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n {hasDraftAndPublished ? (\n <Box>\n <DocumentStatus status={currentDocument.document?.status} />\n </Box>\n ) : null}\n </Flex>\n\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\" paddingTop={7}>\n <Box overflow=\"auto\" flex={1}>\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={currentDocument}\n hasBackground={false}\n />\n </Box>\n </Flex>\n </DocumentRBAC>\n );\n};\n\nexport { RelationModal, reducer, useRelationModal };\nexport type { State, Action };\n"],"names":["getCollectionType","url","regex","RegExp","COLLECTION_TYPES","SINGLE_TYPES","match","undefined","StyledModalContent","styled","Modal","Content","reducer","state","action","type","hasUnsavedChanges","payload","shouldBypassConfirmation","confirmDialogIntent","document","documentHistory","isModalOpen","slice","RelationModalProvider","useRelationModal","createContext","getFullPageUrl","currentDocumentMeta","isSingleType","collectionType","queryParams","params","locale","model","documentId","RelationModalRenderer","children","trigger","relation","formatMessage","useIntl","navigate","useNavigate","dispatch","React","useReducer","rootDocument","useDoc","query","useQueryParams","useMemo","buildValidParams","rootDocumentMeta","at","currentDocument","useDocument","parentContextValue","_jsx","_jsxs","Root","open","onOpenChange","Header","gap","Flex","justifyContent","alignItems","width","IconButton","withTooltip","label","id","defaultMessage","variant","disabled","length","onClick","marginRight","ArrowLeft","Typography","tag","fontWeight","ArrowsOut","Body","FormContext","method","initialValues","getInitialFormValues","validate","values","options","yupSchema","createYupSchema","schema","attributes","components","status","abortEarly","RelationModalBody","pathname","search","useLocation","triggerRefetchDocument","useLazyGetDocumentQuery","modified","useForm","isSubmitting","useEffect","handleCloseModal","handleRedirection","editViewUrl","fullPageUrl","isRootDocumentUrl","includes","handleConfirm","_Fragment","RelationEditView","Dialog","ConfirmDialog","onConfirm","onCancel","ModalTrigger","StyledTextButton","RelationModal","memo","TextButton","theme","fontSizes","documentLayoutResponse","useDocumentLayout","plugins","useStrapiApp","permissions","isLoading","isLoadingPermissions","error","useRBAC","PERMISSIONS","map","subject","Loader","small","meta","height","EmptyStateLayout","icon","WarningCircle","content","documentTitle","getTitle","edit","settings","mainField","hasDraftAndPublished","draftAndPublish","props","activeTab","DocumentRBAC","direction","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","actions","filteredActions","filter","position","flat","primaryAction","secondaryAction","DocumentActionButton","Box","DocumentStatus","flex","overflow","paddingTop","FormLayout","layout","hasBackground"],"mappings":"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"}