@strapi/content-manager 0.0.0-experimental.d594270d189417b9207db1acd922f30792487dfe → 0.0.0-experimental.d5e2ac04fc211c528d0d69acd705f180e404f04a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/components/Widgets.js +414 -0
- package/dist/admin/components/Widgets.js.map +1 -0
- package/dist/admin/components/Widgets.mjs +391 -0
- package/dist/admin/components/Widgets.mjs.map +1 -0
- package/dist/admin/content-manager.js.map +1 -1
- package/dist/admin/content-manager.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +24 -3
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +25 -4
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +6 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.mjs +7 -1
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
- package/dist/admin/history/pages/History.js +1 -9
- package/dist/admin/history/pages/History.js.map +1 -1
- package/dist/admin/history/pages/History.mjs +1 -9
- package/dist/admin/history/pages/History.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +20 -5
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +20 -5
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentContext.js +57 -0
- package/dist/admin/hooks/useDocumentContext.js.map +1 -0
- package/dist/admin/hooks/useDocumentContext.mjs +36 -0
- package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
- package/dist/admin/index.js +81 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +80 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +105 -89
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +107 -91
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +314 -120
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +321 -127
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -4
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +23 -21
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +25 -23
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +507 -345
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +507 -347
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +178 -69
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +182 -73
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +11 -9
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +11 -9
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +3 -10
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -10
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +103 -0
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +103 -1
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +221 -203
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +222 -204
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +4 -1
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.js +13 -3
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/preview/components/PreviewHeader.js +3 -6
- package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
- package/dist/admin/preview/components/PreviewHeader.mjs +3 -6
- package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
- package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
- package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
- package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
- package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +141 -96
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +142 -97
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/services/api.js +3 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +3 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +32 -16
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +32 -16
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/homepage.js +39 -0
- package/dist/admin/services/homepage.js.map +1 -0
- package/dist/admin/services/homepage.mjs +36 -0
- package/dist/admin/services/homepage.mjs.map +1 -0
- package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
- package/dist/admin/src/components/Widgets.d.ts +4 -0
- package/dist/admin/src/content-manager.d.ts +0 -3
- package/dist/admin/src/exports.d.ts +1 -0
- package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
- package/dist/admin/src/history/pages/History.d.ts +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
- package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
- package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
- package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
- package/dist/admin/src/preview/pages/Preview.d.ts +2 -1
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +23 -17
- package/dist/admin/src/services/homepage.d.ts +9 -0
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/validation.d.ts +1 -0
- package/dist/admin/translations/en.json.js +9 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +9 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +5 -2
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +5 -2
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +10 -2
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +10 -2
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/translations/ru.json.js +235 -226
- package/dist/admin/translations/ru.json.js.map +1 -1
- package/dist/admin/translations/ru.json.mjs +230 -226
- package/dist/admin/translations/ru.json.mjs.map +1 -1
- package/dist/admin/utils/validation.js +17 -6
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/admin/utils/validation.mjs +17 -6
- package/dist/admin/utils/validation.mjs.map +1 -1
- package/dist/server/controllers/content-types.js +11 -1
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +11 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +3 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/relations.js +2 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +2 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/index.js +14 -2
- package/dist/server/controllers/validation/index.js.map +1 -1
- package/dist/server/controllers/validation/index.mjs +14 -2
- package/dist/server/controllers/validation/index.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +3 -0
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +3 -0
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/homepage/controllers/homepage.js +62 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -0
- package/dist/server/homepage/controllers/homepage.mjs +41 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
- package/dist/server/homepage/controllers/index.js +10 -0
- package/dist/server/homepage/controllers/index.js.map +1 -0
- package/dist/server/homepage/controllers/index.mjs +8 -0
- package/dist/server/homepage/controllers/index.mjs.map +1 -0
- package/dist/server/homepage/index.js +14 -0
- package/dist/server/homepage/index.js.map +1 -0
- package/dist/server/homepage/index.mjs +12 -0
- package/dist/server/homepage/index.mjs.map +1 -0
- package/dist/server/homepage/routes/homepage.js +36 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -0
- package/dist/server/homepage/routes/homepage.mjs +34 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -0
- package/dist/server/homepage/routes/index.js +13 -0
- package/dist/server/homepage/routes/index.js.map +1 -0
- package/dist/server/homepage/routes/index.mjs +11 -0
- package/dist/server/homepage/routes/index.mjs.map +1 -0
- package/dist/server/homepage/services/homepage.js +197 -0
- package/dist/server/homepage/services/homepage.js.map +1 -0
- package/dist/server/homepage/services/homepage.mjs +195 -0
- package/dist/server/homepage/services/homepage.mjs.map +1 -0
- package/dist/server/homepage/services/index.js +10 -0
- package/dist/server/homepage/services/index.js.map +1 -0
- package/dist/server/homepage/services/index.mjs +8 -0
- package/dist/server/homepage/services/index.mjs.map +1 -0
- package/dist/server/preview/services/preview-config.js +5 -1
- package/dist/server/preview/services/preview-config.js.map +1 -1
- package/dist/server/preview/services/preview-config.mjs +5 -1
- package/dist/server/preview/services/preview-config.mjs.map +1 -1
- package/dist/server/preview/services/preview.js +4 -1
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +4 -1
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/routes/index.js +3 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +3 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/data-mapper.js +4 -1
- package/dist/server/services/data-mapper.js.map +1 -1
- package/dist/server/services/data-mapper.mjs +4 -1
- package/dist/server/services/data-mapper.mjs.map +1 -1
- package/dist/server/services/document-manager.js +8 -1
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +8 -1
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +3 -1
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +3 -1
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +3 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/utils/configuration/attributes.js +1 -1
- package/dist/server/services/utils/configuration/attributes.js.map +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
- package/dist/server/services/utils/configuration/layouts.js +1 -1
- package/dist/server/services/utils/configuration/layouts.js.map +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.js +8 -0
- package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
- package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
- package/dist/server/services/utils/populate.js +11 -0
- package/dist/server/services/utils/populate.js.map +1 -1
- package/dist/server/services/utils/populate.mjs +11 -0
- package/dist/server/services/utils/populate.mjs.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/index.d.ts +6 -1
- package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/controllers/index.d.ts +2 -0
- package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
- package/dist/server/src/homepage/index.d.ts +23 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/index.d.ts +8 -0
- package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
- package/dist/server/src/homepage/services/homepage.d.ts +14 -0
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/services/index.d.ts +16 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +14 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +1 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview-config.d.ts +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +1 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/data-mapper.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +13 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +0 -1
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +38 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -0
- package/package.json +12 -9
- package/dist/admin/features/DocumentContext.js +0 -71
- package/dist/admin/features/DocumentContext.js.map +0 -1
- package/dist/admin/features/DocumentContext.mjs +0 -49
- package/dist/admin/features/DocumentContext.mjs.map +0 -1
- package/dist/admin/src/features/DocumentContext.d.ts +0 -53
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fields.mjs","sources":["../../../../admin/src/components/ConfigurationForm/Fields.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Modal,\n Box,\n Flex,\n Grid,\n IconButton,\n IconButtonComponent,\n Typography,\n useComposedRefs,\n Link,\n Menu,\n} from '@strapi/design-system';\nimport { Cog, Cross, Drag, Pencil, Plus } from '@strapi/icons';\nimport { generateNKeysBetween as generateNKeysBetweenImpl } from 'fractional-indexing';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ItemTypes } from '../../constants/dragAndDrop';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../utils/translations';\nimport { ComponentIcon } from '../ComponentIcon';\n\nimport { EditFieldForm, EditFieldFormProps } from './EditFieldForm';\n\nimport type { ConfigurationFormData, EditFieldSpacerLayout } from './Form';\nimport type { EditLayout } from '../../hooks/useDocumentLayout';\n\ntype FormField = ConfigurationFormData['layout'][number]['children'][number];\ntype Field = Omit<ConfigurationFormData['layout'][number]['children'][number], '__temp_key__'>;\n\n/* -------------------------------------------------------------------------------------------------\n * Fields\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldsProps extends Pick<EditLayout, 'metadatas'>, Pick<FieldProps, 'components'> {\n attributes: {\n [key: string]: FieldProps['attribute'];\n };\n fieldSizes: Record<string, number>;\n components: EditLayout['components'];\n}\n\nconst Fields = ({ attributes, fieldSizes, components, metadatas = {} }: FieldsProps) => {\n const { formatMessage } = useIntl();\n\n const layout = useForm<ConfigurationFormData['layout']>(\n 'Fields',\n (state) => state.values.layout ?? []\n );\n const onChange = useForm('Fields', (state) => state.onChange);\n const addFieldRow = useForm('Fields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('Fields', (state) => state.removeFieldRow);\n\n const existingFields = layout.map((row) => row.children.map((field) => field.name)).flat();\n\n /**\n * Get the fields that are not already in the layout\n * But also check that they are visible before we give users\n * the option to display them. e.g. `id` is not visible.\n */\n const remainingFields = Object.entries(metadatas).reduce<Field[]>((acc, current) => {\n const [name, { visible, ...field }] = current;\n\n if (!existingFields.includes(name) && visible === true) {\n const type = attributes[name]?.type;\n const size = type ? fieldSizes[type] : 12;\n\n acc.push({\n ...field,\n label: field.label ?? name,\n name,\n size,\n });\n }\n\n return acc;\n }, []);\n\n const handleMoveField: FieldProps['onMoveField'] = (\n [newRowIndex, newFieldIndex],\n [currentRowIndex, currentFieldIndex]\n ) => {\n /**\n * Because this view has the constraint that the sum of field sizes cannot be greater\n * than 12, we don't use the form's method to move field rows, instead, we calculate\n * the new layout and set the entire form.\n */\n const newLayout = structuredClone(layout);\n\n /**\n * Remove field from the current layout space using splice so we have the item\n */\n const [field] = newLayout[currentRowIndex].children.splice(currentFieldIndex, 1);\n\n if (!field || field.name === TEMP_FIELD_NAME) {\n return;\n }\n\n const newRow = newLayout[newRowIndex].children;\n const [newFieldKey] = generateNKeysBetween(newRow, 1, currentFieldIndex, newFieldIndex);\n\n /**\n * Next we inject the field into it's new row at it's specified index, we then remove the spaces\n * if they exist and recalculate into potentially two arrays ONLY if the sizing is now over 12,\n * the row and the rest of the row that couldn't fit.\n *\n * for example, if i have a row of `[{size: 4}, {size: 6}]` and i add `{size: 8}` a index 0,\n * the new array will look like `[{size: 8}, {size: 4}, {size: 6}]` which breaks the limit of 12,\n * so instead we make two arrays for the new rows `[[{size: 8}, {size: 4}], [{size: 6}]]` which we\n * then inject at the original row point with spacers included.\n */\n newRow.splice(newFieldIndex, 0, { ...field, __temp_key__: newFieldKey });\n\n if (newLayout[newRowIndex].children.reduce((acc, curr) => acc + curr.size, 0) > 12) {\n const recalculatedRows = chunkArray(\n newLayout[newRowIndex].children.filter((field) => field.name !== TEMP_FIELD_NAME)\n );\n\n const rowKeys = generateNKeysBetween(\n newLayout,\n recalculatedRows.length,\n currentRowIndex,\n newRowIndex\n );\n\n newLayout.splice(\n newRowIndex,\n 1,\n ...recalculatedRows.map((row, index) => ({\n __temp_key__: rowKeys[index],\n children: row,\n }))\n );\n }\n\n /**\n * Now we remove our spacers from the rows so we can understand what dead rows exist:\n * - if there's only spacers left\n * - there's nothing in the row, e.g. a size 12 field left it.\n * These rows are then filtered out.\n * After that, we recalculate the spacers for the rows that need them.\n */\n const newLayoutWithSpacers = newLayout\n .map((row) => ({\n ...row,\n children: row.children.filter((field) => field.name !== TEMP_FIELD_NAME),\n }))\n .filter((row) => row.children.length > 0)\n .map((row) => {\n const totalSpaceTaken = row.children.reduce((acc, curr) => acc + curr.size, 0);\n\n if (totalSpaceTaken < 12) {\n const [spacerKey] = generateNKeysBetweenImpl(\n row.children.at(-1)?.__temp_key__,\n undefined,\n 1\n );\n\n return {\n ...row,\n children: [\n ...row.children,\n {\n name: TEMP_FIELD_NAME,\n size: 12 - totalSpaceTaken,\n __temp_key__: spacerKey,\n } satisfies EditFieldSpacerLayout,\n ],\n };\n }\n\n return row;\n });\n\n onChange('layout', newLayoutWithSpacers);\n };\n\n const handleRemoveField =\n (rowIndex: number, fieldIndex: number): FieldProps['onRemoveField'] =>\n () => {\n if (layout[rowIndex].children.length === 1) {\n removeFieldRow(`layout`, rowIndex);\n } else {\n onChange(`layout.${rowIndex}.children`, [\n ...layout[rowIndex].children.slice(0, fieldIndex),\n ...layout[rowIndex].children.slice(fieldIndex + 1),\n ]);\n }\n };\n\n const handleAddField = (field: Field) => () => {\n addFieldRow('layout', { children: [field] });\n };\n\n return (\n <Flex paddingTop={6} direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex alignItems=\"flex-start\" direction=\"column\" justifyContent=\"space-between\">\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: getTranslation('containers.list.displayedFields'),\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'containers.SettingPage.editSettings.description',\n defaultMessage: 'Drag & drop the fields to build the layout',\n })}\n </Typography>\n </Flex>\n <Box padding={4} hasRadius borderStyle=\"dashed\" borderWidth=\"1px\" borderColor=\"neutral300\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {layout.map((row, rowIndex) => (\n <Grid.Root gap={2} key={row.__temp_key__}>\n {row.children.map(({ size, ...field }, fieldIndex) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Field\n attribute={attributes[field.name]}\n components={components}\n index={[rowIndex, fieldIndex]}\n name={`layout.${rowIndex}.children.${fieldIndex}`}\n onMoveField={handleMoveField}\n onRemoveField={handleRemoveField(rowIndex, fieldIndex)}\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n <Menu.Root>\n <Menu.Trigger\n startIcon={<Plus />}\n endIcon={null}\n disabled={remainingFields.length === 0}\n fullWidth\n variant=\"secondary\"\n >\n {formatMessage({\n id: getTranslation('containers.SettingPage.add.field'),\n defaultMessage: 'Insert another field',\n })}\n </Menu.Trigger>\n <Menu.Content>\n {remainingFields.map((field) => (\n <Menu.Item key={field.name} onSelect={handleAddField(field)}>\n {field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Box>\n </Flex>\n );\n};\n\n/**\n * @internal\n * @description Small abstraction to solve within an array of fields where you can\n * add a field to the beginning or start, move back and forth what it's index range\n * should be when calculating it's new temp key\n */\nconst generateNKeysBetween = <Field extends { __temp_key__: string }>(\n field: Field[],\n count: number,\n currInd: number,\n newInd: number\n) => {\n const startKey = currInd > newInd ? field[newInd - 1]?.__temp_key__ : field[newInd]?.__temp_key__;\n const endKey = currInd > newInd ? field[newInd]?.__temp_key__ : field[newInd + 1]?.__temp_key__;\n\n return generateNKeysBetweenImpl(startKey, endKey, count);\n};\n\n/**\n * @internal\n * @description chunks a row of layouts by the max size we allow, 12. It does not add the\n * spacers again, that should be added separately.\n */\nconst chunkArray = (array: FormField[]) => {\n const result: Array<FormField[]> = [];\n let temp: FormField[] = [];\n\n array.reduce((acc, field) => {\n if (acc + field.size > 12) {\n result.push(temp);\n temp = [field];\n return field.size;\n } else {\n temp.push(field);\n return acc + field.size;\n }\n }, 0);\n\n if (temp.length > 0) {\n result.push(temp);\n }\n\n return result;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Field\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldProps extends Pick<EditFieldFormProps, 'name' | 'attribute'> {\n components: EditLayout['components'];\n index: [row: number, index: number];\n onMoveField: UseDragAndDropOptions<number[]>['onMoveItem'];\n onRemoveField: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst TEMP_FIELD_NAME = '_TEMP_';\n\n/**\n * Displays a field in the layout with drag options, also\n * opens a modal to edit the details of said field.\n */\nconst Field = ({ attribute, components, name, index, onMoveField, onRemoveField }: FieldProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n\n const { value } = useField<FormField>(name);\n\n const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop<\n Array<number>\n >(true, {\n dropSensitivity: 'immediate',\n type: ItemTypes.EDIT_FIELD,\n item: { index, label: value?.label, name },\n index,\n onMoveItem: onMoveField,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef]);\n\n const composedRefs = useComposedRefs<HTMLSpanElement>(dragRef, objectRef);\n\n const handleRemoveField: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n onRemoveField(e);\n };\n\n const onEditFieldMeta: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsModalOpen(true);\n };\n\n const tempRefs = useComposedRefs<HTMLSpanElement>(dropRef, objectRef);\n\n if (!value) {\n return null;\n }\n\n if (value.name === TEMP_FIELD_NAME) {\n return <Flex tag=\"span\" height=\"100%\" style={{ opacity: 0 }} ref={tempRefs} />;\n }\n\n return (\n <Modal.Root open={isModalOpen} onOpenChange={setIsModalOpen}>\n <Flex\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n style={{ opacity: isDragging ? 0.5 : 1 }}\n ref={dropRef}\n gap={3}\n cursor=\"pointer\"\n onClick={() => {\n setIsModalOpen(true);\n }}\n >\n <DragButton\n tag=\"span\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: value.label }\n )}\n onClick={(e) => e.stopPropagation()}\n ref={composedRefs}\n >\n <Drag />\n </DragButton>\n <Flex direction=\"column\" alignItems=\"flex-start\" grow={1} overflow=\"hidden\">\n <Flex gap={3} justifyContent=\"space-between\" width=\"100%\">\n <Typography ellipsis fontWeight=\"bold\">\n {value.label}\n </Typography>\n <Flex>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n background=\"transparent\"\n onClick={onEditFieldMeta}\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: value.label }\n )}\n >\n <Pencil />\n </IconButton>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n onClick={handleRemoveField}\n background=\"transparent\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: value.label }\n )}\n >\n <Cross />\n </IconButton>\n </Flex>\n </Flex>\n {attribute?.type === 'component' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n direction=\"column\"\n gap={2}\n width=\"100%\"\n >\n <Grid.Root gap={4} width=\"100%\">\n {components[attribute.component].layout.map((row) =>\n row.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Flex\n alignItems=\"center\"\n background=\"neutral0\"\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={3}\n paddingRight={3}\n hasRadius\n borderColor=\"neutral200\"\n >\n <Typography textColor=\"neutral800\">{field.name}</Typography>\n </Flex>\n </Grid.Item>\n ))\n )}\n </Grid.Root>\n <Link\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n startIcon={<Cog />}\n tag={NavLink}\n to={`../components/${attribute.component}/configurations/edit`}\n >\n {formatMessage({\n id: getTranslation('components.FieldItem.linkToComponentLayout'),\n defaultMessage: \"Set the component's layout\",\n })}\n </Link>\n </Flex>\n ) : null}\n {attribute?.type === 'dynamiczone' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n gap={2}\n width=\"100%\"\n >\n {attribute?.components.map((uid) => (\n <ComponentLink\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n key={uid}\n to={`../components/${uid}/configurations/edit`}\n >\n <ComponentIcon icon={components[uid].settings.icon} />\n <Typography fontSize={1} textColor=\"neutral600\" fontWeight=\"bold\">\n {components[uid].settings.displayName}\n </Typography>\n </ComponentLink>\n ))}\n </Flex>\n ) : null}\n </Flex>\n </Flex>\n {value.name !== TEMP_FIELD_NAME && (\n <EditFieldForm attribute={attribute} name={name} onClose={() => setIsModalOpen(false)} />\n )}\n </Modal.Root>\n );\n};\n\nconst DragButton = styled<IconButtonComponent<'span'>>(IconButton)`\n height: unset;\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0;\n border: none;\n background-color: transparent;\n border-radius: 0px;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n\n svg {\n width: 1.2rem;\n height: 1.2rem;\n }\n`;\n\nconst ComponentLink = styled(NavLink)`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[1]};\n padding: ${(props) => props.theme.spaces[2]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n background: ${({ theme }) => theme.colors.neutral0};\n width: 14rem;\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: none;\n\n &:focus,\n &:hover {\n ${({ theme }) => `\n background-color: ${theme.colors.primary100};\n border-color: ${theme.colors.primary200};\n\n ${Typography} {\n color: ${theme.colors.primary600};\n }\n `}\n\n /* > ComponentIcon */\n > div:first-child {\n background: ${({ theme }) => theme.colors.primary200};\n color: ${({ theme }) => theme.colors.primary600};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n }\n }\n`;\n\nexport { Fields, TEMP_FIELD_NAME };\nexport type { FieldsProps };\n"],"names":["Fields","attributes","fieldSizes","components","metadatas","formatMessage","useIntl","layout","useForm","state","values","onChange","addFieldRow","removeFieldRow","existingFields","map","row","children","field","name","flat","remainingFields","Object","entries","reduce","acc","current","visible","includes","type","size","push","label","handleMoveField","newRowIndex","newFieldIndex","currentRowIndex","currentFieldIndex","newLayout","structuredClone","splice","TEMP_FIELD_NAME","newRow","newFieldKey","generateNKeysBetween","__temp_key__","curr","recalculatedRows","chunkArray","filter","rowKeys","length","index","newLayoutWithSpacers","totalSpaceTaken","spacerKey","generateNKeysBetweenImpl","at","undefined","handleRemoveField","rowIndex","fieldIndex","slice","handleAddField","_jsxs","Flex","paddingTop","direction","alignItems","gap","justifyContent","_jsx","Typography","fontWeight","id","getTranslation","defaultMessage","variant","textColor","Box","padding","hasRadius","borderStyle","borderWidth","borderColor","Grid","Root","Item","col","Field","attribute","onMoveField","onRemoveField","Menu","Trigger","startIcon","Plus","endIcon","disabled","fullWidth","Content","onSelect","count","currInd","newInd","startKey","endKey","array","result","temp","isModalOpen","setIsModalOpen","React","useState","value","useField","isDragging","objectRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","dropSensitivity","ItemTypes","EDIT_FIELD","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","composedRefs","useComposedRefs","e","preventDefault","stopPropagation","onEditFieldMeta","tempRefs","tag","height","style","opacity","ref","Modal","open","onOpenChange","background","cursor","onClick","DragButton","withTooltip","Drag","grow","overflow","width","ellipsis","IconButton","Pencil","Cross","paddingRight","paddingBottom","paddingLeft","component","Link","Cog","NavLink","to","uid","ComponentLink","ComponentIcon","icon","settings","fontSize","displayName","EditFieldForm","onClose","styled","theme","colors","neutral150","spaces","props","neutral200","neutral0","borderRadius","primary100","primary200","primary600"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Fields.mjs","sources":["../../../../admin/src/components/ConfigurationForm/Fields.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useDroppable, DndContext, UniqueIdentifier, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Modal,\n Box,\n Flex,\n Grid,\n IconButton,\n IconButtonComponent,\n Typography,\n Link,\n Menu,\n} from '@strapi/design-system';\nimport { Cog, Cross, Drag, Pencil, Plus } from '@strapi/icons';\nimport { generateNKeysBetween as generateNKeysBetweenImpl } from 'fractional-indexing';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { getTranslation } from '../../utils/translations';\nimport { ComponentIcon } from '../ComponentIcon';\n\nimport { EditFieldForm, EditFieldFormProps } from './EditFieldForm';\n\nimport type { ConfigurationFormData, EditFieldSpacerLayout } from './Form';\nimport type { EditLayout } from '../../hooks/useDocumentLayout';\n\ntype FormField = ConfigurationFormData['layout'][number]['children'][number];\ntype Field = Omit<ConfigurationFormData['layout'][number]['children'][number], '__temp_key__'>;\n\nconst GRID_COLUMNS = 12;\n\n/* -------------------------------------------------------------------------------------------------\n * Drag and Drop\n * -----------------------------------------------------------------------------------------------*/\n\nconst DroppableContainer = ({\n id,\n children,\n}: {\n id: string;\n children: (props: ReturnType<typeof useDroppable>) => React.ReactNode;\n}) => {\n const droppable = useDroppable({\n id,\n });\n\n return children(droppable);\n};\n\nexport const SortableItem = ({ id, children }: { id: string; children: React.ReactNode }) => {\n const { attributes, setNodeRef, transform, transition } = useSortable({\n id,\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n height: '100%',\n };\n\n return (\n <div ref={setNodeRef} style={style} {...attributes}>\n {children}\n </div>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Fields\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldsProps extends Pick<EditLayout, 'metadatas'>, Pick<FieldProps, 'components'> {\n attributes: {\n [key: string]: FieldProps['attribute'];\n };\n fieldSizes: Record<string, number>;\n components: EditLayout['components'];\n}\n\n/**\n * Compute uids and formName for drag and drop items for the incoming layout\n */\nconst createDragAndDropContainersFromLayout = (layout: ConfigurationFormData['layout']) => {\n return layout.map((row, containerIndex) => ({\n ...row,\n // Use unique ids for drag and drop items\n dndId: `container-${containerIndex}`,\n children: row.children.map((child, childIndex) => ({\n ...child,\n dndId: `container-${containerIndex}-child-${childIndex}`,\n\n // The formName must be recomputed each time an item is moved\n formName: `layout.${containerIndex}.children.${childIndex}`,\n })),\n }));\n};\n\nconst Fields = ({ attributes, fieldSizes, components, metadatas = {} }: FieldsProps) => {\n const { formatMessage } = useIntl();\n\n const layout = useForm<ConfigurationFormData['layout']>(\n 'Fields',\n (state) => state.values.layout ?? []\n );\n\n const onChange = useForm('Fields', (state) => state.onChange);\n const addFieldRow = useForm('Fields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('Fields', (state) => state.removeFieldRow);\n\n const existingFields = layout.map((row) => row.children.map((field) => field.name)).flat();\n\n /**\n * Get the fields that are not already in the layout\n * But also check that they are visible before we give users\n * the option to display them. e.g. `id` is not visible.\n */\n const remainingFields = Object.entries(metadatas).reduce<Field[]>((acc, current) => {\n const [name, { visible, ...field }] = current;\n\n if (!existingFields.includes(name) && visible === true) {\n const type = attributes[name]?.type;\n const size = type ? fieldSizes[type] : GRID_COLUMNS;\n\n acc.push({\n ...field,\n label: field.label ?? name,\n name,\n size,\n });\n }\n\n return acc;\n }, []);\n\n const handleRemoveField =\n (rowIndex: number, fieldIndex: number): FieldProps['onRemoveField'] =>\n () => {\n if (layout[rowIndex].children.length === 1) {\n removeFieldRow(`layout`, rowIndex);\n } else {\n onChange(`layout.${rowIndex}.children`, [\n ...layout[rowIndex].children.slice(0, fieldIndex),\n ...layout[rowIndex].children.slice(fieldIndex + 1),\n ]);\n }\n };\n\n const handleAddField = (field: Field) => () => {\n addFieldRow('layout', { children: [field] });\n };\n\n const [containers, setContainers] = React.useState(() =>\n createDragAndDropContainersFromLayout(layout)\n );\n type Container = (typeof containers)[number];\n const [activeDragItem, setActiveDragItem] = React.useState<Container['children'][number] | null>(\n null\n );\n\n /**\n * Finds either the parent container id or the child id within a container\n */\n function findContainer(id: UniqueIdentifier, containersAsDictionary: Record<string, Container>) {\n // If the id is a key, then it is the parent container\n if (id in containersAsDictionary) {\n return id;\n }\n\n // Otherwise, it is a child inside a container\n return Object.keys(containersAsDictionary).find((key) =>\n containersAsDictionary[key].children.find((child) => child.dndId === id)\n );\n }\n\n /**\n * Gets an item from a container based on its id\n */\n const getItemFromContainer = (id: UniqueIdentifier, container: Container) => {\n return container.children.find((item) => id === item.dndId);\n };\n\n /**\n * Gets the containers as dictionary for quick lookup\n */\n const getContainersAsDictionary = () => {\n return Object.fromEntries(containers.map((container) => [container.dndId, container]));\n };\n\n /**\n * Recomputes the empty space in the grid\n */\n const createContainersWithSpacers = (layout: typeof containers) => {\n return layout\n .map((row) => ({\n ...row,\n children: row.children.filter((field) => field.name !== TEMP_FIELD_NAME),\n }))\n .filter((row) => row.children.length > 0)\n .map((row) => {\n const totalSpaceTaken = row.children.reduce((acc, curr) => acc + curr.size, 0);\n\n if (totalSpaceTaken < GRID_COLUMNS) {\n const [spacerKey] = generateNKeysBetweenImpl(\n row.children.at(-1)?.__temp_key__,\n undefined,\n 1\n );\n\n return {\n ...row,\n children: [\n ...row.children,\n {\n name: TEMP_FIELD_NAME,\n size: GRID_COLUMNS - totalSpaceTaken,\n __temp_key__: spacerKey,\n } satisfies EditFieldSpacerLayout,\n ],\n };\n }\n\n return row;\n });\n };\n\n /**\n * When layout changes (e.g. when a field size is changed or the containers are reordered)\n * we need to update the ids and form names\n */\n React.useEffect(() => {\n const containers = createDragAndDropContainersFromLayout(layout);\n setContainers(containers);\n }, [layout, setContainers]);\n\n return (\n <DndContext\n onDragStart={(event) => {\n const containersAsDictionary = getContainersAsDictionary();\n\n const activeContainer = findContainer(event.active.id, containersAsDictionary);\n\n if (!activeContainer) return;\n\n const activeItem = getItemFromContainer(\n event.active.id,\n containersAsDictionary[activeContainer]\n );\n\n if (activeItem) {\n setActiveDragItem(activeItem);\n }\n }}\n onDragOver={({ active, over }) => {\n const containersAsDictionary = getContainersAsDictionary();\n const activeContainer = findContainer(active.id, containersAsDictionary);\n const overContainer = findContainer(over?.id ?? '', containersAsDictionary);\n const activeContainerIndex = containers.findIndex(\n (container) => container.dndId === activeContainer\n );\n const overContainerIndex = containers.findIndex(\n (container) => container.dndId === overContainer\n );\n\n if (!activeContainer || !overContainer) {\n return;\n }\n\n const draggedItem = getItemFromContainer(\n active.id,\n containersAsDictionary[activeContainer]\n );\n const overItem = getItemFromContainer(\n over?.id ?? '',\n containersAsDictionary[overContainer]\n );\n const overIndex = containersAsDictionary[overContainer].children.findIndex(\n (item) => item.dndId === over?.id\n );\n\n if (!draggedItem) return;\n\n // Handle a full width field being dragged\n if (draggedItem?.size === GRID_COLUMNS) {\n // Swap the items in the containers\n const update = produce(containers, (draft) => {\n draft[activeContainerIndex].children = containers[overContainerIndex].children;\n draft[overContainerIndex].children = containers[activeContainerIndex].children;\n });\n setContainers(update);\n return;\n }\n\n /**\n * Handle an item being dragged from one container to another,\n * the item is removed from its current container, and then added to its new container\n * An item can only be added in a container if there is enough space.\n */\n const update = produce(containers, (draft) => {\n draft[activeContainerIndex].children = draft[activeContainerIndex].children.filter(\n (item) => item.dndId !== active.id\n );\n const spaceTaken = draft[overContainerIndex].children.reduce((acc, curr) => {\n if (curr.name === TEMP_FIELD_NAME) {\n return acc;\n }\n\n return acc + curr.size;\n }, 0);\n\n // Check the sizes of the children, if there is no room, exit\n if (spaceTaken + draggedItem.size > GRID_COLUMNS) {\n // Leave the item where it started\n draft[activeContainerIndex].children = containers[activeContainerIndex].children;\n return;\n }\n\n if (overItem?.name === TEMP_FIELD_NAME) {\n // We are over an invisible spacer, replace it with the dragged item\n draft[overContainerIndex].children.splice(overIndex, 1, draggedItem);\n return;\n }\n\n // There is room for the item in the container, drop it\n draft[overContainerIndex].children.splice(overIndex, 0, draggedItem);\n });\n\n setContainers(update);\n }}\n onDragEnd={(event) => {\n const { active, over } = event;\n const { id } = active;\n const overId = over?.id;\n const containersAsDictionary = getContainersAsDictionary();\n const activeContainer = findContainer(id, containersAsDictionary);\n const overContainer = findContainer(overId!, containersAsDictionary);\n\n if (!activeContainer || !overContainer) {\n return;\n }\n\n const activeIndex = containersAsDictionary[activeContainer].children.findIndex(\n (children) => children.dndId === id\n );\n const overIndex = containersAsDictionary[overContainer].children.findIndex(\n (children) => children.dndId === overId\n );\n\n const movedContainerItems = produce(containersAsDictionary, (draft) => {\n if (activeIndex !== overIndex && activeContainer === overContainer) {\n // Move items around inside their own container\n draft[activeContainer].children = arrayMove(\n draft[activeContainer].children,\n activeIndex,\n overIndex\n );\n }\n });\n\n // Remove properties the server does not expect before updating the form\n const updatedContainers = Object.values(movedContainerItems);\n const updatedContainersWithSpacers = createContainersWithSpacers(\n updatedContainers\n ) as typeof containers;\n const updatedLayout = updatedContainersWithSpacers.map(\n ({ dndId: _dndId, children, ...container }) => ({\n ...container,\n children: children.map(({ dndId: _dndId, formName: _formName, ...child }) => child),\n })\n );\n\n // Update the layout\n onChange('layout', updatedLayout);\n setActiveDragItem(null);\n }}\n >\n <Flex paddingTop={6} direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex alignItems=\"flex-start\" direction=\"column\" justifyContent=\"space-between\">\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: getTranslation('containers.list.displayedFields'),\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'containers.SettingPage.editSettings.description',\n defaultMessage: 'Drag & drop the fields to build the layout',\n })}\n </Typography>\n </Flex>\n <Box padding={4} hasRadius borderStyle=\"dashed\" borderWidth=\"1px\" borderColor=\"neutral300\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {containers.map((container, containerIndex) => (\n <SortableContext\n key={container.dndId}\n id={container.dndId}\n items={container.children.map((child) => ({ id: child.dndId }))}\n >\n <DroppableContainer id={container.dndId}>\n {({ setNodeRef }) => (\n <Grid.Root key={container.dndId} ref={setNodeRef} gap={2}>\n {container.children.map((child, childIndex) => (\n <Grid.Item\n col={child.size}\n key={child.dndId}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <SortableItem id={child.dndId}>\n <Field\n attribute={attributes[child.name]}\n components={components}\n name={child.formName}\n onRemoveField={handleRemoveField(containerIndex, childIndex)}\n dndId={child.dndId}\n />\n </SortableItem>\n </Grid.Item>\n ))}\n </Grid.Root>\n )}\n </DroppableContainer>\n </SortableContext>\n ))}\n <DragOverlay>\n {activeDragItem ? (\n <Field\n attribute={attributes[activeDragItem.name]}\n components={components}\n name={activeDragItem.formName}\n dndId={activeDragItem.dndId}\n />\n ) : null}\n </DragOverlay>\n <Menu.Root>\n <Menu.Trigger\n startIcon={<Plus />}\n endIcon={null}\n disabled={remainingFields.length === 0}\n fullWidth\n variant=\"secondary\"\n >\n {formatMessage({\n id: getTranslation('containers.SettingPage.add.field'),\n defaultMessage: 'Insert another field',\n })}\n </Menu.Trigger>\n <Menu.Content>\n {remainingFields.map((field) => (\n <Menu.Item key={field.name} onSelect={handleAddField(field)}>\n {field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Box>\n </Flex>\n </DndContext>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Field\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FieldProps extends Pick<EditFieldFormProps, 'name' | 'attribute'> {\n components: EditLayout['components'];\n dndId: string;\n onRemoveField?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst TEMP_FIELD_NAME = '_TEMP_';\n\n/**\n * Displays a field in the layout with drag options, also\n * opens a modal to edit the details of said field.\n */\nconst Field = ({ attribute, components, name, onRemoveField, dndId }: FieldProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const { value } = useField<FormField>(name);\n const { listeners, setActivatorNodeRef } = useSortable({\n id: dndId,\n });\n\n const handleRemoveField: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (onRemoveField) {\n onRemoveField?.(e);\n }\n };\n\n const onEditFieldMeta: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsModalOpen(true);\n };\n\n if (!value) {\n return null;\n }\n\n if (value.name === TEMP_FIELD_NAME) {\n return <Flex tag=\"span\" height=\"100%\" style={{ opacity: 0 }} />;\n }\n\n if (!attribute) {\n return null;\n }\n\n return (\n <Modal.Root open={isModalOpen} onOpenChange={setIsModalOpen}>\n <Flex\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n gap={3}\n cursor=\"pointer\"\n onClick={() => {\n setIsModalOpen(true);\n }}\n >\n <DragButton\n ref={setActivatorNodeRef}\n tag=\"span\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: value.label }\n )}\n {...listeners}\n >\n <Drag />\n </DragButton>\n <Flex direction=\"column\" alignItems=\"flex-start\" grow={1} overflow=\"hidden\">\n <Flex gap={3} justifyContent=\"space-between\" width=\"100%\">\n <Typography ellipsis fontWeight=\"bold\">\n {value.label}\n </Typography>\n <Flex>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n background=\"transparent\"\n onClick={onEditFieldMeta}\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: value.label }\n )}\n >\n <Pencil />\n </IconButton>\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n onClick={handleRemoveField}\n background=\"transparent\"\n withTooltip={false}\n label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: value.label }\n )}\n >\n <Cross />\n </IconButton>\n </Flex>\n </Flex>\n {attribute?.type === 'component' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n direction=\"column\"\n gap={2}\n width=\"100%\"\n >\n <Grid.Root gap={4} width=\"100%\">\n {components[attribute.component].layout.map((row) =>\n row.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <Flex\n alignItems=\"center\"\n background=\"neutral0\"\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={3}\n paddingRight={3}\n hasRadius\n borderColor=\"neutral200\"\n >\n <Typography textColor=\"neutral800\">{field.name}</Typography>\n </Flex>\n </Grid.Item>\n ))\n )}\n </Grid.Root>\n <Link\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n startIcon={<Cog />}\n tag={NavLink}\n to={`../components/${attribute.component}/configurations/edit`}\n >\n {formatMessage({\n id: getTranslation('components.FieldItem.linkToComponentLayout'),\n defaultMessage: \"Set the component's layout\",\n })}\n </Link>\n </Flex>\n ) : null}\n {attribute?.type === 'dynamiczone' ? (\n <Flex\n paddingTop={3}\n paddingRight={3}\n paddingBottom={3}\n paddingLeft={0}\n alignItems=\"flex-start\"\n gap={2}\n width=\"100%\"\n wrap=\"wrap\"\n >\n {attribute?.components.map((uid) => (\n <ComponentLink\n // used to stop the edit form from appearing when we click here.\n onClick={(e) => e.stopPropagation()}\n key={uid}\n to={`../components/${uid}/configurations/edit`}\n >\n <ComponentIcon icon={components[uid].settings.icon} />\n <Typography fontSize={1} textColor=\"neutral600\" fontWeight=\"bold\">\n {components[uid].settings.displayName}\n </Typography>\n </ComponentLink>\n ))}\n </Flex>\n ) : null}\n </Flex>\n </Flex>\n {value.name !== TEMP_FIELD_NAME && (\n <EditFieldForm attribute={attribute} name={name} onClose={() => setIsModalOpen(false)} />\n )}\n </Modal.Root>\n );\n};\n\nconst DragButton = styled<IconButtonComponent<'span'>>(IconButton)`\n height: unset;\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0;\n border: none;\n background-color: transparent;\n border-radius: 0px;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n\n svg {\n width: 1.2rem;\n height: 1.2rem;\n }\n`;\n\nconst ComponentLink = styled(NavLink)`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[1]};\n padding: ${(props) => props.theme.spaces[2]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n background: ${({ theme }) => theme.colors.neutral0};\n width: 14rem;\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: none;\n\n &:focus,\n &:hover {\n ${({ theme }) => `\n background-color: ${theme.colors.primary100};\n border-color: ${theme.colors.primary200};\n\n ${Typography} {\n color: ${theme.colors.primary600};\n }\n `}\n\n /* > ComponentIcon */\n > div:first-child {\n background: ${({ theme }) => theme.colors.primary200};\n color: ${({ theme }) => theme.colors.primary600};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n }\n }\n`;\n\nexport { Fields, TEMP_FIELD_NAME };\nexport type { FieldsProps };\n"],"names":["GRID_COLUMNS","DroppableContainer","id","children","droppable","useDroppable","SortableItem","attributes","setNodeRef","transform","transition","useSortable","style","CSS","Transform","toString","height","_jsx","div","ref","createDragAndDropContainersFromLayout","layout","map","row","containerIndex","dndId","child","childIndex","formName","Fields","fieldSizes","components","metadatas","formatMessage","useIntl","useForm","state","values","onChange","addFieldRow","removeFieldRow","existingFields","field","name","flat","remainingFields","Object","entries","reduce","acc","current","visible","includes","type","size","push","label","handleRemoveField","rowIndex","fieldIndex","length","slice","handleAddField","containers","setContainers","React","useState","activeDragItem","setActiveDragItem","findContainer","containersAsDictionary","keys","find","key","getItemFromContainer","container","item","getContainersAsDictionary","fromEntries","createContainersWithSpacers","filter","TEMP_FIELD_NAME","totalSpaceTaken","curr","spacerKey","generateNKeysBetweenImpl","at","__temp_key__","undefined","useEffect","DndContext","onDragStart","event","activeContainer","active","activeItem","onDragOver","over","overContainer","activeContainerIndex","findIndex","overContainerIndex","draggedItem","overItem","overIndex","update","produce","draft","spaceTaken","splice","onDragEnd","overId","activeIndex","movedContainerItems","arrayMove","updatedContainers","updatedContainersWithSpacers","updatedLayout","_dndId","_formName","_jsxs","Flex","paddingTop","direction","alignItems","gap","justifyContent","Typography","fontWeight","getTranslation","defaultMessage","variant","textColor","Box","padding","hasRadius","borderStyle","borderWidth","borderColor","SortableContext","items","Grid","Root","Item","col","Field","attribute","onRemoveField","DragOverlay","Menu","Trigger","startIcon","Plus","endIcon","disabled","fullWidth","Content","onSelect","isModalOpen","setIsModalOpen","value","useField","listeners","setActivatorNodeRef","e","preventDefault","stopPropagation","onEditFieldMeta","tag","opacity","Modal","open","onOpenChange","background","cursor","onClick","DragButton","withTooltip","Drag","grow","overflow","width","ellipsis","IconButton","Pencil","Cross","paddingRight","paddingBottom","paddingLeft","component","Link","Cog","NavLink","to","wrap","uid","ComponentLink","ComponentIcon","icon","settings","fontSize","displayName","EditFieldForm","onClose","styled","theme","colors","neutral150","spaces","props","neutral200","neutral0","borderRadius","primary100","primary200","primary600"],"mappings":"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"}
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
|
+
var designSystem = require('@strapi/design-system');
|
|
7
|
+
var Icons = require('@strapi/icons');
|
|
8
|
+
var reactIntl = require('react-intl');
|
|
9
|
+
var reactRouterDom = require('react-router-dom');
|
|
10
|
+
var styledComponents = require('styled-components');
|
|
11
|
+
var DocumentStatus = require('../pages/EditView/components/DocumentStatus.js');
|
|
12
|
+
var homepage = require('../services/homepage.js');
|
|
13
|
+
var RelativeTime = require('./RelativeTime.js');
|
|
14
|
+
|
|
15
|
+
function _interopNamespaceDefault(e) {
|
|
16
|
+
var n = Object.create(null);
|
|
17
|
+
if (e) {
|
|
18
|
+
Object.keys(e).forEach(function (k) {
|
|
19
|
+
if (k !== 'default') {
|
|
20
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
21
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return e[k]; }
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
n.default = e;
|
|
29
|
+
return Object.freeze(n);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
33
|
+
|
|
34
|
+
const CellTypography = styledComponents.styled(designSystem.Typography).attrs({
|
|
35
|
+
maxWidth: '14.4rem',
|
|
36
|
+
display: 'block'
|
|
37
|
+
})`
|
|
38
|
+
overflow: hidden;
|
|
39
|
+
text-overflow: ellipsis;
|
|
40
|
+
white-space: nowrap;
|
|
41
|
+
`;
|
|
42
|
+
const RecentDocumentsTable = ({ documents })=>{
|
|
43
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
44
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
|
45
|
+
const navigate = reactRouterDom.useNavigate();
|
|
46
|
+
const getEditViewLink = (document)=>{
|
|
47
|
+
const isSingleType = document.kind === 'singleType';
|
|
48
|
+
const kindPath = isSingleType ? 'single-types' : 'collection-types';
|
|
49
|
+
const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';
|
|
50
|
+
return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;
|
|
51
|
+
};
|
|
52
|
+
const handleRowClick = (document)=>()=>{
|
|
53
|
+
trackUsage('willEditEntryFromHome');
|
|
54
|
+
const link = getEditViewLink(document);
|
|
55
|
+
navigate(link);
|
|
56
|
+
};
|
|
57
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Table, {
|
|
58
|
+
colCount: 5,
|
|
59
|
+
rowCount: documents?.length ?? 0,
|
|
60
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
|
|
61
|
+
children: documents?.map((document)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
|
|
62
|
+
onClick: handleRowClick(document),
|
|
63
|
+
cursor: "pointer",
|
|
64
|
+
children: [
|
|
65
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
66
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(CellTypography, {
|
|
67
|
+
title: document.title,
|
|
68
|
+
variant: "omega",
|
|
69
|
+
textColor: "neutral800",
|
|
70
|
+
children: document.title
|
|
71
|
+
})
|
|
72
|
+
}),
|
|
73
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
74
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(CellTypography, {
|
|
75
|
+
variant: "omega",
|
|
76
|
+
textColor: "neutral600",
|
|
77
|
+
children: document.kind === 'singleType' ? formatMessage({
|
|
78
|
+
id: 'content-manager.widget.last-edited.single-type',
|
|
79
|
+
defaultMessage: 'Single-Type'
|
|
80
|
+
}) : formatMessage({
|
|
81
|
+
id: document.contentTypeDisplayName,
|
|
82
|
+
defaultMessage: document.contentTypeDisplayName
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
}),
|
|
86
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
87
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
88
|
+
display: "inline-block",
|
|
89
|
+
children: document.status ? /*#__PURE__*/ jsxRuntime.jsx(DocumentStatus.DocumentStatus, {
|
|
90
|
+
status: document.status
|
|
91
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
92
|
+
textColor: "neutral600",
|
|
93
|
+
"aria-hidden": true,
|
|
94
|
+
children: "-"
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
}),
|
|
98
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
99
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
100
|
+
textColor: "neutral600",
|
|
101
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(RelativeTime.RelativeTime, {
|
|
102
|
+
timestamp: new Date(document.updatedAt)
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
}),
|
|
106
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
107
|
+
onClick: (e)=>e.stopPropagation(),
|
|
108
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
109
|
+
display: "inline-block",
|
|
110
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
111
|
+
tag: reactRouterDom.Link,
|
|
112
|
+
to: getEditViewLink(document),
|
|
113
|
+
onClick: ()=>trackUsage('willEditEntryFromHome'),
|
|
114
|
+
label: formatMessage({
|
|
115
|
+
id: 'content-manager.actions.edit.label',
|
|
116
|
+
defaultMessage: 'Edit'
|
|
117
|
+
}),
|
|
118
|
+
variant: "ghost",
|
|
119
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Pencil, {})
|
|
120
|
+
})
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
}, document.documentId))
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
/* -------------------------------------------------------------------------------------------------
|
|
129
|
+
* LastEditedWidget
|
|
130
|
+
* -----------------------------------------------------------------------------------------------*/ const LastEditedWidget = ()=>{
|
|
131
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
132
|
+
const { data, isLoading, error } = homepage.useGetRecentDocumentsQuery({
|
|
133
|
+
action: 'update'
|
|
134
|
+
});
|
|
135
|
+
if (isLoading) {
|
|
136
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
|
|
137
|
+
}
|
|
138
|
+
if (error || !data) {
|
|
139
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
|
|
140
|
+
}
|
|
141
|
+
if (data.length === 0) {
|
|
142
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
|
|
143
|
+
children: formatMessage({
|
|
144
|
+
id: 'content-manager.widget.last-edited.no-data',
|
|
145
|
+
defaultMessage: 'No edited entries'
|
|
146
|
+
})
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return /*#__PURE__*/ jsxRuntime.jsx(RecentDocumentsTable, {
|
|
150
|
+
documents: data
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
/* -------------------------------------------------------------------------------------------------
|
|
154
|
+
* LastPublishedWidget
|
|
155
|
+
* -----------------------------------------------------------------------------------------------*/ const LastPublishedWidget = ()=>{
|
|
156
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
157
|
+
const { data, isLoading, error } = homepage.useGetRecentDocumentsQuery({
|
|
158
|
+
action: 'publish'
|
|
159
|
+
});
|
|
160
|
+
if (isLoading) {
|
|
161
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
|
|
162
|
+
}
|
|
163
|
+
if (error || !data) {
|
|
164
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
|
|
165
|
+
}
|
|
166
|
+
if (data.length === 0) {
|
|
167
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
|
|
168
|
+
children: formatMessage({
|
|
169
|
+
id: 'content-manager.widget.last-published.no-data',
|
|
170
|
+
defaultMessage: 'No published entries'
|
|
171
|
+
})
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return /*#__PURE__*/ jsxRuntime.jsx(RecentDocumentsTable, {
|
|
175
|
+
documents: data
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
/* -------------------------------------------------------------------------------------------------
|
|
179
|
+
* ChartEntriesWidget
|
|
180
|
+
* -----------------------------------------------------------------------------------------------*/ const RADIUS = 80;
|
|
181
|
+
const STROKE = 10;
|
|
182
|
+
const CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);
|
|
183
|
+
const ArcChart = styledComponents.styled.circle`
|
|
184
|
+
stroke: ${({ theme, $arcColor })=>theme.colors[$arcColor]};
|
|
185
|
+
`;
|
|
186
|
+
const TextChart = styledComponents.styled.tspan`
|
|
187
|
+
text-transform: lowercase;
|
|
188
|
+
fill: ${({ theme, $textColor })=>theme.colors[$textColor]};
|
|
189
|
+
`;
|
|
190
|
+
const KeyChartItem = styledComponents.styled(designSystem.Flex)`
|
|
191
|
+
width: 100%;
|
|
192
|
+
|
|
193
|
+
${({ theme })=>theme.breakpoints.small} {
|
|
194
|
+
width: auto;
|
|
195
|
+
}
|
|
196
|
+
`;
|
|
197
|
+
const DonutChartSVG = ({ data })=>{
|
|
198
|
+
const { locale } = reactIntl.useIntl();
|
|
199
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
200
|
+
const total = data.reduce((acc, curr)=>acc + curr.count, 0);
|
|
201
|
+
const [tooltip, setTooltip] = React__namespace.useState({
|
|
202
|
+
visible: false,
|
|
203
|
+
x: 0,
|
|
204
|
+
y: 0,
|
|
205
|
+
value: null
|
|
206
|
+
});
|
|
207
|
+
let cumulativePercent = 0;
|
|
208
|
+
const handleMouseOver = (e, value)=>{
|
|
209
|
+
setTooltip({
|
|
210
|
+
visible: true,
|
|
211
|
+
x: e.clientX,
|
|
212
|
+
y: e.clientY,
|
|
213
|
+
value
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
const handleMouseOut = ()=>{
|
|
217
|
+
setTooltip((t)=>({
|
|
218
|
+
...t,
|
|
219
|
+
visible: false
|
|
220
|
+
}));
|
|
221
|
+
};
|
|
222
|
+
const handleFocus = (e, value)=>{
|
|
223
|
+
setTooltip({
|
|
224
|
+
visible: true,
|
|
225
|
+
x: e.currentTarget.getBoundingClientRect().width / 2 + e.currentTarget.getBoundingClientRect().left,
|
|
226
|
+
y: e.currentTarget.getBoundingClientRect().height + e.currentTarget.getBoundingClientRect().top,
|
|
227
|
+
value
|
|
228
|
+
});
|
|
229
|
+
};
|
|
230
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
231
|
+
direction: "column",
|
|
232
|
+
gap: 6,
|
|
233
|
+
margin: "auto",
|
|
234
|
+
children: [
|
|
235
|
+
/*#__PURE__*/ jsxRuntime.jsxs("svg", {
|
|
236
|
+
width: RADIUS * 2,
|
|
237
|
+
height: RADIUS * 2,
|
|
238
|
+
viewBox: `0 0 ${RADIUS * 2} ${RADIUS * 2}`,
|
|
239
|
+
style: {
|
|
240
|
+
position: 'relative',
|
|
241
|
+
zIndex: 1
|
|
242
|
+
},
|
|
243
|
+
children: [
|
|
244
|
+
/*#__PURE__*/ jsxRuntime.jsx("g", {
|
|
245
|
+
transform: `rotate(-90 ${RADIUS} ${RADIUS})`,
|
|
246
|
+
children: data.map((value)=>{
|
|
247
|
+
const percent = value.count / total * 100;
|
|
248
|
+
const arcLength = percent / 100 * CIRCUMFERENCE;
|
|
249
|
+
const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;
|
|
250
|
+
const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);
|
|
251
|
+
const el = /*#__PURE__*/ jsxRuntime.jsx(ArcChart, {
|
|
252
|
+
cx: RADIUS,
|
|
253
|
+
cy: RADIUS,
|
|
254
|
+
r: RADIUS - STROKE / 2,
|
|
255
|
+
fill: "none",
|
|
256
|
+
strokeWidth: STROKE,
|
|
257
|
+
strokeDasharray: dashArray,
|
|
258
|
+
strokeDashoffset: dashOffset,
|
|
259
|
+
style: {
|
|
260
|
+
transition: 'stroke-dashoffset 0.3s',
|
|
261
|
+
cursor: 'pointer'
|
|
262
|
+
},
|
|
263
|
+
tabIndex: 0,
|
|
264
|
+
"aria-describedby": tooltip.visible ? 'chart-tooltip' : undefined,
|
|
265
|
+
onFocus: (e)=>handleFocus(e, value),
|
|
266
|
+
onBlur: handleMouseOut,
|
|
267
|
+
onMouseMove: (e)=>handleMouseOver(e, value),
|
|
268
|
+
onMouseLeave: handleMouseOut,
|
|
269
|
+
$arcColor: value.color
|
|
270
|
+
}, value.label);
|
|
271
|
+
cumulativePercent += percent;
|
|
272
|
+
return el;
|
|
273
|
+
})
|
|
274
|
+
}),
|
|
275
|
+
/*#__PURE__*/ jsxRuntime.jsxs("text", {
|
|
276
|
+
x: RADIUS,
|
|
277
|
+
y: RADIUS,
|
|
278
|
+
textAnchor: "middle",
|
|
279
|
+
fontSize: "2.4rem",
|
|
280
|
+
fontWeight: "bold",
|
|
281
|
+
children: [
|
|
282
|
+
/*#__PURE__*/ jsxRuntime.jsx(TextChart, {
|
|
283
|
+
x: RADIUS,
|
|
284
|
+
dy: "0",
|
|
285
|
+
$textColor: "neutral800",
|
|
286
|
+
children: new Intl.NumberFormat(locale, {
|
|
287
|
+
notation: 'compact',
|
|
288
|
+
maximumFractionDigits: 1
|
|
289
|
+
}).format(total)
|
|
290
|
+
}),
|
|
291
|
+
/*#__PURE__*/ jsxRuntime.jsx(TextChart, {
|
|
292
|
+
x: RADIUS,
|
|
293
|
+
dy: "1.4em",
|
|
294
|
+
fontSize: "1.4rem",
|
|
295
|
+
fontWeight: "normal",
|
|
296
|
+
$textColor: "neutral600",
|
|
297
|
+
children: formatMessage({
|
|
298
|
+
id: 'content-manager.widget.chart-entries.title',
|
|
299
|
+
defaultMessage: 'entries'
|
|
300
|
+
})
|
|
301
|
+
})
|
|
302
|
+
]
|
|
303
|
+
})
|
|
304
|
+
]
|
|
305
|
+
}),
|
|
306
|
+
tooltip.visible && tooltip.value && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Portal, {
|
|
307
|
+
style: {
|
|
308
|
+
position: 'fixed',
|
|
309
|
+
left: 16,
|
|
310
|
+
top: 16,
|
|
311
|
+
zIndex: 2,
|
|
312
|
+
transform: `translate(${tooltip.x}px, ${tooltip.y}px)`
|
|
313
|
+
},
|
|
314
|
+
"data-testid": "entries-chart-tooltip",
|
|
315
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
316
|
+
background: "neutral900",
|
|
317
|
+
padding: 2,
|
|
318
|
+
borderRadius: 1,
|
|
319
|
+
textAlign: "center",
|
|
320
|
+
role: "tooltip",
|
|
321
|
+
"aria-live": "polite",
|
|
322
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
323
|
+
textColor: "neutral0",
|
|
324
|
+
children: formatMessage({
|
|
325
|
+
id: 'content-manager.widget.chart-entries.tooltip',
|
|
326
|
+
defaultMessage: '{count} items'
|
|
327
|
+
}, {
|
|
328
|
+
count: tooltip.value.count,
|
|
329
|
+
label: tooltip.value.label
|
|
330
|
+
})
|
|
331
|
+
})
|
|
332
|
+
})
|
|
333
|
+
}),
|
|
334
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
335
|
+
gap: 4,
|
|
336
|
+
wrap: "wrap",
|
|
337
|
+
children: data.map((value)=>value.count > 0 && /*#__PURE__*/ jsxRuntime.jsxs(KeyChartItem, {
|
|
338
|
+
gap: 1,
|
|
339
|
+
children: [
|
|
340
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
341
|
+
background: value.color,
|
|
342
|
+
padding: 2,
|
|
343
|
+
borderRadius: 1
|
|
344
|
+
}),
|
|
345
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
346
|
+
variant: "pi",
|
|
347
|
+
children: value.label
|
|
348
|
+
})
|
|
349
|
+
]
|
|
350
|
+
}, value.label))
|
|
351
|
+
})
|
|
352
|
+
]
|
|
353
|
+
});
|
|
354
|
+
};
|
|
355
|
+
const ChartEntriesWidget = ()=>{
|
|
356
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
357
|
+
const { data: countDocuments, isLoading, error } = homepage.useGetCountDocumentsQuery();
|
|
358
|
+
if (isLoading) {
|
|
359
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
|
|
360
|
+
}
|
|
361
|
+
if (error) {
|
|
362
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
|
|
363
|
+
}
|
|
364
|
+
const { draft, published, modified } = countDocuments ?? {
|
|
365
|
+
draft: 0,
|
|
366
|
+
published: 0,
|
|
367
|
+
modified: 0
|
|
368
|
+
};
|
|
369
|
+
const total = draft + published + modified;
|
|
370
|
+
if (!total) {
|
|
371
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
|
|
372
|
+
children: formatMessage({
|
|
373
|
+
id: 'content-manager.widget.last-published.no-data',
|
|
374
|
+
defaultMessage: 'No published entries'
|
|
375
|
+
})
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
379
|
+
minHeight: "100%",
|
|
380
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(DonutChartSVG, {
|
|
381
|
+
data: [
|
|
382
|
+
{
|
|
383
|
+
label: formatMessage({
|
|
384
|
+
id: 'content-manager.containers.List.draft',
|
|
385
|
+
defaultMessage: 'Draft'
|
|
386
|
+
}),
|
|
387
|
+
count: draft,
|
|
388
|
+
color: 'secondary500'
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
label: formatMessage({
|
|
392
|
+
id: 'content-manager.containers.List.modified',
|
|
393
|
+
defaultMessage: 'Modified'
|
|
394
|
+
}),
|
|
395
|
+
count: modified,
|
|
396
|
+
color: 'alternative500'
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
label: formatMessage({
|
|
400
|
+
id: 'content-manager.containers.List.published',
|
|
401
|
+
defaultMessage: 'Published'
|
|
402
|
+
}),
|
|
403
|
+
count: published,
|
|
404
|
+
color: 'success500'
|
|
405
|
+
}
|
|
406
|
+
]
|
|
407
|
+
})
|
|
408
|
+
});
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
exports.ChartEntriesWidget = ChartEntriesWidget;
|
|
412
|
+
exports.LastEditedWidget = LastEditedWidget;
|
|
413
|
+
exports.LastPublishedWidget = LastPublishedWidget;
|
|
414
|
+
//# sourceMappingURL=Widgets.js.map
|