@plone/volto 18.0.0-alpha.3 → 18.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -0
- package/.eslintrc +3 -3
- package/.prettierignore +8 -0
- package/.prettierrc +12 -0
- package/{packages/registry/.release-it.json → .release-it.json} +12 -6
- package/CHANGELOG.md +50 -4
- package/package.json +60 -127
- package/razzle.config.js +4 -7
- package/src/components/manage/Add/Add.jsx +6 -0
- package/src/components/manage/BlockChooser/BlockChooser.jsx +3 -1
- package/src/components/manage/BlockChooser/BlockChooserButton.jsx +5 -0
- package/src/components/manage/Blocks/Block/BlocksForm.jsx +4 -0
- package/src/components/manage/Blocks/Block/DefaultEdit.jsx +3 -1
- package/src/components/manage/Blocks/Block/EditBlockWrapper.jsx +5 -0
- package/src/components/manage/Blocks/Block/Settings.jsx +10 -1
- package/src/components/manage/Blocks/Container/Data.jsx +4 -1
- package/src/components/manage/Blocks/HeroImageLeft/Data.jsx +3 -1
- package/src/components/manage/Blocks/Image/ImageSidebar.jsx +4 -1
- package/src/components/manage/Blocks/Listing/ListingData.jsx +4 -1
- package/src/components/manage/Blocks/Maps/MapsSidebar.jsx +3 -1
- package/src/components/manage/Blocks/Search/SearchBlockEdit.jsx +4 -0
- package/src/components/manage/Blocks/Teaser/Data.jsx +4 -1
- package/src/components/manage/Blocks/ToC/Edit.jsx +2 -0
- package/src/components/manage/Blocks/Video/VideoSidebar.jsx +3 -1
- package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.jsx +2 -2
- package/src/components/manage/Edit/Edit.jsx +1 -0
- package/src/components/manage/Form/Form.jsx +14 -3
- package/src/components/theme/Image/Image.jsx +4 -2
- package/src/components/theme/Image/Image.test.jsx +32 -0
- package/src/config/index.js +0 -4
- package/src/helpers/Blocks/Blocks.js +11 -2
- package/src/helpers/Extensions/withBlockSchemaEnhancer.js +20 -9
- package/src/helpers/Url/Url.js +5 -4
- package/src/helpers/Url/Url.test.js +52 -0
- package/src/icons/divide-horizontal.svg +0 -0
- package/src/icons/divide-vertical.svg +0 -0
- package/src/icons/hero.svg +0 -0
- package/src/icons/slider.svg +0 -0
- package/src/icons/summary.svg +0 -0
- package/src/middleware/api.js +1 -1
- package/theme/themes/default/elements/icon.overrides +0 -0
- package/theme/themes/default/globals/reset.overrides +0 -0
- package/theme/themes/default/globals/site.variables +0 -0
- package/theme/themes/default/modules/dropdown.overrides +0 -0
- package/theme/themes/default/modules/dropdown.variables +0 -0
- package/theme/themes/default/modules/modal.variables +0 -0
- package/theme/themes/default/modules/video.overrides +0 -0
- package/theme/themes/default/modules/video.variables +0 -0
- package/theme/themes/pastanaga/assets/fonts/icons.eot +0 -0
- package/theme/themes/pastanaga/assets/fonts/icons.svg +0 -0
- package/theme/themes/pastanaga/assets/fonts/icons.ttf +0 -0
- package/theme/themes/pastanaga/assets/fonts/icons.woff +0 -0
- package/theme/themes/pastanaga/globals/reset.overrides +0 -0
- package/theme/themes/pastanaga/globals/site.variables +0 -0
- package/theme/themes/pastanaga/modules/dropdown.variables +0 -0
- package/theme/themes/pastanaga/modules/modal.variables +0 -0
- package/theme/themes/pastanaga/modules/video.overrides +0 -0
- package/theme/themes/pastanaga/modules/video.variables +0 -0
- package/tsconfig.json +1 -4
- package/types/config/RichTextEditor/index.d.ts +5 -8
- package/types/helpers/AsyncConnect/index.d.ts +2 -2
- package/types/helpers/Extensions/withBlockSchemaEnhancer.d.ts +3 -1
- package/types/helpers/Url/Url.d.ts +3 -3
- package/types/icons/load-icons.d.ts +1 -1
- package/webpack-plugins/webpack-less-plugin.js +1 -0
- package/CODE_OF_CONDUCT.md +0 -13
- package/CONTRIBUTING.md +0 -7
- package/README.md +0 -154
- package/RELEASING.md +0 -73
- package/ROADMAP.md +0 -30
- package/SECURITY.md +0 -14
- package/apps/plone/node_modules/.bin/acorn +0 -17
- package/apps/plone/node_modules/.bin/addon +0 -17
- package/apps/plone/node_modules/.bin/autoprefixer +0 -17
- package/apps/plone/node_modules/.bin/browserslist +0 -17
- package/apps/plone/node_modules/.bin/build-storybook +0 -17
- package/apps/plone/node_modules/.bin/changelogupdater +0 -17
- package/apps/plone/node_modules/.bin/eslint +0 -17
- package/apps/plone/node_modules/.bin/eslint-config-prettier +0 -17
- package/apps/plone/node_modules/.bin/i18n +0 -17
- package/apps/plone/node_modules/.bin/jest +0 -17
- package/apps/plone/node_modules/.bin/lessc +0 -17
- package/apps/plone/node_modules/.bin/missdev +0 -17
- package/apps/plone/node_modules/.bin/prettier +0 -17
- package/apps/plone/node_modules/.bin/razzle +0 -17
- package/apps/plone/node_modules/.bin/server-test +0 -17
- package/apps/plone/node_modules/.bin/start-server-and-test +0 -17
- package/apps/plone/node_modules/.bin/start-storybook +0 -17
- package/apps/plone/node_modules/.bin/start-test +0 -17
- package/apps/plone/node_modules/.bin/storybook-server +0 -17
- package/apps/plone/node_modules/.bin/stylelint +0 -17
- package/apps/plone/node_modules/.bin/tlds +0 -17
- package/apps/plone/node_modules/.bin/ts-jest +0 -17
- package/apps/plone/node_modules/.bin/tsc +0 -17
- package/apps/plone/node_modules/.bin/tsserver +0 -17
- package/apps/plone/node_modules/.bin/uuid +0 -17
- package/apps/plone/node_modules/.bin/webpack +0 -17
- package/apps/plone/node_modules/.bin/webpack-dev-server +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/acorn +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/addon +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/browserslist +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/changelogupdater +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint-config-prettier +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/i18n +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/prettier +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/release-it +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/stylelint +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsc +0 -17
- package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsserver +0 -17
- package/logos/Logo.png +0 -0
- package/logos/VoltoLogoEra2-dark-mode.png +0 -0
- package/logos/VoltoLogoEra2.png +0 -0
- package/logos/volto-colorful.png +0 -0
- package/logos/volto-colorful.svg +0 -35
- package/logos/volto-guide.png +0 -0
- package/logos/volto-h-transparent.svg +0 -6
- package/logos/volto-transparent.png +0 -0
- package/logos/volto-transparent.svg +0 -19
- package/logos/volto-transparent2.svg +0 -5
- package/logos/volto-yellow.svg +0 -29
- package/logos/volto.sketch +0 -0
- package/packages/README.md +0 -7
- package/packages/registry/.towncrier/towncrier_template.jinja +0 -10
- package/packages/registry/CHANGELOG.md +0 -16
- package/packages/registry/README.md +0 -207
- package/packages/registry/addon-registry.js +0 -603
- package/packages/registry/create-addons-loader.js +0 -116
- package/packages/registry/create-theme-addons-loader.js +0 -78
- package/packages/registry/news/.gitkeep +0 -0
- package/packages/registry/node_modules/.bin/browserslist +0 -17
- package/packages/registry/node_modules/.bin/parcel +0 -17
- package/packages/registry/node_modules/.bin/release-it +0 -17
- package/packages/registry/node_modules/.bin/tsc +0 -17
- package/packages/registry/node_modules/.bin/tsserver +0 -17
- package/packages/registry/node_modules/.bin/vitest +0 -17
- package/packages/registry/package.json +0 -76
- package/packages/registry/src/index.ts +0 -174
- package/packages/registry/src/registry.test.js +0 -111
- package/packages/registry/tsconfig.json +0 -32
- package/packages/scripts/CHANGELOG.md +0 -173
- package/packages/scripts/README.md +0 -128
- package/packages/scripts/addon/consolidate.js +0 -28
- package/packages/scripts/addon/generators.js +0 -213
- package/packages/scripts/addon/getAddonInfo.js +0 -65
- package/packages/scripts/addon/index.js +0 -88
- package/packages/scripts/addon/utils.js +0 -44
- package/packages/scripts/backportpr.js +0 -75
- package/packages/scripts/changelogupdater.cjs +0 -94
- package/packages/scripts/corepackagebump.js +0 -20
- package/packages/scripts/i18n.cjs +0 -310
- package/packages/scripts/package.json +0 -76
- package/packages/scripts/templates/towncrier_template.jinja +0 -10
- package/packages/types/Blocks/View.ts +0 -11
- package/packages/types/actions.ts +0 -15
- package/packages/types/breadcrumbs.ts +0 -10
- package/packages/types/config/Blocks.ts +0 -153
- package/packages/types/config/Content.ts +0 -62
- package/packages/types/config/Settings.ts +0 -86
- package/packages/types/config/Views.ts +0 -15
- package/packages/types/config/Widgets.ts +0 -7
- package/packages/types/config/index.ts +0 -21
- package/packages/types/content/common.ts +0 -60
- package/packages/types/content/get.ts +0 -66
- package/packages/types/index.ts +0 -0
- package/packages/types/navigation.ts +0 -12
- package/packages/types/node_modules/.bin/browserslist +0 -17
- package/packages/types/node_modules/.bin/parcel +0 -17
- package/packages/types/node_modules/.bin/release-it +0 -17
- package/packages/types/node_modules/.bin/tsc +0 -17
- package/packages/types/node_modules/.bin/tsserver +0 -17
- package/packages/types/package.json +0 -64
- package/packages/types/types.ts +0 -61
- package/packages/volto-slate/.i18n.babel.config.js +0 -1
- package/packages/volto-slate/README.md +0 -4
- package/packages/volto-slate/build/messages/src/blocks/Table/TableBlockEdit.json +0 -90
- package/packages/volto-slate/build/messages/src/blocks/Text/DefaultTextBlockEditor.json +0 -6
- package/packages/volto-slate/build/messages/src/blocks/Text/DetachedTextBlockEditor.json +0 -6
- package/packages/volto-slate/build/messages/src/blocks/Text/SlashMenu.json +0 -6
- package/packages/volto-slate/build/messages/src/editor/plugins/AdvancedLink/index.json +0 -10
- package/packages/volto-slate/build/messages/src/editor/plugins/Link/index.json +0 -10
- package/packages/volto-slate/build/messages/src/editor/plugins/Table/index.json +0 -30
- package/packages/volto-slate/build/messages/src/elementEditor/messages.json +0 -10
- package/packages/volto-slate/build/messages/src/widgets/HtmlSlateWidget.json +0 -6
- package/packages/volto-slate/build/messages/src/widgets/RichTextWidgetView.json +0 -6
- package/packages/volto-slate/locales/de/LC_MESSAGES/volto.po +0 -148
- package/packages/volto-slate/locales/en/LC_MESSAGES/volto.po +0 -148
- package/packages/volto-slate/locales/volto.pot +0 -182
- package/packages/volto-slate/package.json +0 -43
- package/packages/volto-slate/src/actions/content.js +0 -30
- package/packages/volto-slate/src/actions/index.js +0 -3
- package/packages/volto-slate/src/actions/plugins.js +0 -9
- package/packages/volto-slate/src/actions/selection.js +0 -22
- package/packages/volto-slate/src/blocks/Table/Cell.jsx +0 -87
- package/packages/volto-slate/src/blocks/Table/Cell.test.js +0 -54
- package/packages/volto-slate/src/blocks/Table/TableBlockEdit.jsx +0 -694
- package/packages/volto-slate/src/blocks/Table/TableBlockEdit.test.js +0 -40
- package/packages/volto-slate/src/blocks/Table/TableBlockView.jsx +0 -150
- package/packages/volto-slate/src/blocks/Table/TableBlockView.test.js +0 -49
- package/packages/volto-slate/src/blocks/Table/deconstruct.js +0 -113
- package/packages/volto-slate/src/blocks/Table/extensions/normalizeTable.js +0 -5
- package/packages/volto-slate/src/blocks/Table/index.js +0 -60
- package/packages/volto-slate/src/blocks/Table/schema.js +0 -122
- package/packages/volto-slate/src/blocks/Text/DefaultTextBlockEditor.jsx +0 -304
- package/packages/volto-slate/src/blocks/Text/DetachedTextBlockEditor.jsx +0 -77
- package/packages/volto-slate/src/blocks/Text/MarkdownIntroduction.jsx +0 -59
- package/packages/volto-slate/src/blocks/Text/PluginSidebar.jsx +0 -18
- package/packages/volto-slate/src/blocks/Text/ShortcutListing.jsx +0 -28
- package/packages/volto-slate/src/blocks/Text/SlashMenu.jsx +0 -203
- package/packages/volto-slate/src/blocks/Text/TextBlockEdit.jsx +0 -38
- package/packages/volto-slate/src/blocks/Text/TextBlockEdit.test.js +0 -107
- package/packages/volto-slate/src/blocks/Text/TextBlockSchema.js +0 -54
- package/packages/volto-slate/src/blocks/Text/TextBlockView.jsx +0 -31
- package/packages/volto-slate/src/blocks/Text/css/editor.css +0 -18
- package/packages/volto-slate/src/blocks/Text/extensions/Readme.md +0 -49
- package/packages/volto-slate/src/blocks/Text/extensions/breakList.js +0 -100
- package/packages/volto-slate/src/blocks/Text/extensions/index.js +0 -6
- package/packages/volto-slate/src/blocks/Text/extensions/insertBreak.js +0 -57
- package/packages/volto-slate/src/blocks/Text/extensions/isSelected.js +0 -7
- package/packages/volto-slate/src/blocks/Text/extensions/normalizeExternalData.js +0 -7
- package/packages/volto-slate/src/blocks/Text/extensions/withDeserializers.js +0 -87
- package/packages/volto-slate/src/blocks/Text/extensions/withLists.js +0 -5
- package/packages/volto-slate/src/blocks/Text/index.js +0 -171
- package/packages/volto-slate/src/blocks/Text/keyboard/backspaceInList.js +0 -58
- package/packages/volto-slate/src/blocks/Text/keyboard/breakBlocks.js +0 -3
- package/packages/volto-slate/src/blocks/Text/keyboard/cancelEsc.js +0 -7
- package/packages/volto-slate/src/blocks/Text/keyboard/indentListItems.js +0 -240
- package/packages/volto-slate/src/blocks/Text/keyboard/index.js +0 -52
- package/packages/volto-slate/src/blocks/Text/keyboard/joinBlocks.js +0 -180
- package/packages/volto-slate/src/blocks/Text/keyboard/moveListItems.js +0 -124
- package/packages/volto-slate/src/blocks/Text/keyboard/slashMenu.js +0 -19
- package/packages/volto-slate/src/blocks/Text/keyboard/softBreak.js +0 -7
- package/packages/volto-slate/src/blocks/Text/keyboard/traverseBlocks.js +0 -81
- package/packages/volto-slate/src/blocks/Text/keyboard/unwrapEmptyString.js +0 -26
- package/packages/volto-slate/src/blocks/Text/schema.js +0 -39
- package/packages/volto-slate/src/constants.js +0 -123
- package/packages/volto-slate/src/editor/EditorContext.jsx +0 -5
- package/packages/volto-slate/src/editor/EditorReference.jsx +0 -22
- package/packages/volto-slate/src/editor/SlateEditor.jsx +0 -375
- package/packages/volto-slate/src/editor/config.jsx +0 -344
- package/packages/volto-slate/src/editor/decorate.js +0 -68
- package/packages/volto-slate/src/editor/deserialize.js +0 -185
- package/packages/volto-slate/src/editor/extensions/index.js +0 -6
- package/packages/volto-slate/src/editor/extensions/insertBreak.js +0 -15
- package/packages/volto-slate/src/editor/extensions/insertData.js +0 -159
- package/packages/volto-slate/src/editor/extensions/isInline.js +0 -14
- package/packages/volto-slate/src/editor/extensions/normalizeExternalData.js +0 -8
- package/packages/volto-slate/src/editor/extensions/normalizeNode.js +0 -48
- package/packages/volto-slate/src/editor/extensions/withDeserializers.js +0 -15
- package/packages/volto-slate/src/editor/extensions/withTestingFeatures.jsx +0 -84
- package/packages/volto-slate/src/editor/index.js +0 -14
- package/packages/volto-slate/src/editor/less/editor.less +0 -173
- package/packages/volto-slate/src/editor/less/globals.less +0 -18
- package/packages/volto-slate/src/editor/less/slate.less +0 -28
- package/packages/volto-slate/src/editor/plugins/AdvancedLink/deserialize.js +0 -90
- package/packages/volto-slate/src/editor/plugins/AdvancedLink/extensions.js +0 -32
- package/packages/volto-slate/src/editor/plugins/AdvancedLink/index.js +0 -50
- package/packages/volto-slate/src/editor/plugins/AdvancedLink/render.jsx +0 -37
- package/packages/volto-slate/src/editor/plugins/AdvancedLink/schema.js +0 -114
- package/packages/volto-slate/src/editor/plugins/AdvancedLink/styles.less +0 -8
- package/packages/volto-slate/src/editor/plugins/Blockquote/index.js +0 -30
- package/packages/volto-slate/src/editor/plugins/Callout/index.js +0 -34
- package/packages/volto-slate/src/editor/plugins/Image/deconstruct.js +0 -30
- package/packages/volto-slate/src/editor/plugins/Image/extensions.js +0 -51
- package/packages/volto-slate/src/editor/plugins/Image/index.js +0 -11
- package/packages/volto-slate/src/editor/plugins/Image/render.jsx +0 -22
- package/packages/volto-slate/src/editor/plugins/Link/extensions.js +0 -58
- package/packages/volto-slate/src/editor/plugins/Link/index.js +0 -164
- package/packages/volto-slate/src/editor/plugins/Link/render.jsx +0 -54
- package/packages/volto-slate/src/editor/plugins/Markdown/constants.js +0 -81
- package/packages/volto-slate/src/editor/plugins/Markdown/extensions.js +0 -334
- package/packages/volto-slate/src/editor/plugins/Markdown/index.js +0 -28
- package/packages/volto-slate/src/editor/plugins/Markdown/utils.js +0 -198
- package/packages/volto-slate/src/editor/plugins/StyleMenu/StyleMenu.jsx +0 -153
- package/packages/volto-slate/src/editor/plugins/StyleMenu/index.js +0 -19
- package/packages/volto-slate/src/editor/plugins/StyleMenu/style.less +0 -29
- package/packages/volto-slate/src/editor/plugins/StyleMenu/utils.js +0 -168
- package/packages/volto-slate/src/editor/plugins/Table/TableButton.jsx +0 -142
- package/packages/volto-slate/src/editor/plugins/Table/TableCell.jsx +0 -44
- package/packages/volto-slate/src/editor/plugins/Table/TableContainer.jsx +0 -37
- package/packages/volto-slate/src/editor/plugins/Table/TableSizePicker.jsx +0 -83
- package/packages/volto-slate/src/editor/plugins/Table/extensions.js +0 -87
- package/packages/volto-slate/src/editor/plugins/Table/index.js +0 -390
- package/packages/volto-slate/src/editor/plugins/Table/less/public.less +0 -29
- package/packages/volto-slate/src/editor/plugins/Table/less/table.less +0 -28
- package/packages/volto-slate/src/editor/plugins/Table/render.jsx +0 -30
- package/packages/volto-slate/src/editor/plugins/index.js +0 -19
- package/packages/volto-slate/src/editor/render.jsx +0 -224
- package/packages/volto-slate/src/editor/ui/BasicToolbar.jsx +0 -11
- package/packages/volto-slate/src/editor/ui/BlockButton.jsx +0 -31
- package/packages/volto-slate/src/editor/ui/ClearFormattingButton.jsx +0 -21
- package/packages/volto-slate/src/editor/ui/ExpandedToolbar.jsx +0 -18
- package/packages/volto-slate/src/editor/ui/Expando.jsx +0 -5
- package/packages/volto-slate/src/editor/ui/InlineToolbar.jsx +0 -73
- package/packages/volto-slate/src/editor/ui/MarkButton.jsx +0 -23
- package/packages/volto-slate/src/editor/ui/MarkElementButton.jsx +0 -30
- package/packages/volto-slate/src/editor/ui/Menu.jsx +0 -13
- package/packages/volto-slate/src/editor/ui/PositionedToolbar.jsx +0 -32
- package/packages/volto-slate/src/editor/ui/Separator.jsx +0 -7
- package/packages/volto-slate/src/editor/ui/SlateContextToolbar.jsx +0 -13
- package/packages/volto-slate/src/editor/ui/SlateToolbar.jsx +0 -96
- package/packages/volto-slate/src/editor/ui/Toolbar.jsx +0 -103
- package/packages/volto-slate/src/editor/ui/ToolbarButton.jsx +0 -33
- package/packages/volto-slate/src/editor/ui/ToolbarButton.test.js +0 -25
- package/packages/volto-slate/src/editor/ui/index.js +0 -15
- package/packages/volto-slate/src/editor/utils.js +0 -248
- package/packages/volto-slate/src/elementEditor/ContextButtons.jsx +0 -56
- package/packages/volto-slate/src/elementEditor/PluginEditor.jsx +0 -124
- package/packages/volto-slate/src/elementEditor/Readme.md +0 -6
- package/packages/volto-slate/src/elementEditor/SchemaProvider.jsx +0 -3
- package/packages/volto-slate/src/elementEditor/SidebarEditor.jsx +0 -46
- package/packages/volto-slate/src/elementEditor/ToolbarButton.jsx +0 -44
- package/packages/volto-slate/src/elementEditor/index.js +0 -5
- package/packages/volto-slate/src/elementEditor/makeInlineElementPlugin.js +0 -100
- package/packages/volto-slate/src/elementEditor/messages.js +0 -14
- package/packages/volto-slate/src/elementEditor/utils.js +0 -226
- package/packages/volto-slate/src/hooks/index.js +0 -3
- package/packages/volto-slate/src/hooks/useEditorContext.js +0 -6
- package/packages/volto-slate/src/hooks/useIsomorphicLayoutEffect.js +0 -7
- package/packages/volto-slate/src/hooks/useSelectionPosition.js +0 -25
- package/packages/volto-slate/src/i18n.js +0 -180
- package/packages/volto-slate/src/icons/hashlink.svg +0 -57
- package/packages/volto-slate/src/index.js +0 -61
- package/packages/volto-slate/src/reducers/content.js +0 -74
- package/packages/volto-slate/src/reducers/index.js +0 -3
- package/packages/volto-slate/src/reducers/plugins.js +0 -17
- package/packages/volto-slate/src/reducers/selection.js +0 -16
- package/packages/volto-slate/src/utils/blocks.js +0 -375
- package/packages/volto-slate/src/utils/blocks.test.js +0 -138
- package/packages/volto-slate/src/utils/editor.js +0 -31
- package/packages/volto-slate/src/utils/image.js +0 -25
- package/packages/volto-slate/src/utils/index.js +0 -11
- package/packages/volto-slate/src/utils/internals.js +0 -46
- package/packages/volto-slate/src/utils/lists.js +0 -92
- package/packages/volto-slate/src/utils/marks.js +0 -104
- package/packages/volto-slate/src/utils/mime-types.js +0 -24
- package/packages/volto-slate/src/utils/nodes.js +0 -4
- package/packages/volto-slate/src/utils/ops.js +0 -20
- package/packages/volto-slate/src/utils/random.js +0 -17
- package/packages/volto-slate/src/utils/selection.js +0 -236
- package/packages/volto-slate/src/utils/slate-string-utils.js +0 -408
- package/packages/volto-slate/src/utils/volto-blocks.js +0 -314
- package/packages/volto-slate/src/widgets/ErrorBoundary.jsx +0 -27
- package/packages/volto-slate/src/widgets/HtmlSlateWidget.jsx +0 -139
- package/packages/volto-slate/src/widgets/ObjectByTypeWidget.jsx +0 -49
- package/packages/volto-slate/src/widgets/RichTextWidget.jsx +0 -72
- package/packages/volto-slate/src/widgets/RichTextWidgetView.jsx +0 -37
- package/packages/volto-slate/src/widgets/style.css +0 -21
- package/types/components/manage/Blocks/Video/Body.test.d.ts +0 -1
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import ReactDOM from 'react-dom';
|
|
2
|
-
import { cloneDeep } from 'lodash';
|
|
3
|
-
import { serializeNodesToText } from '@plone/volto-slate/editor/render';
|
|
4
|
-
import { Editor } from 'slate';
|
|
5
|
-
import {
|
|
6
|
-
getPreviousVoltoBlock,
|
|
7
|
-
getNextVoltoBlock,
|
|
8
|
-
isCursorAtBlockStart,
|
|
9
|
-
isCursorAtBlockEnd,
|
|
10
|
-
mergeSlateWithBlockBackward,
|
|
11
|
-
mergeSlateWithBlockForward,
|
|
12
|
-
makeEditor,
|
|
13
|
-
} from '@plone/volto-slate/utils';
|
|
14
|
-
import {
|
|
15
|
-
changeBlock,
|
|
16
|
-
deleteBlock,
|
|
17
|
-
getBlocksFieldname,
|
|
18
|
-
getBlocksLayoutFieldname,
|
|
19
|
-
} from '@plone/volto/helpers';
|
|
20
|
-
/**
|
|
21
|
-
* Joins the current block (which has an active Slate Editor)
|
|
22
|
-
* with the previous block, to make a single block.
|
|
23
|
-
*
|
|
24
|
-
* @param {Editor} editor
|
|
25
|
-
* @param {KeyboardEvent} event
|
|
26
|
-
*/
|
|
27
|
-
export function joinWithPreviousBlock({ editor, event }) {
|
|
28
|
-
if (!isCursorAtBlockStart(editor)) return;
|
|
29
|
-
|
|
30
|
-
const blockProps = editor.getBlockProps();
|
|
31
|
-
const {
|
|
32
|
-
block,
|
|
33
|
-
index,
|
|
34
|
-
saveSlateBlockSelection,
|
|
35
|
-
onSelectBlock,
|
|
36
|
-
data,
|
|
37
|
-
properties,
|
|
38
|
-
onChangeField,
|
|
39
|
-
} = blockProps;
|
|
40
|
-
|
|
41
|
-
const blocksFieldname = getBlocksFieldname(properties);
|
|
42
|
-
const blocksLayoutFieldname = getBlocksLayoutFieldname(properties);
|
|
43
|
-
|
|
44
|
-
const prev = getPreviousVoltoBlock(index, properties);
|
|
45
|
-
if (!prev) return;
|
|
46
|
-
const [otherBlock = {}, otherBlockId] = prev;
|
|
47
|
-
|
|
48
|
-
// Don't join with required blocks
|
|
49
|
-
if (data?.required || otherBlock?.required || otherBlock['@type'] !== 'slate')
|
|
50
|
-
return;
|
|
51
|
-
|
|
52
|
-
event.stopPropagation();
|
|
53
|
-
event.preventDefault();
|
|
54
|
-
|
|
55
|
-
// If the Editor contains no characters TODO: clarify if this special case
|
|
56
|
-
// really needs to be handled or not. In `joinWithNextBlock` it is not
|
|
57
|
-
// handled.
|
|
58
|
-
const text = Editor.string(editor, []);
|
|
59
|
-
if (!text) {
|
|
60
|
-
const cursor = getBlockEndAsRange(otherBlock);
|
|
61
|
-
const newFormData = deleteBlock(properties, block);
|
|
62
|
-
|
|
63
|
-
ReactDOM.unstable_batchedUpdates(() => {
|
|
64
|
-
saveSlateBlockSelection(otherBlockId, cursor);
|
|
65
|
-
|
|
66
|
-
onChangeField(blocksFieldname, newFormData[blocksFieldname]);
|
|
67
|
-
onChangeField(blocksLayoutFieldname, newFormData[blocksLayoutFieldname]);
|
|
68
|
-
|
|
69
|
-
onSelectBlock(otherBlockId);
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Else the editor contains characters, so we merge the current block's
|
|
76
|
-
// `editor` with the block before, `otherBlock`.
|
|
77
|
-
const cursor = mergeSlateWithBlockBackward(editor, otherBlock);
|
|
78
|
-
|
|
79
|
-
const combined = JSON.parse(JSON.stringify(editor.children));
|
|
80
|
-
|
|
81
|
-
// // TODO: don't remove undo history, etc Should probably save both undo
|
|
82
|
-
// // histories, so that the blocks are split, the undos can be restored??
|
|
83
|
-
|
|
84
|
-
// const cursor = getBlockEndAsRange(otherBlock);
|
|
85
|
-
const formData = changeBlock(properties, otherBlockId, {
|
|
86
|
-
'@type': 'slate', // TODO: use a constant specified in src/constants.js instead of 'slate'
|
|
87
|
-
value: combined,
|
|
88
|
-
plaintext: serializeNodesToText(combined || []),
|
|
89
|
-
});
|
|
90
|
-
const newFormData = deleteBlock(formData, block);
|
|
91
|
-
|
|
92
|
-
ReactDOM.unstable_batchedUpdates(() => {
|
|
93
|
-
saveSlateBlockSelection(otherBlockId, cursor);
|
|
94
|
-
onChangeField(blocksFieldname, newFormData[blocksFieldname]);
|
|
95
|
-
onChangeField(blocksLayoutFieldname, newFormData[blocksLayoutFieldname]);
|
|
96
|
-
onSelectBlock(otherBlockId);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Joins the current block (which has the cursor) with the next block to make a
|
|
104
|
-
* single block.
|
|
105
|
-
* @param {Editor} editor
|
|
106
|
-
* @param {KeyboardEvent} event
|
|
107
|
-
*/
|
|
108
|
-
export function joinWithNextBlock({ editor, event }) {
|
|
109
|
-
if (!isCursorAtBlockEnd(editor)) return;
|
|
110
|
-
|
|
111
|
-
const blockProps = editor.getBlockProps();
|
|
112
|
-
const {
|
|
113
|
-
block,
|
|
114
|
-
index,
|
|
115
|
-
// saveSlateBlockSelection,
|
|
116
|
-
onSelectBlock,
|
|
117
|
-
data,
|
|
118
|
-
} = blockProps;
|
|
119
|
-
|
|
120
|
-
const { properties, onChangeField } = editor.getBlockProps();
|
|
121
|
-
const [otherBlock = {}, otherBlockId] = getNextVoltoBlock(index, properties);
|
|
122
|
-
|
|
123
|
-
// Don't join with required blocks
|
|
124
|
-
if (data?.required || otherBlock?.required || otherBlock['@type'] !== 'slate')
|
|
125
|
-
return;
|
|
126
|
-
|
|
127
|
-
event.stopPropagation();
|
|
128
|
-
event.preventDefault();
|
|
129
|
-
|
|
130
|
-
mergeSlateWithBlockForward(editor, otherBlock);
|
|
131
|
-
|
|
132
|
-
// const cursor = JSON.parse(JSON.stringify(editor.selection));
|
|
133
|
-
const combined = JSON.parse(JSON.stringify(editor.children));
|
|
134
|
-
|
|
135
|
-
// TODO: don't remove undo history, etc Should probably save both undo
|
|
136
|
-
// histories, so that the blocks are split, the undos can be restored??
|
|
137
|
-
|
|
138
|
-
const blocksFieldname = getBlocksFieldname(properties);
|
|
139
|
-
const blocksLayoutFieldname = getBlocksLayoutFieldname(properties);
|
|
140
|
-
|
|
141
|
-
const formData = changeBlock(properties, otherBlockId, {
|
|
142
|
-
// TODO: use a constant specified in src/constants.js instead of 'slate'
|
|
143
|
-
'@type': 'slate',
|
|
144
|
-
value: combined,
|
|
145
|
-
plaintext: serializeNodesToText(combined || []),
|
|
146
|
-
});
|
|
147
|
-
const newFormData = deleteBlock(formData, block);
|
|
148
|
-
|
|
149
|
-
ReactDOM.unstable_batchedUpdates(() => {
|
|
150
|
-
// saveSlateBlockSelection(otherBlockId, cursor);
|
|
151
|
-
onChangeField(blocksFieldname, newFormData[blocksFieldname]);
|
|
152
|
-
onChangeField(blocksLayoutFieldname, newFormData[blocksLayoutFieldname]);
|
|
153
|
-
onSelectBlock(otherBlockId);
|
|
154
|
-
});
|
|
155
|
-
return true;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* @param {object} block The Volto object representing the configuration and
|
|
160
|
-
* contents of a Volto Block of type Slate Text.
|
|
161
|
-
* @returns {Range} The collapsed Slate Range that represents the last position
|
|
162
|
-
* the text cursor can take inside the given block.
|
|
163
|
-
*/
|
|
164
|
-
function getBlockEndAsRange(block) {
|
|
165
|
-
const { value } = block;
|
|
166
|
-
const location = [value.length - 1]; // adress of root node
|
|
167
|
-
const editor = { children: value };
|
|
168
|
-
const newEditor = makeEditor();
|
|
169
|
-
newEditor.children = cloneDeep(editor.children);
|
|
170
|
-
const path = Editor.last(newEditor, location)[1]; // last Node in the block
|
|
171
|
-
// The last Text node (leaf node) entry inside the path computed just above.
|
|
172
|
-
const [leaf, leafpath] = Editor.leaf(newEditor, path);
|
|
173
|
-
// The offset of the Points in the collapsed Range computed below:
|
|
174
|
-
const offset = (leaf.text || '').length;
|
|
175
|
-
|
|
176
|
-
return {
|
|
177
|
-
anchor: { path: leafpath, offset },
|
|
178
|
-
focus: { path: leafpath, offset },
|
|
179
|
-
};
|
|
180
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { Editor, Path, Transforms, Node } from 'slate';
|
|
2
|
-
import { isCursorInList, getCurrentListItem } from '@plone/volto-slate/utils';
|
|
3
|
-
import config from '@plone/volto/registry';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Move up a list with with `Ctrl+Up`. (The Up key is supposed here to be
|
|
7
|
-
* pressed.)
|
|
8
|
-
* @param {Editor} Editor
|
|
9
|
-
* @param {KeyboardEvent} event
|
|
10
|
-
*/
|
|
11
|
-
export function moveListItemUp({ editor, event }) {
|
|
12
|
-
// If Ctrl is not pressed or the cursor is not in a list, do nothing.
|
|
13
|
-
if (!(event.ctrlKey && isCursorInList(editor))) return;
|
|
14
|
-
|
|
15
|
-
// Else prevent the default behavior of Slate, React and DOM and stop the
|
|
16
|
-
// propagation of this event.
|
|
17
|
-
const { anchor } = editor.selection;
|
|
18
|
-
const { slate } = config.settings;
|
|
19
|
-
|
|
20
|
-
event.preventDefault();
|
|
21
|
-
event.stopPropagation();
|
|
22
|
-
|
|
23
|
-
// Store the current list item's path.
|
|
24
|
-
const [, listItemPath] = getCurrentListItem(editor);
|
|
25
|
-
|
|
26
|
-
// Don't allow in first line list item Check if the current list item is first
|
|
27
|
-
// in its parent
|
|
28
|
-
if (
|
|
29
|
-
// If the selection starts at the beginning of a root-level block node
|
|
30
|
-
anchor.path.slice(1).reduce((acc, n) => acc + n, 0) === 0 ||
|
|
31
|
-
// or the current list item is the first in the list that contains it
|
|
32
|
-
listItemPath[listItemPath.length - 1] === 0
|
|
33
|
-
) {
|
|
34
|
-
// Mark the event as handled and do nothing.
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Take the Node in the selection that is LI and is farthest-from-root.
|
|
39
|
-
const [match] = Editor.nodes(editor, {
|
|
40
|
-
match: (n) => n.type === slate.listItemType,
|
|
41
|
-
// Explanation of the three modes:
|
|
42
|
-
// * 'all' - take all the nodes from the root Editor node to the selected
|
|
43
|
-
// leaf Text node
|
|
44
|
-
// * 'highest' - take the root Editor node (if there is a selection, in case
|
|
45
|
-
// no `at` option is given)
|
|
46
|
-
// * 'lowest' - take the farthest-from-root selected leaf Text node
|
|
47
|
-
// (Replace the "leaf Text node" expressions in the above list with
|
|
48
|
-
// whatever matching function you use.)
|
|
49
|
-
mode: 'lowest',
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
// Get the Path of the above-found Node.
|
|
53
|
-
const [, at] = match;
|
|
54
|
-
|
|
55
|
-
// Get the Path that represents the previous sibling node of the Path above.
|
|
56
|
-
// TODO: handle the exception that this can throw, when `at` has the last
|
|
57
|
-
// number in it a `0`. This case is possible because the condition above that
|
|
58
|
-
// uses the Array.prototype.reduce method checks only the sum but the last 2
|
|
59
|
-
// items can be [2, 0], their sum is 2 but the last item is 0, so the
|
|
60
|
-
// exception is thrown.
|
|
61
|
-
const to = Path.previous(at);
|
|
62
|
-
|
|
63
|
-
// If the Path does not exist, mark the event as handled and do nothing.
|
|
64
|
-
if (!Node.has(editor, to)) return true;
|
|
65
|
-
|
|
66
|
-
// Move the Node in the selection that is LI and is farthest-from-root to the
|
|
67
|
-
// existing Path just before its current location.
|
|
68
|
-
Transforms.moveNodes(editor, { at, to });
|
|
69
|
-
|
|
70
|
-
// Mark the event as handled.
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Move down a list with with `Ctrl+Down`. (The Down key is supposed here to be
|
|
76
|
-
* pressed.)
|
|
77
|
-
* @param {Editor} Editor
|
|
78
|
-
* @param {KeyboardEvent} event
|
|
79
|
-
*/
|
|
80
|
-
export function moveListItemDown({ editor, event }) {
|
|
81
|
-
// If Ctrl is not pressed or the cursor is not in a list, do nothing.
|
|
82
|
-
if (!event.ctrlKey) return;
|
|
83
|
-
if (!isCursorInList(editor)) return false;
|
|
84
|
-
|
|
85
|
-
// Else
|
|
86
|
-
const { slate } = config.settings;
|
|
87
|
-
|
|
88
|
-
// Take the Node in the selection that is LI and is farthest-from-root.
|
|
89
|
-
const [match] = Editor.nodes(editor, {
|
|
90
|
-
// Explanation of the three modes:
|
|
91
|
-
// * 'all' - take all the nodes from the root Editor node to the selected
|
|
92
|
-
// leaf Text node
|
|
93
|
-
// * 'highest' - take the root Editor node (if there is a selection, in case
|
|
94
|
-
// no `at` option is given)
|
|
95
|
-
// * 'lowest' - take the farthest-from-root selected leaf Text node
|
|
96
|
-
// (Replace the "leaf Text node" expressions in the above list with
|
|
97
|
-
// whatever matching function you use.)
|
|
98
|
-
match: (n) => n.type === slate.listItemType,
|
|
99
|
-
reverse: true,
|
|
100
|
-
mode: 'lowest',
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
// Get the Path of the above-found Node.
|
|
104
|
-
const [, at] = match;
|
|
105
|
-
|
|
106
|
-
// Get the Path that represents the next sibling node of the Path above.
|
|
107
|
-
const to = Path.next(at);
|
|
108
|
-
|
|
109
|
-
// Prevent the default behavior of Slate, React and DOM and stop the
|
|
110
|
-
// propagation of this event.
|
|
111
|
-
event.preventDefault();
|
|
112
|
-
event.stopPropagation();
|
|
113
|
-
|
|
114
|
-
// If the Path does not exist, mark the event as handled and do nothing.
|
|
115
|
-
if (!Node.has(editor, to)) return true;
|
|
116
|
-
|
|
117
|
-
// Move the Node in the selection that is LI and is farthest-from-root to the
|
|
118
|
-
// existing Path just after its current location, if there is a place for it
|
|
119
|
-
// at the same depth.
|
|
120
|
-
Transforms.moveNodes(editor, { at, to });
|
|
121
|
-
|
|
122
|
-
// Mark the event as handled.
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export const slashMenu = ({ editor, event }) => {
|
|
2
|
-
if (!editor.showSlashMenu) return;
|
|
3
|
-
|
|
4
|
-
const { slashArrowUp, slashArrowDown, slashEnter } = editor;
|
|
5
|
-
|
|
6
|
-
const handlers = {
|
|
7
|
-
ArrowUp: slashArrowUp,
|
|
8
|
-
ArrowDown: slashArrowDown,
|
|
9
|
-
Enter: slashEnter,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const handler = handlers[event.key];
|
|
13
|
-
if (handler) {
|
|
14
|
-
event.preventDefault();
|
|
15
|
-
handler();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return true;
|
|
19
|
-
};
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Node } from 'slate';
|
|
2
|
-
import {
|
|
3
|
-
isCursorAtBlockStart,
|
|
4
|
-
isCursorAtBlockEnd,
|
|
5
|
-
getNextVoltoBlock,
|
|
6
|
-
getPreviousVoltoBlock,
|
|
7
|
-
createDefaultBlock,
|
|
8
|
-
} from '@plone/volto-slate/utils';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* goUp.
|
|
12
|
-
*
|
|
13
|
-
* @param {}
|
|
14
|
-
*/
|
|
15
|
-
export function goUp({ editor, event }) {
|
|
16
|
-
if (isCursorAtBlockStart(editor)) {
|
|
17
|
-
const props = editor.getBlockProps();
|
|
18
|
-
const { onFocusPreviousBlock, block, blockNode } = props;
|
|
19
|
-
|
|
20
|
-
// const { formContext } = editor;
|
|
21
|
-
// const properties = formContext.contextData.formData;
|
|
22
|
-
const { properties } = editor.getBlockProps();
|
|
23
|
-
|
|
24
|
-
const prev = getPreviousVoltoBlock(props.index, properties);
|
|
25
|
-
if (!prev || prev[0]?.['@type'] !== 'slate')
|
|
26
|
-
return onFocusPreviousBlock(block, blockNode.current);
|
|
27
|
-
|
|
28
|
-
const [slateBlock, id] = prev;
|
|
29
|
-
const pseudoEditor = {
|
|
30
|
-
children: slateBlock.value || [createDefaultBlock()],
|
|
31
|
-
};
|
|
32
|
-
const match = Node.last(pseudoEditor, []);
|
|
33
|
-
if (!match) return onFocusPreviousBlock(block, blockNode.current);
|
|
34
|
-
|
|
35
|
-
const [node, path] = match;
|
|
36
|
-
const point = { path, offset: (node?.text || '').length };
|
|
37
|
-
const selection = { anchor: point, focus: point };
|
|
38
|
-
props.saveSlateBlockSelection(id, selection);
|
|
39
|
-
return onFocusPreviousBlock(block, blockNode.current);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* goDown.
|
|
45
|
-
*
|
|
46
|
-
* @param {}
|
|
47
|
-
*/
|
|
48
|
-
export function goDown({ editor, event }) {
|
|
49
|
-
if (isCursorAtBlockEnd(editor)) {
|
|
50
|
-
const props = editor.getBlockProps();
|
|
51
|
-
const { onFocusNextBlock, block, blockNode } = props;
|
|
52
|
-
|
|
53
|
-
// const { formContext } = editor;
|
|
54
|
-
// const properties = formContext.contextData.formData;
|
|
55
|
-
const { properties } = editor.getBlockProps();
|
|
56
|
-
|
|
57
|
-
const next = getNextVoltoBlock(props.index, properties);
|
|
58
|
-
if (!next || next[0]?.['@type'] !== 'slate')
|
|
59
|
-
return onFocusNextBlock(block, blockNode.current);
|
|
60
|
-
|
|
61
|
-
const [slateBlock, id] = next;
|
|
62
|
-
const pseudoEditor = {
|
|
63
|
-
children: slateBlock.value || [createDefaultBlock()],
|
|
64
|
-
};
|
|
65
|
-
const match = Node.first(pseudoEditor, []);
|
|
66
|
-
if (!match) return onFocusNextBlock(block, blockNode.current);
|
|
67
|
-
|
|
68
|
-
const path = match[1];
|
|
69
|
-
const point = { path, offset: 0 };
|
|
70
|
-
const selection = { anchor: point, focus: point };
|
|
71
|
-
props.saveSlateBlockSelection(id, selection);
|
|
72
|
-
return onFocusNextBlock(block, blockNode.current);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export function traverseBlocks(opts) {
|
|
77
|
-
const { event } = opts;
|
|
78
|
-
event.preventDefault();
|
|
79
|
-
// return event.shiftKey ? goUp(opts) : goDown(opts);
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Node } from 'slate';
|
|
2
|
-
import {
|
|
3
|
-
_unwrapElement,
|
|
4
|
-
_getActiveElement,
|
|
5
|
-
} from '@plone/volto-slate/elementEditor/utils';
|
|
6
|
-
import config from '@plone/volto/registry';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Handles empty string cases in the given `editor`.
|
|
10
|
-
* It will unwrap empty strings for any major type (ex: a, mentions, footnote, zotero).
|
|
11
|
-
* @param {Editor} editor
|
|
12
|
-
* @param {Event} event
|
|
13
|
-
*/
|
|
14
|
-
export function unwrapEmptyString(props) {
|
|
15
|
-
const { nodeTypesToHighlight } = config.settings.slate;
|
|
16
|
-
const uniqueNodeTypesToHighligh = [...new Set(nodeTypesToHighlight)];
|
|
17
|
-
const getActiveElement = _getActiveElement(uniqueNodeTypesToHighligh);
|
|
18
|
-
const unwrapElement = _unwrapElement(uniqueNodeTypesToHighligh);
|
|
19
|
-
|
|
20
|
-
const { editor } = props;
|
|
21
|
-
const actEl = getActiveElement(editor);
|
|
22
|
-
|
|
23
|
-
if (actEl && Node.string(actEl[0]).length === 1) {
|
|
24
|
-
unwrapElement(editor);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const TextBlockSchema = (data) => {
|
|
2
|
-
const { override_toc } = data;
|
|
3
|
-
return {
|
|
4
|
-
title: 'Advanced settings',
|
|
5
|
-
fieldsets: [
|
|
6
|
-
{
|
|
7
|
-
id: 'default',
|
|
8
|
-
title: 'Default',
|
|
9
|
-
fields: [
|
|
10
|
-
'override_toc',
|
|
11
|
-
...(override_toc ? ['level', 'entry_text'] : []),
|
|
12
|
-
],
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
properties: {
|
|
16
|
-
override_toc: {
|
|
17
|
-
title: 'Override TOC entry',
|
|
18
|
-
type: 'boolean',
|
|
19
|
-
},
|
|
20
|
-
level: {
|
|
21
|
-
title: 'TOC entry level',
|
|
22
|
-
choices: [
|
|
23
|
-
['h1', 'h1'],
|
|
24
|
-
['h2', 'h2'],
|
|
25
|
-
['h3', 'h3'],
|
|
26
|
-
['h4', 'h4'],
|
|
27
|
-
['h5', 'h5'],
|
|
28
|
-
['h6', 'h6'],
|
|
29
|
-
],
|
|
30
|
-
},
|
|
31
|
-
entry_text: {
|
|
32
|
-
title: 'Entry text for TOC',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
required: [],
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export default TextBlockSchema;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
// action types
|
|
2
|
-
export const SAVE_SLATE_BLOCK_SELECTION = 'SAVE_SLATE_BLOCK_SELECTION';
|
|
3
|
-
export const SLATE_PLUGINS = 'SLATE_PLUGINS';
|
|
4
|
-
export const UPLOAD_CONTENT = 'UPLOAD_CONTENT';
|
|
5
|
-
|
|
6
|
-
// element 'types'. Useful to identify element types across codebase
|
|
7
|
-
export const IMAGE = 'img';
|
|
8
|
-
// export const FOOTNOTE = 'footnote';
|
|
9
|
-
export const LINK = 'a';
|
|
10
|
-
export const SIMPLELINK = 'link';
|
|
11
|
-
|
|
12
|
-
export const TABLE = 'table';
|
|
13
|
-
export const THEAD = 'thead';
|
|
14
|
-
export const TBODY = 'tbody';
|
|
15
|
-
export const TFOOT = 'tbody';
|
|
16
|
-
export const TR = 'tr';
|
|
17
|
-
export const TH = 'th';
|
|
18
|
-
export const TD = 'td';
|
|
19
|
-
|
|
20
|
-
export const P = 'p';
|
|
21
|
-
|
|
22
|
-
export const LI = 'li';
|
|
23
|
-
export const UL = 'ul';
|
|
24
|
-
export const OL = 'ol';
|
|
25
|
-
|
|
26
|
-
// dom parsing node information
|
|
27
|
-
export const TEXT_NODE = 3;
|
|
28
|
-
export const ELEMENT_NODE = 1;
|
|
29
|
-
export const COMMENT = 8;
|
|
30
|
-
|
|
31
|
-
export const INLINE_ELEMENTS = [
|
|
32
|
-
'A',
|
|
33
|
-
'ABBR',
|
|
34
|
-
'ACRONYM',
|
|
35
|
-
'AUDIO',
|
|
36
|
-
'B',
|
|
37
|
-
'BDI',
|
|
38
|
-
'BDO',
|
|
39
|
-
'BIG',
|
|
40
|
-
'BR',
|
|
41
|
-
'BUTTON',
|
|
42
|
-
'CANVAS',
|
|
43
|
-
'CITE',
|
|
44
|
-
'CODE',
|
|
45
|
-
'DATA',
|
|
46
|
-
'DATALIST',
|
|
47
|
-
'DEL',
|
|
48
|
-
'DFN',
|
|
49
|
-
'EM',
|
|
50
|
-
'EMBED',
|
|
51
|
-
'I',
|
|
52
|
-
'IFRAME',
|
|
53
|
-
'IMG',
|
|
54
|
-
'INPUT',
|
|
55
|
-
'INS',
|
|
56
|
-
'KBD',
|
|
57
|
-
'LABEL',
|
|
58
|
-
'MAP',
|
|
59
|
-
'MARK',
|
|
60
|
-
'METER',
|
|
61
|
-
'NOSCRIPT',
|
|
62
|
-
'OBJECT',
|
|
63
|
-
'OUTPUT',
|
|
64
|
-
'PICTURE',
|
|
65
|
-
'PROGRESS',
|
|
66
|
-
'Q',
|
|
67
|
-
'RUBY',
|
|
68
|
-
'S',
|
|
69
|
-
'SAMP',
|
|
70
|
-
'SCRIPT',
|
|
71
|
-
'SELECT',
|
|
72
|
-
'SLOT',
|
|
73
|
-
'SMALL',
|
|
74
|
-
'SPAN',
|
|
75
|
-
'STRONG',
|
|
76
|
-
'SUB',
|
|
77
|
-
'SUP',
|
|
78
|
-
'SVG',
|
|
79
|
-
'TEMPLATE',
|
|
80
|
-
'TEXTAREA',
|
|
81
|
-
'TIME',
|
|
82
|
-
'U',
|
|
83
|
-
'TT',
|
|
84
|
-
'VAR',
|
|
85
|
-
'VIDEO',
|
|
86
|
-
'WBR',
|
|
87
|
-
];
|
|
88
|
-
|
|
89
|
-
export const BLOCK_ELEMENTS = [
|
|
90
|
-
'ADDRESS',
|
|
91
|
-
'ARTICLE',
|
|
92
|
-
'ASIDE',
|
|
93
|
-
'BLOCKQUOTE',
|
|
94
|
-
'DETAILS',
|
|
95
|
-
'DIALOG',
|
|
96
|
-
'DD',
|
|
97
|
-
'DIV',
|
|
98
|
-
'DL',
|
|
99
|
-
'DT',
|
|
100
|
-
'FIELDSET',
|
|
101
|
-
'FIGCAPTION',
|
|
102
|
-
'FIGURE',
|
|
103
|
-
'FOOTER',
|
|
104
|
-
'FORM',
|
|
105
|
-
'H1',
|
|
106
|
-
'H2',
|
|
107
|
-
'H3',
|
|
108
|
-
'H4',
|
|
109
|
-
'H5',
|
|
110
|
-
'H6',
|
|
111
|
-
'HEADER',
|
|
112
|
-
'HGROUP',
|
|
113
|
-
'HR',
|
|
114
|
-
'LI',
|
|
115
|
-
'MAIN',
|
|
116
|
-
'NAV',
|
|
117
|
-
'OL',
|
|
118
|
-
'P',
|
|
119
|
-
'PRE',
|
|
120
|
-
'SECTION',
|
|
121
|
-
'TABLE',
|
|
122
|
-
'UL',
|
|
123
|
-
];
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react'; // , useState
|
|
2
|
-
import { useSlate } from 'slate-react';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* A component that can lift the editor to higher level
|
|
6
|
-
*
|
|
7
|
-
* Use like:
|
|
8
|
-
* <SlateEditor ...><EditorReference onHasEditor=((editor) =>
|
|
9
|
-
* this.setState({editor}) /></SlateEditor>
|
|
10
|
-
*
|
|
11
|
-
* With this you have access to the Slate editor "out of tree".
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
const EditorReference = ({ onHasEditor }) => {
|
|
15
|
-
const editor = useSlate();
|
|
16
|
-
React.useEffect(() => {
|
|
17
|
-
onHasEditor(editor);
|
|
18
|
-
}, [onHasEditor, editor]);
|
|
19
|
-
return null;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default EditorReference;
|