@strapi/content-manager 0.0.0-experimental.f8df2d79a7853c4cc2ede1ecc22a5e7120b6a99c → 0.0.0-experimental.f9ca9ac9518346cac58a4a3a576bc9d9d795570d
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/ComponentIcon.js +3 -0
- package/dist/admin/components/ComponentIcon.js.map +1 -1
- package/dist/admin/components/ComponentIcon.mjs +3 -0
- package/dist/admin/components/ComponentIcon.mjs.map +1 -1
- package/dist/admin/components/ConfigurationForm/EditFieldForm.js +3 -2
- package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +3 -2
- package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.js +4 -1
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +5 -2
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/components/ConfigurationForm/Form.js +1 -1
- package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
- package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
- package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
- package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
- package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
- package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
- package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
- package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
- package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
- package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
- package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
- package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
- package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
- package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
- package/dist/admin/components/LeftMenu.js +91 -51
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +93 -53
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/components/RelativeTime.js.map +1 -1
- package/dist/admin/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/components/Widgets.js +287 -11
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/components/Widgets.mjs +270 -14
- package/dist/admin/components/Widgets.mjs.map +1 -1
- package/dist/admin/content-manager.js.map +1 -1
- package/dist/admin/content-manager.mjs.map +1 -1
- package/dist/admin/history/components/HistoryAction.js.map +1 -1
- package/dist/admin/history/components/HistoryAction.mjs.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +1 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.mjs +1 -0
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
- package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
- package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
- package/dist/admin/history/components/VersionsList.js +1 -1
- package/dist/admin/history/components/VersionsList.js.map +1 -1
- package/dist/admin/history/components/VersionsList.mjs +1 -1
- package/dist/admin/history/components/VersionsList.mjs.map +1 -1
- package/dist/admin/history/pages/History.js +7 -7
- package/dist/admin/history/pages/History.js.map +1 -1
- package/dist/admin/history/pages/History.mjs +7 -7
- package/dist/admin/history/pages/History.mjs.map +1 -1
- package/dist/admin/history/services/historyVersion.js.map +1 -1
- package/dist/admin/history/services/historyVersion.mjs.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +24 -8
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +25 -9
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/index.js +45 -8
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +46 -9
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/layout.js +28 -33
- package/dist/admin/layout.js.map +1 -1
- package/dist/admin/layout.mjs +29 -15
- package/dist/admin/layout.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +21 -19
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +23 -21
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Blocker.js +18 -0
- package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
- package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
- package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/DocumentActions.js +29 -6
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +30 -7
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +4 -3
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +5 -4
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +6 -2
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +7 -3
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +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.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +13 -8
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +14 -8
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Header.js +92 -27
- package/dist/admin/pages/EditView/components/Header.js.map +1 -1
- package/dist/admin/pages/EditView/components/Header.mjs +94 -29
- package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +39 -24
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +39 -24
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +34 -9
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +34 -9
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +152 -145
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +153 -146
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
- package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js +6 -16
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +6 -16
- package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +18 -31
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +19 -32
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +13 -3
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +13 -3
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +7 -2
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +7 -2
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Media.js +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Media.mjs +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Relations.js +8 -4
- package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +8 -4
- package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
- package/dist/admin/preview/components/InputPopover.js +189 -0
- package/dist/admin/preview/components/InputPopover.js.map +1 -0
- package/dist/admin/preview/components/InputPopover.mjs +167 -0
- package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
- package/dist/admin/preview/components/PreviewHeader.js +0 -1
- package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
- package/dist/admin/preview/components/PreviewHeader.mjs +0 -1
- 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/hooks/usePreviewInputManager.js +77 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
- package/dist/admin/preview/pages/Preview.js +178 -74
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +180 -76
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/preview/services/preview.js.map +1 -1
- package/dist/admin/preview/services/preview.mjs.map +1 -1
- package/dist/admin/preview/utils/constants.js +56 -0
- package/dist/admin/preview/utils/constants.js.map +1 -0
- package/dist/admin/preview/utils/constants.mjs +52 -0
- package/dist/admin/preview/utils/constants.mjs.map +1 -0
- package/dist/admin/preview/utils/fieldUtils.js +107 -0
- package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
- package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
- package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
- package/dist/admin/preview/utils/getSendMessage.js +22 -0
- package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
- package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
- package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
- package/dist/admin/preview/utils/previewScript.js +534 -0
- package/dist/admin/preview/utils/previewScript.js.map +1 -0
- package/dist/admin/preview/utils/previewScript.mjs +532 -0
- package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
- package/dist/admin/router.js.map +1 -1
- package/dist/admin/router.mjs.map +1 -1
- package/dist/admin/services/api.js +4 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +4 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +57 -15
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +57 -15
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/homepage.js.map +1 -1
- package/dist/admin/services/homepage.mjs.map +1 -1
- package/dist/admin/services/relations.js.map +1 -1
- package/dist/admin/services/relations.mjs.map +1 -1
- package/dist/admin/src/components/LeftMenu.d.ts +3 -1
- package/dist/admin/src/components/Widgets.d.ts +8 -3
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +0 -3
- package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
- package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
- package/dist/admin/src/pages/ListView/components/TableCells/Relations.d.ts +0 -3
- package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
- package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
- package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/preview/utils/constants.d.ts +55 -0
- package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
- package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
- package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +16 -16
- package/dist/admin/src/services/homepage.d.ts +1 -1
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/api.d.ts +1 -1
- package/dist/admin/translations/en.json.js +12 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +12 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +6 -2
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +6 -2
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +6 -2
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +6 -2
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/utils/api.js +1 -1
- package/dist/admin/utils/api.js.map +1 -1
- package/dist/admin/utils/api.mjs +1 -1
- package/dist/admin/utils/api.mjs.map +1 -1
- package/dist/admin/utils/translations.js.map +1 -1
- package/dist/admin/utils/translations.mjs.map +1 -1
- package/dist/admin/utils/urls.js.map +1 -1
- package/dist/admin/utils/urls.mjs.map +1 -1
- package/dist/admin/utils/users.js.map +1 -1
- package/dist/admin/utils/users.mjs.map +1 -1
- package/dist/admin/utils/validation.js +2 -1
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/admin/utils/validation.mjs +2 -1
- package/dist/admin/utils/validation.mjs.map +1 -1
- package/dist/server/controllers/collection-types.js +2 -1
- package/dist/server/controllers/collection-types.js.map +1 -1
- package/dist/server/controllers/collection-types.mjs +2 -1
- package/dist/server/controllers/collection-types.mjs.map +1 -1
- package/dist/server/controllers/relations.js +6 -4
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +6 -4
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/single-types.js +3 -1
- package/dist/server/controllers/single-types.js.map +1 -1
- package/dist/server/controllers/single-types.mjs +3 -1
- package/dist/server/controllers/single-types.mjs.map +1 -1
- package/dist/server/controllers/validation/dimensions.js.map +1 -1
- package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
- package/dist/server/controllers/validation/index.js.map +1 -1
- package/dist/server/controllers/validation/index.mjs.map +1 -1
- package/dist/server/controllers/validation/model-configuration.js +2 -2
- package/dist/server/controllers/validation/model-configuration.js.map +1 -1
- package/dist/server/controllers/validation/model-configuration.mjs +2 -2
- package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +20 -19
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +20 -19
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/history/utils.js.map +1 -1
- package/dist/server/history/utils.mjs.map +1 -1
- package/dist/server/homepage/controllers/homepage.js +5 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -1
- package/dist/server/homepage/controllers/homepage.mjs +5 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
- package/dist/server/homepage/routes/homepage.js +11 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -1
- package/dist/server/homepage/routes/homepage.mjs +11 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -1
- package/dist/server/homepage/services/homepage.js +33 -1
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +33 -1
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/middlewares/routing.js.map +1 -1
- package/dist/server/middlewares/routing.mjs.map +1 -1
- package/dist/server/preview/services/preview-config.js +11 -32
- package/dist/server/preview/services/preview-config.js.map +1 -1
- package/dist/server/preview/services/preview-config.mjs +12 -33
- package/dist/server/preview/services/preview-config.mjs.map +1 -1
- package/dist/server/preview/services/preview.js +4 -0
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +4 -0
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/preview/utils.js.map +1 -1
- package/dist/server/preview/utils.mjs.map +1 -1
- package/dist/server/services/configuration.js.map +1 -1
- package/dist/server/services/configuration.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +23 -1
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +23 -1
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/field-sizes.js.map +1 -1
- package/dist/server/services/field-sizes.mjs.map +1 -1
- package/dist/server/services/uid.js.map +1 -1
- package/dist/server/services/uid.mjs.map +1 -1
- package/dist/server/services/utils/store.js.map +1 -1
- package/dist/server/services/utils/store.mjs.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/single-types.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 +2 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/index.d.ts +5 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -1
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts +2 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/services/index.d.ts +5 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +5 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +1 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview-config.d.ts +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +1 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +5 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +13 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/package.json +8 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.ts"],"sourcesContent":["import { MutableRefObject } from 'react';\n\nimport CodeMirror from 'codemirror5';\n\nexport const replaceText = (markdownName: string, textToChange: string) => {\n let editedText;\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${textToChange}~~`;\n break;\n case 'Bold':\n editedText = `**${textToChange}**`;\n break;\n case 'Italic':\n editedText = `_${textToChange}_`;\n break;\n case 'Underline':\n editedText = `<u>${textToChange}</u>`;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${textToChange}\\n\\`\\`\\``;\n break;\n case 'Link':\n editedText = `[${textToChange}](link)`;\n break;\n case 'Quote':\n editedText = `>${textToChange}`;\n break;\n default:\n editedText = textToChange;\n }\n\n return editedText;\n};\n\nexport const insertText = (markdownName: string) => {\n let editedText;\n // object to calculate text that will be selected after insert of markdown\n const selection = { start: markdownName.length, end: 0 };\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${markdownName}~~`;\n selection.end = 2;\n break;\n case 'Bold':\n editedText = `**${markdownName}**`;\n selection.end = 2;\n break;\n case 'Italic':\n editedText = `_${markdownName}_`;\n selection.end = 1;\n break;\n case 'alt':\n editedText = `[${markdownName}]()`;\n selection.end = 3;\n break;\n case 'Underline':\n editedText = `<u>${markdownName}</u>`;\n selection.end = 4;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${markdownName}\\n\\`\\`\\``;\n selection.end = 3;\n break;\n case 'Link':\n editedText = `[${markdownName}](link)`;\n selection.end = 7;\n break;\n case 'Quote':\n editedText = `>${markdownName}`;\n selection.end = 0;\n break;\n default:\n editedText = '';\n }\n\n return { editedText, selection };\n};\n\nexport const insertListOrTitle = (markdown: string) => {\n let textToInsert;\n\n switch (markdown) {\n case 'BulletList':\n textToInsert = '- ';\n break;\n case 'NumberList':\n textToInsert = '1. ';\n break;\n case 'h1':\n textToInsert = '# ';\n break;\n case 'h2':\n textToInsert = '## ';\n break;\n case 'h3':\n textToInsert = '### ';\n break;\n case 'h4':\n textToInsert = '#### ';\n break;\n case 'h5':\n textToInsert = '##### ';\n break;\n case 'h6':\n textToInsert = '###### ';\n break;\n default:\n return '';\n }\n\n return textToInsert;\n};\n\n// EDITOR ACTIONS FUNCTIONS\n\nexport const markdownHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n let textToInsert;\n\n if (textToEdit) {\n const editedText = replaceText(markdownType, textToEdit);\n editor.current.replaceSelection(editedText);\n editor.current.focus();\n } else {\n textToInsert = insertText(markdownType);\n editor.current.replaceSelection(textToInsert.editedText);\n editor.current.focus();\n // set selection-focus to text to replace with content\n const { line, ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n};\n\nexport const listHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n listType: string\n) => {\n const doc = editor.current.getDoc();\n const insertion = listType === 'BulletList' ? '- ' : '1. ';\n\n if (doc.somethingSelected()) {\n const selections = doc.listSelections();\n let remove: boolean | null = null;\n\n editor.current.operation(function () {\n selections.forEach(function (selection) {\n const pos = [selection.head.line, selection.anchor.line].sort();\n\n // Remove if the first text starts with it\n if (remove == null) {\n remove = doc.getLine(pos[0]).startsWith(insertion);\n }\n\n for (let i = pos[0]; i <= pos[1]; i++) {\n if (remove) {\n // Don't remove if we don't start with it\n if (doc.getLine(i).startsWith(insertion)) {\n doc.replaceRange('', { line: i, ch: 0 }, { line: i, ch: insertion.length });\n }\n } else {\n const lineInsertion = listType === 'BulletList' ? '- ' : `${i + 1}. `;\n doc.replaceRange(lineInsertion, { line: i, ch: 0 });\n }\n }\n });\n });\n } else {\n const { line: currentLine } = doc.getCursor();\n const listToInsert = insertListOrTitle(listType);\n const lineContent = editor.current.getLine(currentLine);\n\n const textToInsert = listToInsert + lineContent;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n }\n\n editor.current.focus();\n};\n\nexport const titleHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n titleType: string\n) => {\n const { line: currentLine } = editor.current.getCursor();\n const titleToInsert = insertListOrTitle(titleType);\n const lineContent = editor.current.getLine(currentLine);\n\n // replace hashtags followed by a space in case user want to change the type of title\n const lineWithNoTitle = lineContent.replace(/#{1,6}\\s/g, '').trim();\n\n const textToInsert = titleToInsert + lineWithNoTitle;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n\n setTimeout(() => {\n const newLastLineLength = editor.current.getLine(currentLine).length;\n editor.current.focus();\n editor.current.setCursor({ line: currentLine, ch: newLastLineLength });\n }, 0);\n};\n\nexport const insertFile = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n files: any[]\n) => {\n let { line } = editor.current.getCursor();\n const { ch } = editor.current.getCursor();\n\n files.forEach((file, i) => {\n let contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n // create a new line after first image markdown inserted\n // or if there is content in current line\n\n if (i > 0 || (i === 0 && ch !== 0)) {\n contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n line++;\n editor.current.replaceSelection('\\n');\n }\n\n if (file.mime.includes('image')) {\n editor.current.replaceSelection(``);\n } else {\n editor.current.replaceSelection(`[${file.alt}](${file.url})`);\n }\n });\n\n setTimeout(() => editor.current.focus(), 0);\n};\n\n// NEXT FUNCTIONS FOR QUOTE OR CODE MARKDOWN\n\nconst insertWithTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number,\n textToEdit: string\n) => {\n const textToInsert = replaceText(markdownType, textToEdit);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // remove word that was selected\n // set cursor end of line + move to next line\n // add text to insert\n editor.current.replaceSelection('');\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert);\n\n if (markdownType === 'Code') {\n const { line: newLine } = editor.current.getCursor();\n editor.current.setCursor({ line: newLine - 1, ch: textToEdit.length });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 4, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n\n editor.current.focus();\n};\n\nconst insertWithoutTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number\n) => {\n const textToInsert = insertText(markdownType);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // replace cursor to next line\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert.editedText);\n\n // set selection on \"Code\" or \"Quote\" word\n\n if (markdownType === 'Code') {\n line += 2;\n\n editor.current.setSelection({ line, ch: 0 }, { line, ch: 4 });\n } else {\n line += 1;\n\n const { ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 2, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.focus();\n};\n\nexport const quoteAndCodeHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n const { line } = editor.current.getCursor();\n const contentLength = editor.current.getLine(line).length;\n\n if (textToEdit) {\n insertWithTextToEdit(editor, markdownType, line, contentLength, textToEdit);\n } else {\n insertWithoutTextToEdit(editor, markdownType, line, contentLength);\n }\n};\n"],"names":["replaceText","markdownName","textToChange","editedText","insertText","selection","start","length","end","insertListOrTitle","markdown","textToInsert","markdownHandler","editor","markdownType","textToEdit","current","getSelection","replaceSelection","focus","line","ch","getCursor","endSelection","startSelection","setSelection","listHandler","listType","doc","getDoc","insertion","somethingSelected","selections","listSelections","remove","operation","forEach","pos","head","anchor","sort","getLine","startsWith","i","replaceRange","lineInsertion","currentLine","listToInsert","lineContent","titleHandler","titleType","titleToInsert","lineWithNoTitle","replace","trim","setTimeout","newLastLineLength","setCursor","insertFile","files","file","contentLength","mime","includes","alt","url","insertWithTextToEdit","contentToMove","getRange","Infinity","newLine","insertWithoutTextToEdit","quoteAndCodeHandler"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.ts"],"sourcesContent":["import { MutableRefObject } from 'react';\n\nimport CodeMirror from 'codemirror5';\n\nexport const replaceText = (markdownName: string, textToChange: string) => {\n let editedText;\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${textToChange}~~`;\n break;\n case 'Bold':\n editedText = `**${textToChange}**`;\n break;\n case 'Italic':\n editedText = `_${textToChange}_`;\n break;\n case 'Underline':\n editedText = `<u>${textToChange}</u>`;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${textToChange}\\n\\`\\`\\``;\n break;\n case 'Link':\n editedText = `[${textToChange}](link)`;\n break;\n case 'Quote':\n editedText = `>${textToChange}`;\n break;\n default:\n editedText = textToChange;\n }\n\n return editedText;\n};\n\nexport const insertText = (markdownName: string) => {\n let editedText;\n // object to calculate text that will be selected after insert of markdown\n const selection = { start: markdownName.length, end: 0 };\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${markdownName}~~`;\n selection.end = 2;\n break;\n case 'Bold':\n editedText = `**${markdownName}**`;\n selection.end = 2;\n break;\n case 'Italic':\n editedText = `_${markdownName}_`;\n selection.end = 1;\n break;\n case 'alt':\n editedText = `[${markdownName}]()`;\n selection.end = 3;\n break;\n case 'Underline':\n editedText = `<u>${markdownName}</u>`;\n selection.end = 4;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${markdownName}\\n\\`\\`\\``;\n selection.end = 3;\n break;\n case 'Link':\n editedText = `[${markdownName}](link)`;\n selection.end = 7;\n break;\n case 'Quote':\n editedText = `>${markdownName}`;\n selection.end = 0;\n break;\n default:\n editedText = '';\n }\n\n return { editedText, selection };\n};\n\nexport const insertListOrTitle = (markdown: string) => {\n let textToInsert;\n\n switch (markdown) {\n case 'BulletList':\n textToInsert = '- ';\n break;\n case 'NumberList':\n textToInsert = '1. ';\n break;\n case 'h1':\n textToInsert = '# ';\n break;\n case 'h2':\n textToInsert = '## ';\n break;\n case 'h3':\n textToInsert = '### ';\n break;\n case 'h4':\n textToInsert = '#### ';\n break;\n case 'h5':\n textToInsert = '##### ';\n break;\n case 'h6':\n textToInsert = '###### ';\n break;\n default:\n return '';\n }\n\n return textToInsert;\n};\n\n// EDITOR ACTIONS FUNCTIONS\n\nexport const markdownHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n let textToInsert;\n\n if (textToEdit) {\n const editedText = replaceText(markdownType, textToEdit);\n editor.current.replaceSelection(editedText);\n editor.current.focus();\n } else {\n textToInsert = insertText(markdownType);\n editor.current.replaceSelection(textToInsert.editedText);\n editor.current.focus();\n // set selection-focus to text to replace with content\n const { line, ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n};\n\nexport const listHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n listType: string\n) => {\n const doc = editor.current.getDoc();\n const insertion = listType === 'BulletList' ? '- ' : '1. ';\n\n if (doc.somethingSelected()) {\n const selections = doc.listSelections();\n let remove: boolean | null = null;\n\n editor.current.operation(function () {\n selections.forEach(function (selection) {\n const pos = [selection.head.line, selection.anchor.line].sort();\n\n // Remove if the first text starts with it\n if (remove == null) {\n remove = doc.getLine(pos[0]).startsWith(insertion);\n }\n\n for (let i = pos[0]; i <= pos[1]; i++) {\n if (remove) {\n // Don't remove if we don't start with it\n if (doc.getLine(i).startsWith(insertion)) {\n doc.replaceRange('', { line: i, ch: 0 }, { line: i, ch: insertion.length });\n }\n } else {\n const lineInsertion = listType === 'BulletList' ? '- ' : `${i + 1}. `;\n doc.replaceRange(lineInsertion, { line: i, ch: 0 });\n }\n }\n });\n });\n } else {\n const { line: currentLine } = doc.getCursor();\n const listToInsert = insertListOrTitle(listType);\n const lineContent = editor.current.getLine(currentLine);\n\n const textToInsert = listToInsert + lineContent;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n }\n\n editor.current.focus();\n};\n\nexport const titleHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n titleType: string\n) => {\n const { line: currentLine } = editor.current.getCursor();\n const titleToInsert = insertListOrTitle(titleType);\n const lineContent = editor.current.getLine(currentLine);\n\n // replace hashtags followed by a space in case user want to change the type of title\n const lineWithNoTitle = lineContent.replace(/#{1,6}\\s/g, '').trim();\n\n const textToInsert = titleToInsert + lineWithNoTitle;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n\n setTimeout(() => {\n const newLastLineLength = editor.current.getLine(currentLine).length;\n editor.current.focus();\n editor.current.setCursor({ line: currentLine, ch: newLastLineLength });\n }, 0);\n};\n\nexport const insertFile = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n files: any[]\n) => {\n let { line } = editor.current.getCursor();\n const { ch } = editor.current.getCursor();\n\n files.forEach((file, i) => {\n let contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n // create a new line after first image markdown inserted\n // or if there is content in current line\n\n if (i > 0 || (i === 0 && ch !== 0)) {\n contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n line++;\n editor.current.replaceSelection('\\n');\n }\n\n if (file.mime.includes('image')) {\n editor.current.replaceSelection(``);\n } else {\n editor.current.replaceSelection(`[${file.alt}](${file.url})`);\n }\n });\n\n setTimeout(() => editor.current.focus(), 0);\n};\n\n// NEXT FUNCTIONS FOR QUOTE OR CODE MARKDOWN\n\nconst insertWithTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number,\n textToEdit: string\n) => {\n const textToInsert = replaceText(markdownType, textToEdit);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // remove word that was selected\n // set cursor end of line + move to next line\n // add text to insert\n editor.current.replaceSelection('');\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert);\n\n if (markdownType === 'Code') {\n const { line: newLine } = editor.current.getCursor();\n editor.current.setCursor({ line: newLine - 1, ch: textToEdit.length });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 4, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n\n editor.current.focus();\n};\n\nconst insertWithoutTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number\n) => {\n const textToInsert = insertText(markdownType);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // replace cursor to next line\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert.editedText);\n\n // set selection on \"Code\" or \"Quote\" word\n\n if (markdownType === 'Code') {\n line += 2;\n\n editor.current.setSelection({ line, ch: 0 }, { line, ch: 4 });\n } else {\n line += 1;\n\n const { ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 2, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.focus();\n};\n\nexport const quoteAndCodeHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n const { line } = editor.current.getCursor();\n const contentLength = editor.current.getLine(line).length;\n\n if (textToEdit) {\n insertWithTextToEdit(editor, markdownType, line, contentLength, textToEdit);\n } else {\n insertWithoutTextToEdit(editor, markdownType, line, contentLength);\n }\n};\n"],"names":["replaceText","markdownName","textToChange","editedText","insertText","selection","start","length","end","insertListOrTitle","markdown","textToInsert","markdownHandler","editor","markdownType","textToEdit","current","getSelection","replaceSelection","focus","line","ch","getCursor","endSelection","startSelection","setSelection","listHandler","listType","doc","getDoc","insertion","somethingSelected","selections","listSelections","remove","operation","forEach","pos","head","anchor","sort","getLine","startsWith","i","replaceRange","lineInsertion","currentLine","listToInsert","lineContent","titleHandler","titleType","titleToInsert","lineWithNoTitle","replace","trim","setTimeout","newLastLineLength","setCursor","insertFile","files","file","contentLength","mime","includes","alt","url","insertWithTextToEdit","contentToMove","getRange","Infinity","newLine","insertWithoutTextToEdit","quoteAndCodeHandler"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.ts"],"sourcesContent":["import { MutableRefObject } from 'react';\n\nimport CodeMirror from 'codemirror5';\n\nexport const replaceText = (markdownName: string, textToChange: string) => {\n let editedText;\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${textToChange}~~`;\n break;\n case 'Bold':\n editedText = `**${textToChange}**`;\n break;\n case 'Italic':\n editedText = `_${textToChange}_`;\n break;\n case 'Underline':\n editedText = `<u>${textToChange}</u>`;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${textToChange}\\n\\`\\`\\``;\n break;\n case 'Link':\n editedText = `[${textToChange}](link)`;\n break;\n case 'Quote':\n editedText = `>${textToChange}`;\n break;\n default:\n editedText = textToChange;\n }\n\n return editedText;\n};\n\nexport const insertText = (markdownName: string) => {\n let editedText;\n // object to calculate text that will be selected after insert of markdown\n const selection = { start: markdownName.length, end: 0 };\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${markdownName}~~`;\n selection.end = 2;\n break;\n case 'Bold':\n editedText = `**${markdownName}**`;\n selection.end = 2;\n break;\n case 'Italic':\n editedText = `_${markdownName}_`;\n selection.end = 1;\n break;\n case 'alt':\n editedText = `[${markdownName}]()`;\n selection.end = 3;\n break;\n case 'Underline':\n editedText = `<u>${markdownName}</u>`;\n selection.end = 4;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${markdownName}\\n\\`\\`\\``;\n selection.end = 3;\n break;\n case 'Link':\n editedText = `[${markdownName}](link)`;\n selection.end = 7;\n break;\n case 'Quote':\n editedText = `>${markdownName}`;\n selection.end = 0;\n break;\n default:\n editedText = '';\n }\n\n return { editedText, selection };\n};\n\nexport const insertListOrTitle = (markdown: string) => {\n let textToInsert;\n\n switch (markdown) {\n case 'BulletList':\n textToInsert = '- ';\n break;\n case 'NumberList':\n textToInsert = '1. ';\n break;\n case 'h1':\n textToInsert = '# ';\n break;\n case 'h2':\n textToInsert = '## ';\n break;\n case 'h3':\n textToInsert = '### ';\n break;\n case 'h4':\n textToInsert = '#### ';\n break;\n case 'h5':\n textToInsert = '##### ';\n break;\n case 'h6':\n textToInsert = '###### ';\n break;\n default:\n return '';\n }\n\n return textToInsert;\n};\n\n// EDITOR ACTIONS FUNCTIONS\n\nexport const markdownHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n let textToInsert;\n\n if (textToEdit) {\n const editedText = replaceText(markdownType, textToEdit);\n editor.current.replaceSelection(editedText);\n editor.current.focus();\n } else {\n textToInsert = insertText(markdownType);\n editor.current.replaceSelection(textToInsert.editedText);\n editor.current.focus();\n // set selection-focus to text to replace with content\n const { line, ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n};\n\nexport const listHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n listType: string\n) => {\n const doc = editor.current.getDoc();\n const insertion = listType === 'BulletList' ? '- ' : '1. ';\n\n if (doc.somethingSelected()) {\n const selections = doc.listSelections();\n let remove: boolean | null = null;\n\n editor.current.operation(function () {\n selections.forEach(function (selection) {\n const pos = [selection.head.line, selection.anchor.line].sort();\n\n // Remove if the first text starts with it\n if (remove == null) {\n remove = doc.getLine(pos[0]).startsWith(insertion);\n }\n\n for (let i = pos[0]; i <= pos[1]; i++) {\n if (remove) {\n // Don't remove if we don't start with it\n if (doc.getLine(i).startsWith(insertion)) {\n doc.replaceRange('', { line: i, ch: 0 }, { line: i, ch: insertion.length });\n }\n } else {\n const lineInsertion = listType === 'BulletList' ? '- ' : `${i + 1}. `;\n doc.replaceRange(lineInsertion, { line: i, ch: 0 });\n }\n }\n });\n });\n } else {\n const { line: currentLine } = doc.getCursor();\n const listToInsert = insertListOrTitle(listType);\n const lineContent = editor.current.getLine(currentLine);\n\n const textToInsert = listToInsert + lineContent;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n }\n\n editor.current.focus();\n};\n\nexport const titleHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n titleType: string\n) => {\n const { line: currentLine } = editor.current.getCursor();\n const titleToInsert = insertListOrTitle(titleType);\n const lineContent = editor.current.getLine(currentLine);\n\n // replace hashtags followed by a space in case user want to change the type of title\n const lineWithNoTitle = lineContent.replace(/#{1,6}\\s/g, '').trim();\n\n const textToInsert = titleToInsert + lineWithNoTitle;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n\n setTimeout(() => {\n const newLastLineLength = editor.current.getLine(currentLine).length;\n editor.current.focus();\n editor.current.setCursor({ line: currentLine, ch: newLastLineLength });\n }, 0);\n};\n\nexport const insertFile = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n files: any[]\n) => {\n let { line } = editor.current.getCursor();\n const { ch } = editor.current.getCursor();\n\n files.forEach((file, i) => {\n let contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n // create a new line after first image markdown inserted\n // or if there is content in current line\n\n if (i > 0 || (i === 0 && ch !== 0)) {\n contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n line++;\n editor.current.replaceSelection('\\n');\n }\n\n if (file.mime.includes('image')) {\n editor.current.replaceSelection(``);\n } else {\n editor.current.replaceSelection(`[${file.alt}](${file.url})`);\n }\n });\n\n setTimeout(() => editor.current.focus(), 0);\n};\n\n// NEXT FUNCTIONS FOR QUOTE OR CODE MARKDOWN\n\nconst insertWithTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number,\n textToEdit: string\n) => {\n const textToInsert = replaceText(markdownType, textToEdit);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // remove word that was selected\n // set cursor end of line + move to next line\n // add text to insert\n editor.current.replaceSelection('');\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert);\n\n if (markdownType === 'Code') {\n const { line: newLine } = editor.current.getCursor();\n editor.current.setCursor({ line: newLine - 1, ch: textToEdit.length });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 4, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n\n editor.current.focus();\n};\n\nconst insertWithoutTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number\n) => {\n const textToInsert = insertText(markdownType);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // replace cursor to next line\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert.editedText);\n\n // set selection on \"Code\" or \"Quote\" word\n\n if (markdownType === 'Code') {\n line += 2;\n\n editor.current.setSelection({ line, ch: 0 }, { line, ch: 4 });\n } else {\n line += 1;\n\n const { ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 2, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.focus();\n};\n\nexport const quoteAndCodeHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n const { line } = editor.current.getCursor();\n const contentLength = editor.current.getLine(line).length;\n\n if (textToEdit) {\n insertWithTextToEdit(editor, markdownType, line, contentLength, textToEdit);\n } else {\n insertWithoutTextToEdit(editor, markdownType, line, contentLength);\n }\n};\n"],"names":["replaceText","markdownName","textToChange","editedText","insertText","selection","start","length","end","insertListOrTitle","markdown","textToInsert","markdownHandler","editor","markdownType","textToEdit","current","getSelection","replaceSelection","focus","line","ch","getCursor","endSelection","startSelection","setSelection","listHandler","listType","doc","getDoc","insertion","somethingSelected","selections","listSelections","remove","operation","forEach","pos","head","anchor","sort","getLine","startsWith","i","replaceRange","lineInsertion","currentLine","listToInsert","lineContent","titleHandler","titleType","titleToInsert","lineWithNoTitle","replace","trim","setTimeout","newLastLineLength","setCursor","insertFile","files","file","contentLength","mime","includes","alt","url","insertWithTextToEdit","contentToMove","getRange","Infinity","newLine","insertWithoutTextToEdit","quoteAndCodeHandler"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.ts"],"sourcesContent":["import { MutableRefObject } from 'react';\n\nimport CodeMirror from 'codemirror5';\n\nexport const replaceText = (markdownName: string, textToChange: string) => {\n let editedText;\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${textToChange}~~`;\n break;\n case 'Bold':\n editedText = `**${textToChange}**`;\n break;\n case 'Italic':\n editedText = `_${textToChange}_`;\n break;\n case 'Underline':\n editedText = `<u>${textToChange}</u>`;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${textToChange}\\n\\`\\`\\``;\n break;\n case 'Link':\n editedText = `[${textToChange}](link)`;\n break;\n case 'Quote':\n editedText = `>${textToChange}`;\n break;\n default:\n editedText = textToChange;\n }\n\n return editedText;\n};\n\nexport const insertText = (markdownName: string) => {\n let editedText;\n // object to calculate text that will be selected after insert of markdown\n const selection = { start: markdownName.length, end: 0 };\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${markdownName}~~`;\n selection.end = 2;\n break;\n case 'Bold':\n editedText = `**${markdownName}**`;\n selection.end = 2;\n break;\n case 'Italic':\n editedText = `_${markdownName}_`;\n selection.end = 1;\n break;\n case 'alt':\n editedText = `[${markdownName}]()`;\n selection.end = 3;\n break;\n case 'Underline':\n editedText = `<u>${markdownName}</u>`;\n selection.end = 4;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${markdownName}\\n\\`\\`\\``;\n selection.end = 3;\n break;\n case 'Link':\n editedText = `[${markdownName}](link)`;\n selection.end = 7;\n break;\n case 'Quote':\n editedText = `>${markdownName}`;\n selection.end = 0;\n break;\n default:\n editedText = '';\n }\n\n return { editedText, selection };\n};\n\nexport const insertListOrTitle = (markdown: string) => {\n let textToInsert;\n\n switch (markdown) {\n case 'BulletList':\n textToInsert = '- ';\n break;\n case 'NumberList':\n textToInsert = '1. ';\n break;\n case 'h1':\n textToInsert = '# ';\n break;\n case 'h2':\n textToInsert = '## ';\n break;\n case 'h3':\n textToInsert = '### ';\n break;\n case 'h4':\n textToInsert = '#### ';\n break;\n case 'h5':\n textToInsert = '##### ';\n break;\n case 'h6':\n textToInsert = '###### ';\n break;\n default:\n return '';\n }\n\n return textToInsert;\n};\n\n// EDITOR ACTIONS FUNCTIONS\n\nexport const markdownHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n let textToInsert;\n\n if (textToEdit) {\n const editedText = replaceText(markdownType, textToEdit);\n editor.current.replaceSelection(editedText);\n editor.current.focus();\n } else {\n textToInsert = insertText(markdownType);\n editor.current.replaceSelection(textToInsert.editedText);\n editor.current.focus();\n // set selection-focus to text to replace with content\n const { line, ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n};\n\nexport const listHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n listType: string\n) => {\n const doc = editor.current.getDoc();\n const insertion = listType === 'BulletList' ? '- ' : '1. ';\n\n if (doc.somethingSelected()) {\n const selections = doc.listSelections();\n let remove: boolean | null = null;\n\n editor.current.operation(function () {\n selections.forEach(function (selection) {\n const pos = [selection.head.line, selection.anchor.line].sort();\n\n // Remove if the first text starts with it\n if (remove == null) {\n remove = doc.getLine(pos[0]).startsWith(insertion);\n }\n\n for (let i = pos[0]; i <= pos[1]; i++) {\n if (remove) {\n // Don't remove if we don't start with it\n if (doc.getLine(i).startsWith(insertion)) {\n doc.replaceRange('', { line: i, ch: 0 }, { line: i, ch: insertion.length });\n }\n } else {\n const lineInsertion = listType === 'BulletList' ? '- ' : `${i + 1}. `;\n doc.replaceRange(lineInsertion, { line: i, ch: 0 });\n }\n }\n });\n });\n } else {\n const { line: currentLine } = doc.getCursor();\n const listToInsert = insertListOrTitle(listType);\n const lineContent = editor.current.getLine(currentLine);\n\n const textToInsert = listToInsert + lineContent;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n }\n\n editor.current.focus();\n};\n\nexport const titleHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n titleType: string\n) => {\n const { line: currentLine } = editor.current.getCursor();\n const titleToInsert = insertListOrTitle(titleType);\n const lineContent = editor.current.getLine(currentLine);\n\n // replace hashtags followed by a space in case user want to change the type of title\n const lineWithNoTitle = lineContent.replace(/#{1,6}\\s/g, '').trim();\n\n const textToInsert = titleToInsert + lineWithNoTitle;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n\n setTimeout(() => {\n const newLastLineLength = editor.current.getLine(currentLine).length;\n editor.current.focus();\n editor.current.setCursor({ line: currentLine, ch: newLastLineLength });\n }, 0);\n};\n\nexport const insertFile = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n files: any[]\n) => {\n let { line } = editor.current.getCursor();\n const { ch } = editor.current.getCursor();\n\n files.forEach((file, i) => {\n let contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n // create a new line after first image markdown inserted\n // or if there is content in current line\n\n if (i > 0 || (i === 0 && ch !== 0)) {\n contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n line++;\n editor.current.replaceSelection('\\n');\n }\n\n if (file.mime.includes('image')) {\n editor.current.replaceSelection(``);\n } else {\n editor.current.replaceSelection(`[${file.alt}](${file.url})`);\n }\n });\n\n setTimeout(() => editor.current.focus(), 0);\n};\n\n// NEXT FUNCTIONS FOR QUOTE OR CODE MARKDOWN\n\nconst insertWithTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number,\n textToEdit: string\n) => {\n const textToInsert = replaceText(markdownType, textToEdit);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // remove word that was selected\n // set cursor end of line + move to next line\n // add text to insert\n editor.current.replaceSelection('');\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert);\n\n if (markdownType === 'Code') {\n const { line: newLine } = editor.current.getCursor();\n editor.current.setCursor({ line: newLine - 1, ch: textToEdit.length });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 4, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n\n editor.current.focus();\n};\n\nconst insertWithoutTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number\n) => {\n const textToInsert = insertText(markdownType);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // replace cursor to next line\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert.editedText);\n\n // set selection on \"Code\" or \"Quote\" word\n\n if (markdownType === 'Code') {\n line += 2;\n\n editor.current.setSelection({ line, ch: 0 }, { line, ch: 4 });\n } else {\n line += 1;\n\n const { ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 2, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.focus();\n};\n\nexport const quoteAndCodeHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n const { line } = editor.current.getCursor();\n const contentLength = editor.current.getLine(line).length;\n\n if (textToEdit) {\n insertWithTextToEdit(editor, markdownType, line, contentLength, textToEdit);\n } else {\n insertWithoutTextToEdit(editor, markdownType, line, contentLength);\n }\n};\n"],"names":["replaceText","markdownName","textToChange","editedText","insertText","selection","start","length","end","insertListOrTitle","markdown","textToInsert","markdownHandler","editor","markdownType","textToEdit","current","getSelection","replaceSelection","focus","line","ch","getCursor","endSelection","startSelection","setSelection","listHandler","listType","doc","getDoc","insertion","somethingSelected","selections","listSelections","remove","operation","forEach","pos","head","anchor","sort","getLine","startsWith","i","replaceRange","lineInsertion","currentLine","listToInsert","lineContent","titleHandler","titleType","titleToInsert","lineWithNoTitle","replace","trim","setTimeout","newLastLineLength","setCursor","insertFile","files","file","contentLength","mime","includes","alt","url","insertWithTextToEdit","contentToMove","getRange","Infinity","newLine","insertWithoutTextToEdit","quoteAndCodeHandler"],"mappings":"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"}
|
|
@@ -8,9 +8,6 @@ var reactIntl = require('react-intl');
|
|
|
8
8
|
var styledComponents = require('styled-components');
|
|
9
9
|
var InputRenderer = require('./InputRenderer.js');
|
|
10
10
|
|
|
11
|
-
const RESPONSIVE_CONTAINER_BREAKPOINTS = {
|
|
12
|
-
sm: '27.5rem'
|
|
13
|
-
};
|
|
14
11
|
const ResponsiveGridRoot = styledComponents.styled(designSystem.Grid.Root)`
|
|
15
12
|
container-type: inline-size;
|
|
16
13
|
`;
|
|
@@ -21,14 +18,17 @@ const ResponsiveGridItem = /**
|
|
|
21
18
|
* for failing to parse the stylesheet.
|
|
22
19
|
*/ process.env.NODE_ENV !== 'test' ? styledComponents.styled(designSystem.Grid.Item)`
|
|
23
20
|
grid-column: span 12;
|
|
24
|
-
|
|
21
|
+
${({ theme })=>theme.breakpoints.medium} {
|
|
25
22
|
${({ col })=>col && `grid-column: span ${col};`}
|
|
26
23
|
}
|
|
27
24
|
` : styledComponents.styled(designSystem.Grid.Item)`
|
|
28
25
|
grid-column: span 12;
|
|
29
26
|
`;
|
|
30
27
|
const panelStyles = {
|
|
31
|
-
padding:
|
|
28
|
+
padding: {
|
|
29
|
+
initial: 4,
|
|
30
|
+
medium: 6
|
|
31
|
+
},
|
|
32
32
|
borderColor: 'neutral150',
|
|
33
33
|
background: 'neutral0',
|
|
34
34
|
hasRadius: true,
|
|
@@ -48,7 +48,10 @@ const FormLayout = ({ layout, document, hasBackground = true })=>{
|
|
|
48
48
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
49
49
|
direction: "column",
|
|
50
50
|
alignItems: "stretch",
|
|
51
|
-
gap:
|
|
51
|
+
gap: {
|
|
52
|
+
initial: 4,
|
|
53
|
+
large: 6
|
|
54
|
+
},
|
|
52
55
|
children: layout.map((panel, index)=>{
|
|
53
56
|
if (panel.some((row)=>row.some((field)=>field.type === 'dynamiczone'))) {
|
|
54
57
|
const [row] = panel;
|
|
@@ -82,7 +85,10 @@ const FormLayout = ({ layout, document, hasBackground = true })=>{
|
|
|
82
85
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
83
86
|
direction: "column",
|
|
84
87
|
alignItems: "stretch",
|
|
85
|
-
gap:
|
|
88
|
+
gap: {
|
|
89
|
+
initial: 4,
|
|
90
|
+
large: 6
|
|
91
|
+
},
|
|
86
92
|
children: panel.map((row, gridRowIndex)=>{
|
|
87
93
|
const visibleFields = row.filter(({ name })=>{
|
|
88
94
|
const attribute = document.schema?.attributes[name];
|
|
@@ -120,7 +126,6 @@ const FormLayout = ({ layout, document, hasBackground = true })=>{
|
|
|
120
126
|
};
|
|
121
127
|
|
|
122
128
|
exports.FormLayout = FormLayout;
|
|
123
|
-
exports.RESPONSIVE_CONTAINER_BREAKPOINTS = RESPONSIVE_CONTAINER_BREAKPOINTS;
|
|
124
129
|
exports.ResponsiveGridItem = ResponsiveGridItem;
|
|
125
130
|
exports.ResponsiveGridRoot = ResponsiveGridRoot;
|
|
126
131
|
//# sourceMappingURL=FormLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.js","sources":["../../../../../admin/src/pages/EditView/components/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { Box, BoxProps, Flex, Grid } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\nimport type { UseDocument } from '../../../hooks/useDocument';\n\nexport const
|
|
1
|
+
{"version":3,"file":"FormLayout.js","sources":["../../../../../admin/src/pages/EditView/components/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { Box, BoxProps, Flex, Grid } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\nimport type { UseDocument } from '../../../hooks/useDocument';\n\nexport const ResponsiveGridRoot = styled(Grid.Root)`\n container-type: inline-size;\n`;\n\nexport const ResponsiveGridItem =\n /**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\n process.env.NODE_ENV !== 'test'\n ? styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n ${({ theme }) => theme.breakpoints.medium} {\n ${({ col }) => col && `grid-column: span ${col};`}\n }\n `\n : styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n `;\n\nconst panelStyles = {\n padding: {\n initial: 4,\n medium: 6,\n },\n borderColor: 'neutral150',\n background: 'neutral0',\n hasRadius: true,\n shadow: 'tableShadow',\n} satisfies BoxProps;\n\ninterface FormLayoutProps extends Pick<EditLayout, 'layout'> {\n hasBackground?: boolean;\n document: ReturnType<UseDocument>;\n}\n\nconst FormLayout = ({ layout, document, hasBackground = true }: FormLayoutProps) => {\n const { formatMessage } = useIntl();\n const modelUid = document.schema?.uid;\n const fieldValues = useForm('Fields', (state) => state.values);\n const rulesEngine = createRulesEngine();\n\n const getLabel = (name: string, label: string) => {\n return formatMessage({\n id: `content-manager.content-types.${modelUid}.${name}`,\n defaultMessage: label,\n });\n };\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={{\n initial: 4,\n large: 6,\n }}\n >\n {layout.map((panel, index) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n const attribute = document.schema?.attributes[field.name];\n const condition = attribute?.conditions?.visible;\n\n if (condition) {\n const isVisible = rulesEngine.evaluate(condition, fieldValues);\n if (!isVisible) {\n return null; // Skip rendering the dynamic zone if the condition is not met\n }\n }\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box key={index} {...(hasBackground && panelStyles)}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={{\n initial: 4,\n large: 6,\n }}\n >\n {panel.map((row, gridRowIndex) => {\n const visibleFields = row.filter(({ name }) => {\n const attribute = document.schema?.attributes[name];\n const condition = attribute?.conditions?.visible;\n\n if (condition) {\n return rulesEngine.evaluate(condition, fieldValues);\n }\n\n return true;\n });\n\n if (visibleFields.length === 0) {\n return null; // Skip rendering the entire grid row\n }\n\n return (\n <ResponsiveGridRoot key={gridRowIndex} gap={4}>\n {visibleFields.map(({ size, ...field }) => {\n return (\n <ResponsiveGridItem\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n </Box>\n );\n })}\n </Flex>\n );\n};\n\nexport { FormLayout, FormLayoutProps };\n"],"names":["ResponsiveGridRoot","styled","Grid","Root","ResponsiveGridItem","process","env","NODE_ENV","Item","theme","breakpoints","medium","col","panelStyles","padding","initial","borderColor","background","hasRadius","shadow","FormLayout","layout","document","hasBackground","formatMessage","useIntl","modelUid","schema","uid","fieldValues","useForm","state","values","rulesEngine","createRulesEngine","getLabel","name","label","id","defaultMessage","_jsx","Flex","direction","alignItems","gap","large","map","panel","index","some","row","field","type","attribute","attributes","condition","conditions","visible","isVisible","evaluate","s","xs","InputRenderer","Box","gridRowIndex","visibleFields","filter","length","size"],"mappings":"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"}
|
|
@@ -6,9 +6,6 @@ import { useIntl } from 'react-intl';
|
|
|
6
6
|
import { styled } from 'styled-components';
|
|
7
7
|
import { InputRenderer as MemoizedInputRenderer } from './InputRenderer.mjs';
|
|
8
8
|
|
|
9
|
-
const RESPONSIVE_CONTAINER_BREAKPOINTS = {
|
|
10
|
-
sm: '27.5rem'
|
|
11
|
-
};
|
|
12
9
|
const ResponsiveGridRoot = styled(Grid.Root)`
|
|
13
10
|
container-type: inline-size;
|
|
14
11
|
`;
|
|
@@ -19,14 +16,17 @@ const ResponsiveGridItem = /**
|
|
|
19
16
|
* for failing to parse the stylesheet.
|
|
20
17
|
*/ process.env.NODE_ENV !== 'test' ? styled(Grid.Item)`
|
|
21
18
|
grid-column: span 12;
|
|
22
|
-
|
|
19
|
+
${({ theme })=>theme.breakpoints.medium} {
|
|
23
20
|
${({ col })=>col && `grid-column: span ${col};`}
|
|
24
21
|
}
|
|
25
22
|
` : styled(Grid.Item)`
|
|
26
23
|
grid-column: span 12;
|
|
27
24
|
`;
|
|
28
25
|
const panelStyles = {
|
|
29
|
-
padding:
|
|
26
|
+
padding: {
|
|
27
|
+
initial: 4,
|
|
28
|
+
medium: 6
|
|
29
|
+
},
|
|
30
30
|
borderColor: 'neutral150',
|
|
31
31
|
background: 'neutral0',
|
|
32
32
|
hasRadius: true,
|
|
@@ -46,7 +46,10 @@ const FormLayout = ({ layout, document, hasBackground = true })=>{
|
|
|
46
46
|
return /*#__PURE__*/ jsx(Flex, {
|
|
47
47
|
direction: "column",
|
|
48
48
|
alignItems: "stretch",
|
|
49
|
-
gap:
|
|
49
|
+
gap: {
|
|
50
|
+
initial: 4,
|
|
51
|
+
large: 6
|
|
52
|
+
},
|
|
50
53
|
children: layout.map((panel, index)=>{
|
|
51
54
|
if (panel.some((row)=>row.some((field)=>field.type === 'dynamiczone'))) {
|
|
52
55
|
const [row] = panel;
|
|
@@ -80,7 +83,10 @@ const FormLayout = ({ layout, document, hasBackground = true })=>{
|
|
|
80
83
|
children: /*#__PURE__*/ jsx(Flex, {
|
|
81
84
|
direction: "column",
|
|
82
85
|
alignItems: "stretch",
|
|
83
|
-
gap:
|
|
86
|
+
gap: {
|
|
87
|
+
initial: 4,
|
|
88
|
+
large: 6
|
|
89
|
+
},
|
|
84
90
|
children: panel.map((row, gridRowIndex)=>{
|
|
85
91
|
const visibleFields = row.filter(({ name })=>{
|
|
86
92
|
const attribute = document.schema?.attributes[name];
|
|
@@ -117,5 +123,5 @@ const FormLayout = ({ layout, document, hasBackground = true })=>{
|
|
|
117
123
|
});
|
|
118
124
|
};
|
|
119
125
|
|
|
120
|
-
export { FormLayout,
|
|
126
|
+
export { FormLayout, ResponsiveGridItem, ResponsiveGridRoot };
|
|
121
127
|
//# sourceMappingURL=FormLayout.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.mjs","sources":["../../../../../admin/src/pages/EditView/components/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { Box, BoxProps, Flex, Grid } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\nimport type { UseDocument } from '../../../hooks/useDocument';\n\nexport const
|
|
1
|
+
{"version":3,"file":"FormLayout.mjs","sources":["../../../../../admin/src/pages/EditView/components/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { Box, BoxProps, Flex, Grid } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\nimport type { UseDocument } from '../../../hooks/useDocument';\n\nexport const ResponsiveGridRoot = styled(Grid.Root)`\n container-type: inline-size;\n`;\n\nexport const ResponsiveGridItem =\n /**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\n process.env.NODE_ENV !== 'test'\n ? styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n ${({ theme }) => theme.breakpoints.medium} {\n ${({ col }) => col && `grid-column: span ${col};`}\n }\n `\n : styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n `;\n\nconst panelStyles = {\n padding: {\n initial: 4,\n medium: 6,\n },\n borderColor: 'neutral150',\n background: 'neutral0',\n hasRadius: true,\n shadow: 'tableShadow',\n} satisfies BoxProps;\n\ninterface FormLayoutProps extends Pick<EditLayout, 'layout'> {\n hasBackground?: boolean;\n document: ReturnType<UseDocument>;\n}\n\nconst FormLayout = ({ layout, document, hasBackground = true }: FormLayoutProps) => {\n const { formatMessage } = useIntl();\n const modelUid = document.schema?.uid;\n const fieldValues = useForm('Fields', (state) => state.values);\n const rulesEngine = createRulesEngine();\n\n const getLabel = (name: string, label: string) => {\n return formatMessage({\n id: `content-manager.content-types.${modelUid}.${name}`,\n defaultMessage: label,\n });\n };\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={{\n initial: 4,\n large: 6,\n }}\n >\n {layout.map((panel, index) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n const attribute = document.schema?.attributes[field.name];\n const condition = attribute?.conditions?.visible;\n\n if (condition) {\n const isVisible = rulesEngine.evaluate(condition, fieldValues);\n if (!isVisible) {\n return null; // Skip rendering the dynamic zone if the condition is not met\n }\n }\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box key={index} {...(hasBackground && panelStyles)}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={{\n initial: 4,\n large: 6,\n }}\n >\n {panel.map((row, gridRowIndex) => {\n const visibleFields = row.filter(({ name }) => {\n const attribute = document.schema?.attributes[name];\n const condition = attribute?.conditions?.visible;\n\n if (condition) {\n return rulesEngine.evaluate(condition, fieldValues);\n }\n\n return true;\n });\n\n if (visibleFields.length === 0) {\n return null; // Skip rendering the entire grid row\n }\n\n return (\n <ResponsiveGridRoot key={gridRowIndex} gap={4}>\n {visibleFields.map(({ size, ...field }) => {\n return (\n <ResponsiveGridItem\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n </Box>\n );\n })}\n </Flex>\n );\n};\n\nexport { FormLayout, FormLayoutProps };\n"],"names":["ResponsiveGridRoot","styled","Grid","Root","ResponsiveGridItem","process","env","NODE_ENV","Item","theme","breakpoints","medium","col","panelStyles","padding","initial","borderColor","background","hasRadius","shadow","FormLayout","layout","document","hasBackground","formatMessage","useIntl","modelUid","schema","uid","fieldValues","useForm","state","values","rulesEngine","createRulesEngine","getLabel","name","label","id","defaultMessage","_jsx","Flex","direction","alignItems","gap","large","map","panel","index","some","row","field","type","attribute","attributes","condition","conditions","visible","isVisible","evaluate","s","xs","InputRenderer","Box","gridRowIndex","visibleFields","filter","length","size"],"mappings":";;;;;;;;MAaaA,kBAAqBC,GAAAA,MAAAA,CAAOC,IAAKC,CAAAA,IAAI,CAAC;;AAEnD;MAEaC,kBACX;;;;;MAMAC,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,SACrBN,MAAOC,CAAAA,IAAAA,CAAKM,IAAI,CAAkB;;QAEhC,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,WAAW,CAACC,MAAM,CAAC;AACxC,UAAA,EAAE,CAAC,EAAEC,GAAG,EAAE,GAAKA,GAAAA,IAAO,CAAC,kBAAkB,EAAEA,GAAAA,CAAI,CAAC,CAAC;;AAErD,MAAA,CAAC,GACDX,MAAAA,CAAOC,IAAKM,CAAAA,IAAI,CAAkB;;AAElC,MAAA;AAEN,MAAMK,WAAc,GAAA;IAClBC,OAAS,EAAA;QACPC,OAAS,EAAA,CAAA;QACTJ,MAAQ,EAAA;AACV,KAAA;IACAK,WAAa,EAAA,YAAA;IACbC,UAAY,EAAA,UAAA;IACZC,SAAW,EAAA,IAAA;IACXC,MAAQ,EAAA;AACV,CAAA;AAOMC,MAAAA,UAAAA,GAAa,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,aAAgB,GAAA,IAAI,EAAmB,GAAA;IAC7E,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWJ,QAASK,CAAAA,MAAM,EAAEC,GAAAA;AAClC,IAAA,MAAMC,cAAcC,OAAQ,CAAA,QAAA,EAAU,CAACC,KAAAA,GAAUA,MAAMC,MAAM,CAAA;AAC7D,IAAA,MAAMC,WAAcC,GAAAA,iBAAAA,EAAAA;IAEpB,MAAMC,QAAAA,GAAW,CAACC,IAAcC,EAAAA,KAAAA,GAAAA;AAC9B,QAAA,OAAOb,aAAc,CAAA;AACnBc,YAAAA,EAAAA,EAAI,CAAC,8BAA8B,EAAEZ,QAAS,CAAA,CAAC,EAAEU,IAAM,CAAA,CAAA;YACvDG,cAAgBF,EAAAA;AAClB,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,qBACEG,GAACC,CAAAA,IAAAA,EAAAA;QACCC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,SAAA;QACXC,GAAK,EAAA;YACH7B,OAAS,EAAA,CAAA;YACT8B,KAAO,EAAA;AACT,SAAA;kBAECxB,MAAOyB,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;AAClB,YAAA,IAAID,KAAME,CAAAA,IAAI,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAID,IAAI,CAAC,CAACE,KAAAA,GAAUA,KAAMC,CAAAA,IAAI,KAAK,aAAiB,CAAA,CAAA,EAAA;gBAC1E,MAAM,CAACF,IAAI,GAAGH,KAAAA;gBACd,MAAM,CAACI,MAAM,GAAGD,GAAAA;gBAChB,MAAMG,SAAAA,GAAY/B,SAASK,MAAM,EAAE2B,UAAU,CAACH,KAAAA,CAAMf,IAAI,CAAC;gBACzD,MAAMmB,SAAAA,GAAYF,WAAWG,UAAYC,EAAAA,OAAAA;AAEzC,gBAAA,IAAIF,SAAW,EAAA;AACb,oBAAA,MAAMG,SAAYzB,GAAAA,WAAAA,CAAY0B,QAAQ,CAACJ,SAAW1B,EAAAA,WAAAA,CAAAA;AAClD,oBAAA,IAAI,CAAC6B,SAAW,EAAA;AACd,wBAAA,OAAO;AACT;AACF;gBAEA,qBACElB,GAAA,CAACtC,KAAKC,IAAI,EAAA;oBAAkByC,GAAK,EAAA,CAAA;4CAC/BJ,GAAA,CAACtC,KAAKM,IAAI,EAAA;wBAACI,GAAK,EAAA,EAAA;wBAAIgD,CAAG,EAAA,EAAA;wBAAIC,EAAI,EAAA,EAAA;wBAAInB,SAAU,EAAA,QAAA;wBAASC,UAAW,EAAA,SAAA;AAC/D,wBAAA,QAAA,gBAAAH,GAACsB,CAAAA,qBAAAA,EAAAA;AACE,4BAAA,GAAGX,KAAK;AACTd,4BAAAA,KAAAA,EAAOF,QAASgB,CAAAA,KAAAA,CAAMf,IAAI,EAAEe,MAAMd,KAAK,CAAA;4BACvCf,QAAUA,EAAAA;;;AALA6B,iBAAAA,EAAAA,KAAAA,CAAMf,IAAI,CAAA;AAU9B;AAEA,YAAA,qBACEI,GAACuB,CAAAA,GAAAA,EAAAA;AAAiB,gBAAA,GAAIxC,iBAAiBV,WAAW;AAChD,gBAAA,QAAA,gBAAA2B,GAACC,CAAAA,IAAAA,EAAAA;oBACCC,SAAU,EAAA,QAAA;oBACVC,UAAW,EAAA,SAAA;oBACXC,GAAK,EAAA;wBACH7B,OAAS,EAAA,CAAA;wBACT8B,KAAO,EAAA;AACT,qBAAA;8BAECE,KAAMD,CAAAA,GAAG,CAAC,CAACI,GAAKc,EAAAA,YAAAA,GAAAA;AACf,wBAAA,MAAMC,gBAAgBf,GAAIgB,CAAAA,MAAM,CAAC,CAAC,EAAE9B,IAAI,EAAE,GAAA;AACxC,4BAAA,MAAMiB,YAAY/B,QAASK,CAAAA,MAAM,EAAE2B,UAAU,CAAClB,IAAK,CAAA;4BACnD,MAAMmB,SAAAA,GAAYF,WAAWG,UAAYC,EAAAA,OAAAA;AAEzC,4BAAA,IAAIF,SAAW,EAAA;gCACb,OAAOtB,WAAAA,CAAY0B,QAAQ,CAACJ,SAAW1B,EAAAA,WAAAA,CAAAA;AACzC;4BAEA,OAAO,IAAA;AACT,yBAAA,CAAA;wBAEA,IAAIoC,aAAAA,CAAcE,MAAM,KAAK,CAAG,EAAA;AAC9B,4BAAA,OAAO;AACT;AAEA,wBAAA,qBACE3B,GAACxC,CAAAA,kBAAAA,EAAAA;4BAAsC4C,GAAK,EAAA,CAAA;AACzCqB,4BAAAA,QAAAA,EAAAA,aAAAA,CAAcnB,GAAG,CAAC,CAAC,EAAEsB,IAAI,EAAE,GAAGjB,KAAO,EAAA,GAAA;AACpC,gCAAA,qBACEX,GAACpC,CAAAA,kBAAAA,EAAAA;oCACCQ,GAAKwD,EAAAA,IAAAA;oCAELR,CAAG,EAAA,EAAA;oCACHC,EAAI,EAAA,EAAA;oCACJnB,SAAU,EAAA,QAAA;oCACVC,UAAW,EAAA,SAAA;AAEX,oCAAA,QAAA,gBAAAH,GAACsB,CAAAA,qBAAAA,EAAAA;AACE,wCAAA,GAAGX,KAAK;AACTd,wCAAAA,KAAAA,EAAOF,QAASgB,CAAAA,KAAAA,CAAMf,IAAI,EAAEe,MAAMd,KAAK,CAAA;wCACvCf,QAAUA,EAAAA;;AATP6B,iCAAAA,EAAAA,KAAAA,CAAMf,IAAI,CAAA;AAarB,6BAAA;AAlBuB4B,yBAAAA,EAAAA,YAAAA,CAAAA;AAqB7B,qBAAA;;AA/CMhB,aAAAA,EAAAA,KAAAA,CAAAA;AAmDd,SAAA;;AAGN;;;;"}
|