@worktile/theia 15.3.2 → 16.0.0
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/components/contextmenu/contextmenu.component.d.ts +1 -1
- package/components/conversion-hint/conversion-hint.component.d.ts +3 -3
- package/components/inline-toolbar/inline-toolbar.component.d.ts +3 -4
- package/components/listbox/listbox.d.ts +3 -3
- package/components/plugin-menu/plugin-menu.component.d.ts +4 -3
- package/components/table-select/table-select.component.d.ts +1 -1
- package/components/template/template.component.d.ts +2 -2
- package/components/toolbar/toolbar.component.d.ts +4 -4
- package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +2 -2
- package/components/toolbar-group/toolbar-group.component.d.ts +5 -6
- package/constants/default.d.ts +1 -1
- package/core/toolbar-item/base-toolbar-item.d.ts +6 -7
- package/core/utils/plugin-menu.d.ts +2 -2
- package/editor.component.d.ts +1 -1
- package/editor.module.d.ts +1 -1
- package/{esm2020 → esm2022}/components/action/prevent-default.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/column-resize-notifier.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/column-resize.directive.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/column-resize.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/column-resize/event-dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/overlay-handle.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/resizing.store.mjs +4 -4
- package/{esm2020 → esm2022}/components/contextmenu/contextmenu.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/conversion-hint/conversion-hint.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/element/element.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/inline-toolbar/inline-toolbar.component.mjs +6 -6
- package/esm2022/components/listbox/listbox.mjs +375 -0
- package/esm2022/components/plugin-menu/plugin-menu.component.mjs +191 -0
- package/{esm2020 → esm2022}/components/table-select/table-select.component.mjs +4 -4
- package/esm2022/components/template/template.component.mjs +62 -0
- package/{esm2020 → esm2022}/components/text/text.component.mjs +4 -4
- package/esm2022/components/toolbar/toolbar.component.mjs +266 -0
- package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +144 -0
- package/esm2022/components/toolbar-group/toolbar-group.component.mjs +122 -0
- package/{esm2020 → esm2022}/components/toolbar-item/toolbar-item.component.mjs +6 -6
- package/esm2022/constants/auto-format-rules.mjs +167 -0
- package/{esm2020 → esm2022}/constants/default.mjs +2 -2
- package/esm2022/constants/plugin-menu.mjs +328 -0
- package/esm2022/core/toolbar-item/base-toolbar-item.mjs +87 -0
- package/{esm2020 → esm2022}/core/utils/combine-plugins.mjs +1 -1
- package/esm2022/core/utils/plugin-menu.mjs +33 -0
- package/esm2022/custom-types.mjs +2 -0
- package/{esm2020 → esm2022}/editor.component.mjs +11 -11
- package/esm2022/editor.module.mjs +254 -0
- package/esm2022/interfaces/auto-format.mjs +2 -0
- package/esm2022/interfaces/editor.mjs +25 -0
- package/esm2022/interfaces/plugins/plugin-menu.mjs +19 -0
- package/esm2022/interfaces/plugins/with-override.mjs +2 -0
- package/esm2022/interfaces/reset-block-type-plugin-options.mjs +2 -0
- package/esm2022/interfaces/toolbar.mjs +12 -0
- package/{esm2020 → esm2022}/interfaces/view-base.mjs +4 -4
- package/esm2022/pipes.mjs +42 -0
- package/esm2022/plugins/align/align.editor.mjs +43 -0
- package/esm2022/plugins/align/align.plugin.mjs +64 -0
- package/{esm2020 → esm2022}/plugins/autoformat/autoformat.plugin.mjs +1 -1
- package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +14 -0
- package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +78 -0
- package/esm2022/plugins/blockquote/blockquote.component.mjs +21 -0
- package/esm2022/plugins/blockquote/blockquote.editor.mjs +17 -0
- package/esm2022/plugins/blockquote/blockquote.plugin.mjs +85 -0
- package/{esm2020 → esm2022}/plugins/code/code.component.mjs +4 -4
- package/esm2022/plugins/code/code.editor.mjs +48 -0
- package/{esm2020 → esm2022}/plugins/code/code.plugin.mjs +1 -1
- package/esm2022/plugins/color/color.editor.mjs +27 -0
- package/{esm2020 → esm2022}/plugins/color/toolbar-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/common/block-card.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/common/common.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/common/get-fragment.plugin.mjs +1 -1
- package/esm2022/plugins/common/history.plugin.mjs +31 -0
- package/{esm2020 → esm2022}/plugins/common/insert-data-by-invalid-type.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/common/move-selection.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/common/remove-empty.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/common/remove-void.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/common/reset-type.plugin.mjs +1 -1
- package/esm2022/plugins/common/transforms.plugin.mjs +18 -0
- package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +53 -0
- package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +130 -0
- package/esm2022/plugins/font-size/font-size.editor.mjs +98 -0
- package/esm2022/plugins/heading/heading.editor.mjs +54 -0
- package/esm2022/plugins/heading/heading.plugin.mjs +136 -0
- package/{esm2020 → esm2022}/plugins/hr/hr.component.mjs +6 -6
- package/esm2022/plugins/hr/hr.editor.mjs +16 -0
- package/esm2022/plugins/hr/hr.plugin.mjs +56 -0
- package/esm2022/plugins/image/image.component.mjs +420 -0
- package/esm2022/plugins/image/image.editor.mjs +81 -0
- package/esm2022/plugins/indent/indent.editor.mjs +78 -0
- package/{esm2020 → esm2022}/plugins/indent/indent.plugin.mjs +1 -1
- package/esm2022/plugins/indent/on-keydown-indent.mjs +59 -0
- package/esm2022/plugins/inline-code/inline-code.component.mjs +26 -0
- package/esm2022/plugins/inline-code/inline-code.editor.mjs +48 -0
- package/esm2022/plugins/inline-code/inline-code.plugin.mjs +66 -0
- package/esm2022/plugins/link/edit/link-edit.component.mjs +103 -0
- package/{esm2020 → esm2022}/plugins/link/hover/link-hover.component.mjs +4 -4
- package/esm2022/plugins/link/link.component.mjs +167 -0
- package/esm2022/plugins/link/link.editor.mjs +66 -0
- package/{esm2020 → esm2022}/plugins/link/link.plugin.mjs +1 -1
- package/esm2022/plugins/list/components/bulleted-list.component.mjs +33 -0
- package/esm2022/plugins/list/components/list-item.component.mjs +93 -0
- package/esm2022/plugins/list/components/numbered-list.component.mjs +39 -0
- package/esm2022/plugins/list/list.editor.mjs +126 -0
- package/esm2022/plugins/list/list.plugin.mjs +312 -0
- package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +39 -0
- package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +18 -0
- package/esm2022/plugins/list/normalizers/normalize-no.mjs +43 -0
- package/esm2022/plugins/list/on-key-down-list.mjs +33 -0
- package/esm2022/plugins/list/queries/get-list-item-entry.mjs +28 -0
- package/esm2022/plugins/list/queries/get-start-list-item.mjs +27 -0
- package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +27 -0
- package/esm2022/plugins/list/queries/is-in-list.mjs +6 -0
- package/esm2022/plugins/list/queries/is-list-nested.mjs +10 -0
- package/esm2022/plugins/list/queries/is-list.mjs +5 -0
- package/{esm2020 → esm2022}/plugins/list/queries/is-node-type-list.mjs +1 -1
- package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +13 -0
- package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +17 -0
- package/{esm2020 → esm2022}/plugins/list/queries/is-single-list-item.mjs +1 -1
- package/esm2022/plugins/list/transforms/insert-list-data.mjs +72 -0
- package/esm2022/plugins/list/transforms/insert-list-item.mjs +72 -0
- package/esm2022/plugins/list/transforms/move-list-item-down.mjs +41 -0
- package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +43 -0
- package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +30 -0
- package/esm2022/plugins/list/transforms/move-list-item-up.mjs +78 -0
- package/esm2022/plugins/list/transforms/unwrap-list.mjs +10 -0
- package/esm2022/plugins/mark/mark.editor.mjs +28 -0
- package/{esm2020 → esm2022}/plugins/mark/mark.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/mention/mention.editor.mjs +1 -1
- package/esm2022/plugins/mention/mention.plugin.mjs +91 -0
- package/{esm2020 → esm2022}/plugins/mention/suggestion.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/node-id/node-id.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/normalizers/insert-paragraph-nodes.mjs +1 -1
- package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +18 -0
- package/{esm2020 → esm2022}/plugins/normalizers/trailing-node.plugin.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/paint-format/paint-format.editor.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/quick-insert/components/quick-insert.component.mjs +4 -4
- package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +68 -0
- package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +104 -0
- package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +104 -0
- package/{esm2020 → esm2022}/plugins/table/components/row/row.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/table/components/table.component.mjs +16 -16
- package/{esm2020 → esm2022}/plugins/table/components/td/td.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-options.component.mjs +6 -6
- package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +189 -0
- package/esm2022/plugins/table/table.editor.mjs +209 -0
- package/{esm2020 → esm2022}/plugins/table/table.pipe.mjs +7 -7
- package/esm2022/plugins/table/table.plugin.mjs +544 -0
- package/{esm2020 → esm2022}/plugins/table/table.service.mjs +4 -4
- package/esm2022/plugins/table/table.store.mjs +426 -0
- package/esm2022/plugins/table/table.types.mjs +60 -0
- package/{esm2020 → esm2022}/plugins/table/toolbar-item.component.mjs +6 -6
- package/esm2022/plugins/table/transforms/clear-cell.mjs +14 -0
- package/esm2022/plugins/table/transforms/clear-table-node.mjs +27 -0
- package/esm2022/plugins/table/transforms/insert-column.mjs +69 -0
- package/esm2022/plugins/table/transforms/insert-row.mjs +50 -0
- package/esm2022/plugins/table/transforms/insert-table.mjs +15 -0
- package/esm2022/plugins/table/transforms/remove-column.mjs +51 -0
- package/esm2022/plugins/table/transforms/remove-row.mjs +48 -0
- package/esm2022/plugins/table/transforms/remove-table.mjs +49 -0
- package/esm2022/plugins/table/utils/calc-anchor-position.mjs +25 -0
- package/esm2022/plugins/table/utils/cell-position.mjs +60 -0
- package/esm2022/plugins/table/utils/create-table-position.mjs +10 -0
- package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +69 -0
- package/esm2022/plugins/table/utils/get-select-cell-node.mjs +23 -0
- package/esm2022/plugins/table/utils/handle-cell.mjs +25 -0
- package/esm2022/plugins/table/utils/is-range-in-table.mjs +16 -0
- package/esm2022/plugins/table/utils/is-selection-in-table.mjs +51 -0
- package/esm2022/plugins/table/utils/merge-cell.mjs +108 -0
- package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +45 -0
- package/esm2022/plugins/table/utils/split-cell.mjs +29 -0
- package/esm2022/plugins/table/utils/table-entry.mjs +21 -0
- package/{esm2020 → esm2022}/plugins/todo-item/todo-item.component.mjs +7 -7
- package/esm2022/plugins/todo-item/todo-item.editor.mjs +32 -0
- package/esm2022/plugins/todo-item/todo-item.plugin.mjs +93 -0
- package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +83 -0
- package/esm2022/queries/anchor-block-entry.mjs +13 -0
- package/esm2022/queries/anchor-block.mjs +6 -0
- package/esm2022/queries/anchor-inline-entry.mjs +10 -0
- package/{esm2020 → esm2022}/queries/find-descendant.mjs +1 -1
- package/esm2022/queries/find-node.mjs +45 -0
- package/esm2022/queries/get-above-by-type.mjs +14 -0
- package/esm2022/queries/get-above.mjs +9 -0
- package/esm2022/queries/get-anchor-block-entry.mjs +8 -0
- package/esm2022/queries/get-block-above.mjs +10 -0
- package/esm2022/queries/get-block-card-above.mjs +10 -0
- package/esm2022/queries/get-block-card-cursor.mjs +5 -0
- package/esm2022/queries/get-container-blocks.mjs +12 -0
- package/esm2022/queries/get-insert-elements-path.mjs +44 -0
- package/{esm2020 → esm2022}/queries/get-last-node.mjs +1 -1
- package/esm2022/queries/get-node.mjs +10 -0
- package/esm2022/queries/get-nodes-by-type.mjs +15 -0
- package/esm2022/queries/get-nodes.mjs +7 -0
- package/esm2022/queries/get-parent.mjs +12 -0
- package/esm2022/queries/get-plain-text.mjs +16 -0
- package/esm2022/queries/get-plugin-by-toolbar.mjs +13 -0
- package/{esm2020 → esm2022}/queries/get-point-before.mjs +1 -1
- package/esm2022/queries/get-point-from-location.mjs +15 -0
- package/esm2022/queries/get-rang-from-block-start.mjs +16 -0
- package/esm2022/queries/get-range-before.mjs +17 -0
- package/{esm2020 → esm2022}/queries/get-selection-marks.mjs +1 -1
- package/esm2022/queries/get-selection-nodes-by-type.mjs +30 -0
- package/esm2022/queries/get-text.mjs +9 -0
- package/esm2022/queries/get-toolbar-disabled.mjs +13 -0
- package/esm2022/queries/is-across-blocks.mjs +7 -0
- package/esm2022/queries/is-ancestor-empty.mjs +6 -0
- package/esm2022/queries/is-block-above-empty.mjs +11 -0
- package/esm2022/queries/is-block-active.mjs +8 -0
- package/esm2022/queries/is-block-card-cursor.mjs +4 -0
- package/{esm2020 → esm2022}/queries/is-block-text-empty-after-selection.mjs +1 -1
- package/esm2022/queries/is-contain-nested-type.mjs +29 -0
- package/esm2022/queries/is-container-type.mjs +3 -0
- package/esm2022/queries/is-empty-content-filter.mjs +23 -0
- package/{esm2020 → esm2022}/queries/is-empty-content.mjs +1 -1
- package/esm2022/queries/is-empty-paragraph-by-path.mjs +7 -0
- package/esm2022/queries/is-empty-paragraph.mjs +28 -0
- package/esm2022/queries/is-global-collapsed.mjs +5 -0
- package/esm2022/queries/is-include-types.mjs +12 -0
- package/esm2022/queries/is-node-type-in.mjs +9 -0
- package/esm2022/queries/is-node-type.mjs +15 -0
- package/esm2022/queries/is-paragraph.mjs +9 -0
- package/esm2022/queries/is-range-across-blocks.mjs +22 -0
- package/esm2022/queries/is-start.mjs +6 -0
- package/esm2022/queries/some-node.mjs +9 -0
- package/{esm2020 → esm2022}/services/context.service.mjs +4 -4
- package/{esm2020 → esm2022}/services/table-contextmenu.service.mjs +4 -4
- package/{esm2020 → esm2022}/services/toolbar.service.mjs +4 -4
- package/{esm2020 → esm2022}/shortcuts/index.mjs +1 -1
- package/esm2022/shortcuts/mark.mjs +25 -0
- package/esm2022/test/utils/with-editor.mjs +8 -0
- package/esm2022/test/utils/with-plugin.mjs +8 -0
- package/{esm2020 → esm2022}/transforms/clear-marks.mjs +1 -1
- package/esm2022/transforms/close-conversion-hint.mjs +8 -0
- package/{esm2020 → esm2022}/transforms/delete-element.mjs +1 -1
- package/esm2022/transforms/handle-continual-delete-backward.mjs +18 -0
- package/esm2022/transforms/handle-continual-insert-break.mjs +20 -0
- package/esm2022/transforms/insert-elements.mjs +38 -0
- package/esm2022/transforms/insert-paragraph.mjs +6 -0
- package/esm2022/transforms/move-children.mjs +22 -0
- package/esm2022/transforms/on-keydown-reset-block-type.mjs +22 -0
- package/{esm2020 → esm2022}/transforms/set-end-selection.mjs +1 -1
- package/esm2022/transforms/set-marks.mjs +9 -0
- package/esm2022/transforms/set-node.mjs +6 -0
- package/esm2022/transforms/un-hang-range.mjs +11 -0
- package/esm2022/transforms/un-wrap.mjs +12 -0
- package/esm2022/transforms/unwrap-nodes-by-type.mjs +14 -0
- package/{esm2020 → esm2022}/utils/auto-focus.mjs +1 -1
- package/esm2022/utils/copy-node.mjs +32 -0
- package/esm2022/utils/create-empty-paragraph.mjs +5 -0
- package/esm2022/utils/create-paragraph.mjs +14 -0
- package/{esm2020 → esm2022}/utils/dom.mjs +1 -1
- package/esm2022/utils/editor-uuid.mjs +8 -0
- package/esm2022/utils/fragment.mjs +74 -0
- package/esm2022/utils/get-editable-element-height.mjs +6 -0
- package/esm2022/utils/get-toolbar-class.mjs +6 -0
- package/esm2022/utils/index.mjs +20 -0
- package/esm2022/utils/insert-data-by-invalid-type.mjs +62 -0
- package/esm2022/utils/is-clean-empty-paragraph.mjs +37 -0
- package/esm2022/utils/is-inline.mjs +9 -0
- package/{esm2020 → esm2022}/utils/match.mjs +1 -1
- package/esm2022/utils/merge-element-options.mjs +19 -0
- package/esm2022/utils/scroll-into-view.mjs +38 -0
- package/{fesm2020 → fesm2022}/worktile-theia.mjs +398 -389
- package/fesm2022/worktile-theia.mjs.map +1 -0
- package/interfaces/auto-format.d.ts +5 -5
- package/interfaces/editor.d.ts +8 -6
- package/interfaces/plugins/plugin-menu.d.ts +5 -5
- package/interfaces/plugins/with-override.d.ts +2 -2
- package/interfaces/reset-block-type-plugin-options.d.ts +3 -3
- package/interfaces/toolbar.d.ts +5 -5
- package/interfaces/view-base.d.ts +3 -2
- package/package.json +11 -17
- package/pipes.d.ts +3 -3
- package/plugins/align/align.editor.d.ts +4 -4
- package/plugins/align/align.plugin.d.ts +2 -1
- package/plugins/autoformat/autoformat.plugin.d.ts +2 -1
- package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -4
- package/plugins/autoformat/transforms/auto-format-inline.d.ts +2 -2
- package/plugins/blockquote/blockquote.component.d.ts +3 -3
- package/plugins/blockquote/blockquote.editor.d.ts +2 -2
- package/plugins/blockquote/blockquote.plugin.d.ts +2 -1
- package/plugins/code/code.component.d.ts +2 -3
- package/plugins/code/code.editor.d.ts +3 -3
- package/plugins/code/code.plugin.d.ts +2 -1
- package/plugins/color/color.editor.d.ts +3 -3
- package/plugins/common/block-card.plugin.d.ts +2 -1
- package/plugins/common/common.plugin.d.ts +2 -1
- package/plugins/common/get-fragment.plugin.d.ts +2 -1
- package/plugins/common/history.plugin.d.ts +6 -6
- package/plugins/common/insert-data-by-invalid-type.d.ts +2 -1
- package/plugins/common/move-selection.plugin.d.ts +2 -1
- package/plugins/common/remove-empty.plugin.d.ts +2 -1
- package/plugins/common/remove-void.plugin.d.ts +2 -1
- package/plugins/common/reset-type.plugin.d.ts +2 -1
- package/plugins/common/transforms.plugin.d.ts +2 -1
- package/plugins/deserialize/deserialize-html.plugin.d.ts +2 -1
- package/plugins/deserialize/deserialize-md.plugin.d.ts +2 -1
- package/plugins/font-size/font-size.editor.d.ts +3 -4
- package/plugins/heading/heading.editor.d.ts +3 -4
- package/plugins/heading/heading.plugin.d.ts +2 -2
- package/plugins/hr/hr.component.d.ts +3 -3
- package/plugins/hr/hr.editor.d.ts +3 -3
- package/plugins/hr/hr.plugin.d.ts +2 -1
- package/plugins/image/image.component.d.ts +2 -3
- package/plugins/image/image.editor.d.ts +8 -7
- package/plugins/indent/indent.editor.d.ts +3 -4
- package/plugins/indent/indent.plugin.d.ts +2 -1
- package/plugins/indent/on-keydown-indent.d.ts +2 -2
- package/plugins/inline-code/inline-code.component.d.ts +2 -3
- package/plugins/inline-code/inline-code.editor.d.ts +6 -5
- package/plugins/inline-code/inline-code.plugin.d.ts +2 -1
- package/plugins/link/edit/link-edit.component.d.ts +4 -3
- package/plugins/link/hover/link-hover.component.d.ts +1 -1
- package/plugins/link/link.component.d.ts +2 -3
- package/plugins/link/link.editor.d.ts +5 -5
- package/plugins/link/link.plugin.d.ts +2 -1
- package/plugins/list/components/bulleted-list.component.d.ts +2 -3
- package/plugins/list/components/list-item.component.d.ts +3 -3
- package/plugins/list/components/numbered-list.component.d.ts +2 -3
- package/plugins/list/list.editor.d.ts +11 -9
- package/plugins/list/list.plugin.d.ts +2 -1
- package/plugins/list/normalizers/get-list-normalizer.d.ts +3 -2
- package/plugins/list/normalizers/normalize-list-item.d.ts +3 -2
- package/plugins/list/normalizers/normalize-no.d.ts +3 -2
- package/plugins/list/on-key-down-list.d.ts +2 -2
- package/plugins/list/queries/get-list-item-entry.d.ts +3 -2
- package/plugins/list/queries/get-start-list-item.d.ts +2 -2
- package/plugins/list/queries/has-list-in-list-item.d.ts +5 -4
- package/plugins/list/queries/is-in-list.d.ts +3 -2
- package/plugins/list/queries/is-list-nested.d.ts +3 -2
- package/plugins/list/queries/is-list.d.ts +2 -2
- package/plugins/list/queries/is-node-type-list.d.ts +2 -1
- package/plugins/list/queries/is-selection-at-list-item-start.d.ts +2 -2
- package/plugins/list/queries/is-selection-in-same-list-item.d.ts +2 -2
- package/plugins/list/transforms/insert-list-data.d.ts +5 -3
- package/plugins/list/transforms/insert-list-item.d.ts +2 -2
- package/plugins/list/transforms/move-list-item-down.d.ts +3 -2
- package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +3 -2
- package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +3 -2
- package/plugins/list/transforms/move-list-item-up.d.ts +3 -2
- package/plugins/list/transforms/unwrap-list.d.ts +2 -2
- package/plugins/mark/mark.editor.d.ts +3 -2
- package/plugins/mark/mark.plugin.d.ts +2 -1
- package/plugins/mention/mention.plugin.d.ts +2 -1
- package/plugins/mention/suggestion.component.d.ts +1 -1
- package/plugins/node-id/node-id.plugin.d.ts +2 -2
- package/plugins/normalizers/insert-paragraph-nodes.d.ts +2 -1
- package/plugins/normalizers/trailing-node.plugin.d.ts +2 -2
- package/plugins/quick-insert/components/quick-insert.component.d.ts +3 -3
- package/plugins/quick-insert/quick-insert.editor.d.ts +6 -6
- package/plugins/quick-insert/quick-insert.plugin.d.ts +3 -3
- package/plugins/table/components/insert-mark/insert-mark.component.d.ts +3 -3
- package/plugins/table/components/table.component.d.ts +2 -3
- package/plugins/table/components/td/td.component.d.ts +2 -2
- package/plugins/table/components/toolbar/table-options.component.d.ts +3 -3
- package/plugins/table/components/toolbar/table-toolbar.component.d.ts +3 -3
- package/plugins/table/table.editor.d.ts +11 -11
- package/plugins/table/table.store.d.ts +12 -12
- package/plugins/table/table.types.d.ts +4 -3
- package/plugins/table/transforms/clear-cell.d.ts +3 -2
- package/plugins/table/transforms/clear-table-node.d.ts +2 -2
- package/plugins/table/transforms/insert-column.d.ts +5 -4
- package/plugins/table/transforms/insert-row.d.ts +2 -2
- package/plugins/table/transforms/insert-table.d.ts +3 -2
- package/plugins/table/transforms/remove-column.d.ts +2 -2
- package/plugins/table/transforms/remove-row.d.ts +2 -2
- package/plugins/table/transforms/remove-table.d.ts +2 -2
- package/plugins/table/utils/calc-anchor-position.d.ts +2 -2
- package/plugins/table/utils/cell-position.d.ts +3 -3
- package/plugins/table/utils/create-table-position.d.ts +3 -2
- package/plugins/table/utils/get-min-max-cell-index.d.ts +2 -2
- package/plugins/table/utils/get-select-cell-node.d.ts +3 -3
- package/plugins/table/utils/handle-cell.d.ts +3 -2
- package/plugins/table/utils/is-range-in-table.d.ts +3 -2
- package/plugins/table/utils/is-selection-in-table.d.ts +3 -3
- package/plugins/table/utils/merge-cell.d.ts +6 -5
- package/plugins/table/utils/set-menu-cell-invisibility.d.ts +2 -2
- package/plugins/table/utils/split-cell.d.ts +3 -3
- package/plugins/table/utils/table-entry.d.ts +5 -5
- package/plugins/todo-item/todo-item.component.d.ts +2 -3
- package/plugins/todo-item/todo-item.editor.d.ts +3 -3
- package/plugins/todo-item/todo-item.plugin.d.ts +2 -1
- package/plugins/vertical-align/toolbar-item.component.d.ts +2 -3
- package/queries/anchor-block-entry.d.ts +4 -2
- package/queries/anchor-block.d.ts +3 -2
- package/queries/anchor-inline-entry.d.ts +3 -2
- package/queries/find-descendant.d.ts +3 -2
- package/queries/find-node.d.ts +3 -3
- package/queries/get-above-by-type.d.ts +2 -3
- package/queries/get-above.d.ts +3 -3
- package/queries/get-anchor-block-entry.d.ts +4 -2
- package/queries/get-block-above.d.ts +3 -3
- package/queries/get-block-card-above.d.ts +3 -3
- package/queries/get-block-card-cursor.d.ts +2 -2
- package/queries/get-container-blocks.d.ts +2 -2
- package/queries/get-last-node.d.ts +3 -2
- package/queries/get-node.d.ts +3 -2
- package/queries/get-nodes-by-type.d.ts +2 -3
- package/queries/get-nodes.d.ts +2 -3
- package/queries/get-parent.d.ts +3 -3
- package/queries/get-plain-text.d.ts +2 -2
- package/queries/get-plugin-by-toolbar.d.ts +2 -3
- package/queries/get-point-before.d.ts +3 -2
- package/queries/get-point-from-location.d.ts +3 -2
- package/queries/get-rang-from-block-start.d.ts +2 -3
- package/queries/get-range-before.d.ts +3 -2
- package/queries/get-selection-marks.d.ts +2 -2
- package/queries/get-selection-nodes-by-type.d.ts +3 -2
- package/queries/get-text.d.ts +3 -2
- package/queries/get-toolbar-disabled.d.ts +2 -3
- package/queries/is-across-blocks.d.ts +3 -2
- package/queries/is-ancestor-empty.d.ts +3 -2
- package/queries/is-block-above-empty.d.ts +2 -2
- package/queries/is-block-active.d.ts +2 -2
- package/queries/is-block-card-cursor.d.ts +2 -2
- package/queries/is-block-text-empty-after-selection.d.ts +2 -2
- package/queries/is-contain-nested-type.d.ts +2 -2
- package/queries/is-container-type.d.ts +3 -2
- package/queries/is-empty-content-filter.d.ts +2 -2
- package/queries/is-empty-paragraph-by-path.d.ts +3 -2
- package/queries/is-empty-paragraph.d.ts +6 -4
- package/queries/is-global-collapsed.d.ts +2 -2
- package/queries/is-include-types.d.ts +2 -2
- package/queries/is-node-type-in.d.ts +2 -3
- package/queries/is-paragraph.d.ts +2 -2
- package/queries/is-range-across-blocks.d.ts +3 -3
- package/queries/is-start.d.ts +3 -2
- package/queries/some-node.d.ts +3 -2
- package/shortcuts/index.d.ts +2 -2
- package/shortcuts/mark.d.ts +2 -2
- package/test/utils/with-editor.d.ts +2 -0
- package/transforms/clear-marks.d.ts +2 -2
- package/transforms/close-conversion-hint.d.ts +2 -2
- package/transforms/delete-element.d.ts +3 -2
- package/transforms/handle-continual-delete-backward.d.ts +4 -3
- package/transforms/handle-continual-insert-break.d.ts +3 -3
- package/transforms/insert-elements.d.ts +3 -2
- package/transforms/insert-paragraph.d.ts +3 -2
- package/transforms/move-children.d.ts +3 -2
- package/transforms/on-keydown-reset-block-type.d.ts +2 -2
- package/transforms/set-end-selection.d.ts +2 -2
- package/transforms/set-marks.d.ts +3 -2
- package/transforms/set-node.d.ts +3 -2
- package/transforms/un-hang-range.d.ts +3 -2
- package/transforms/un-wrap.d.ts +2 -2
- package/transforms/unwrap-nodes-by-type.d.ts +2 -3
- package/utils/auto-focus.d.ts +2 -2
- package/utils/copy-node.d.ts +5 -3
- package/utils/create-paragraph.d.ts +2 -0
- package/utils/dom.d.ts +2 -2
- package/utils/editor-uuid.d.ts +3 -3
- package/utils/fragment.d.ts +7 -5
- package/utils/get-editable-element-height.d.ts +2 -2
- package/utils/get-toolbar-class.d.ts +2 -2
- package/utils/index.d.ts +1 -0
- package/utils/is-clean-empty-paragraph.d.ts +4 -3
- package/utils/is-inline.d.ts +3 -2
- package/utils/match.d.ts +2 -2
- package/utils/merge-element-options.d.ts +1 -1
- package/utils/scroll-into-view.d.ts +2 -2
- package/esm2020/components/listbox/listbox.mjs +0 -375
- package/esm2020/components/plugin-menu/plugin-menu.component.mjs +0 -191
- package/esm2020/components/template/template.component.mjs +0 -62
- package/esm2020/components/toolbar/toolbar.component.mjs +0 -266
- package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -144
- package/esm2020/components/toolbar-group/toolbar-group.component.mjs +0 -122
- package/esm2020/constants/auto-format-rules.mjs +0 -167
- package/esm2020/constants/plugin-menu.mjs +0 -325
- package/esm2020/core/toolbar-item/base-toolbar-item.mjs +0 -87
- package/esm2020/core/utils/plugin-menu.mjs +0 -33
- package/esm2020/custom-types.mjs +0 -2
- package/esm2020/editor.module.mjs +0 -254
- package/esm2020/interfaces/auto-format.mjs +0 -2
- package/esm2020/interfaces/editor.mjs +0 -25
- package/esm2020/interfaces/plugins/plugin-menu.mjs +0 -19
- package/esm2020/interfaces/plugins/with-override.mjs +0 -2
- package/esm2020/interfaces/reset-block-type-plugin-options.mjs +0 -2
- package/esm2020/interfaces/toolbar.mjs +0 -12
- package/esm2020/pipes.mjs +0 -42
- package/esm2020/plugins/align/align.editor.mjs +0 -43
- package/esm2020/plugins/align/align.plugin.mjs +0 -64
- package/esm2020/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
- package/esm2020/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
- package/esm2020/plugins/blockquote/blockquote.component.mjs +0 -21
- package/esm2020/plugins/blockquote/blockquote.editor.mjs +0 -20
- package/esm2020/plugins/blockquote/blockquote.plugin.mjs +0 -85
- package/esm2020/plugins/code/code.editor.mjs +0 -48
- package/esm2020/plugins/color/color.editor.mjs +0 -27
- package/esm2020/plugins/common/history.plugin.mjs +0 -31
- package/esm2020/plugins/common/transforms.plugin.mjs +0 -18
- package/esm2020/plugins/deserialize/deserialize-html.plugin.mjs +0 -53
- package/esm2020/plugins/deserialize/deserialize-md.plugin.mjs +0 -130
- package/esm2020/plugins/font-size/font-size.editor.mjs +0 -98
- package/esm2020/plugins/heading/heading.editor.mjs +0 -54
- package/esm2020/plugins/heading/heading.plugin.mjs +0 -136
- package/esm2020/plugins/hr/hr.editor.mjs +0 -16
- package/esm2020/plugins/hr/hr.plugin.mjs +0 -56
- package/esm2020/plugins/image/image.component.mjs +0 -420
- package/esm2020/plugins/image/image.editor.mjs +0 -81
- package/esm2020/plugins/indent/indent.editor.mjs +0 -78
- package/esm2020/plugins/indent/on-keydown-indent.mjs +0 -59
- package/esm2020/plugins/inline-code/inline-code.component.mjs +0 -26
- package/esm2020/plugins/inline-code/inline-code.editor.mjs +0 -48
- package/esm2020/plugins/inline-code/inline-code.plugin.mjs +0 -66
- package/esm2020/plugins/link/edit/link-edit.component.mjs +0 -103
- package/esm2020/plugins/link/link.component.mjs +0 -167
- package/esm2020/plugins/link/link.editor.mjs +0 -66
- package/esm2020/plugins/list/components/bulleted-list.component.mjs +0 -33
- package/esm2020/plugins/list/components/list-item.component.mjs +0 -93
- package/esm2020/plugins/list/components/numbered-list.component.mjs +0 -39
- package/esm2020/plugins/list/list.editor.mjs +0 -126
- package/esm2020/plugins/list/list.plugin.mjs +0 -312
- package/esm2020/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
- package/esm2020/plugins/list/normalizers/normalize-list-item.mjs +0 -18
- package/esm2020/plugins/list/normalizers/normalize-no.mjs +0 -43
- package/esm2020/plugins/list/on-key-down-list.mjs +0 -33
- package/esm2020/plugins/list/queries/get-list-item-entry.mjs +0 -28
- package/esm2020/plugins/list/queries/get-start-list-item.mjs +0 -27
- package/esm2020/plugins/list/queries/has-list-in-list-item.mjs +0 -27
- package/esm2020/plugins/list/queries/is-in-list.mjs +0 -6
- package/esm2020/plugins/list/queries/is-list-nested.mjs +0 -10
- package/esm2020/plugins/list/queries/is-list.mjs +0 -5
- package/esm2020/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
- package/esm2020/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
- package/esm2020/plugins/list/transforms/insert-list-data.mjs +0 -72
- package/esm2020/plugins/list/transforms/insert-list-item.mjs +0 -73
- package/esm2020/plugins/list/transforms/move-list-item-down.mjs +0 -41
- package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
- package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
- package/esm2020/plugins/list/transforms/move-list-item-up.mjs +0 -78
- package/esm2020/plugins/list/transforms/unwrap-list.mjs +0 -10
- package/esm2020/plugins/mark/mark.editor.mjs +0 -28
- package/esm2020/plugins/mention/mention.plugin.mjs +0 -91
- package/esm2020/plugins/normalizers/remove-empty-nodes.mjs +0 -18
- package/esm2020/plugins/quick-insert/quick-insert.editor.mjs +0 -68
- package/esm2020/plugins/quick-insert/quick-insert.plugin.mjs +0 -104
- package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -104
- package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -189
- package/esm2020/plugins/table/table.editor.mjs +0 -209
- package/esm2020/plugins/table/table.plugin.mjs +0 -544
- package/esm2020/plugins/table/table.store.mjs +0 -426
- package/esm2020/plugins/table/table.types.mjs +0 -60
- package/esm2020/plugins/table/transforms/clear-cell.mjs +0 -14
- package/esm2020/plugins/table/transforms/clear-table-node.mjs +0 -27
- package/esm2020/plugins/table/transforms/insert-column.mjs +0 -69
- package/esm2020/plugins/table/transforms/insert-row.mjs +0 -50
- package/esm2020/plugins/table/transforms/insert-table.mjs +0 -15
- package/esm2020/plugins/table/transforms/remove-column.mjs +0 -51
- package/esm2020/plugins/table/transforms/remove-row.mjs +0 -48
- package/esm2020/plugins/table/transforms/remove-table.mjs +0 -49
- package/esm2020/plugins/table/utils/calc-anchor-position.mjs +0 -25
- package/esm2020/plugins/table/utils/cell-position.mjs +0 -60
- package/esm2020/plugins/table/utils/create-table-position.mjs +0 -10
- package/esm2020/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
- package/esm2020/plugins/table/utils/get-select-cell-node.mjs +0 -23
- package/esm2020/plugins/table/utils/handle-cell.mjs +0 -25
- package/esm2020/plugins/table/utils/is-range-in-table.mjs +0 -16
- package/esm2020/plugins/table/utils/is-selection-in-table.mjs +0 -51
- package/esm2020/plugins/table/utils/merge-cell.mjs +0 -108
- package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
- package/esm2020/plugins/table/utils/split-cell.mjs +0 -29
- package/esm2020/plugins/table/utils/table-entry.mjs +0 -21
- package/esm2020/plugins/todo-item/todo-item.editor.mjs +0 -32
- package/esm2020/plugins/todo-item/todo-item.plugin.mjs +0 -93
- package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +0 -83
- package/esm2020/queries/anchor-block-entry.mjs +0 -13
- package/esm2020/queries/anchor-block.mjs +0 -6
- package/esm2020/queries/anchor-inline-entry.mjs +0 -10
- package/esm2020/queries/find-node.mjs +0 -45
- package/esm2020/queries/get-above-by-type.mjs +0 -14
- package/esm2020/queries/get-above.mjs +0 -9
- package/esm2020/queries/get-anchor-block-entry.mjs +0 -8
- package/esm2020/queries/get-block-above.mjs +0 -10
- package/esm2020/queries/get-block-card-above.mjs +0 -10
- package/esm2020/queries/get-block-card-cursor.mjs +0 -5
- package/esm2020/queries/get-container-blocks.mjs +0 -12
- package/esm2020/queries/get-insert-elements-path.mjs +0 -44
- package/esm2020/queries/get-node.mjs +0 -10
- package/esm2020/queries/get-nodes-by-type.mjs +0 -15
- package/esm2020/queries/get-nodes.mjs +0 -7
- package/esm2020/queries/get-parent.mjs +0 -12
- package/esm2020/queries/get-plain-text.mjs +0 -16
- package/esm2020/queries/get-plugin-by-toolbar.mjs +0 -13
- package/esm2020/queries/get-point-from-location.mjs +0 -15
- package/esm2020/queries/get-rang-from-block-start.mjs +0 -16
- package/esm2020/queries/get-range-before.mjs +0 -17
- package/esm2020/queries/get-selection-nodes-by-type.mjs +0 -30
- package/esm2020/queries/get-text.mjs +0 -9
- package/esm2020/queries/get-toolbar-disabled.mjs +0 -13
- package/esm2020/queries/is-across-blocks.mjs +0 -7
- package/esm2020/queries/is-ancestor-empty.mjs +0 -6
- package/esm2020/queries/is-block-above-empty.mjs +0 -11
- package/esm2020/queries/is-block-active.mjs +0 -8
- package/esm2020/queries/is-block-card-cursor.mjs +0 -4
- package/esm2020/queries/is-contain-nested-type.mjs +0 -29
- package/esm2020/queries/is-container-type.mjs +0 -3
- package/esm2020/queries/is-empty-content-filter.mjs +0 -23
- package/esm2020/queries/is-empty-paragraph-by-path.mjs +0 -7
- package/esm2020/queries/is-empty-paragraph.mjs +0 -28
- package/esm2020/queries/is-global-collapsed.mjs +0 -5
- package/esm2020/queries/is-include-types.mjs +0 -12
- package/esm2020/queries/is-node-type-in.mjs +0 -9
- package/esm2020/queries/is-node-type.mjs +0 -15
- package/esm2020/queries/is-paragraph.mjs +0 -9
- package/esm2020/queries/is-range-across-blocks.mjs +0 -22
- package/esm2020/queries/is-start.mjs +0 -6
- package/esm2020/queries/some-node.mjs +0 -9
- package/esm2020/shortcuts/mark.mjs +0 -25
- package/esm2020/test/utils/with-plugin.mjs +0 -11
- package/esm2020/transforms/close-conversion-hint.mjs +0 -8
- package/esm2020/transforms/handle-continual-delete-backward.mjs +0 -18
- package/esm2020/transforms/handle-continual-insert-break.mjs +0 -20
- package/esm2020/transforms/insert-elements.mjs +0 -38
- package/esm2020/transforms/insert-paragraph.mjs +0 -6
- package/esm2020/transforms/move-children.mjs +0 -22
- package/esm2020/transforms/on-keydown-reset-block-type.mjs +0 -23
- package/esm2020/transforms/set-marks.mjs +0 -9
- package/esm2020/transforms/set-node.mjs +0 -6
- package/esm2020/transforms/un-hang-range.mjs +0 -11
- package/esm2020/transforms/un-wrap.mjs +0 -12
- package/esm2020/transforms/unwrap-nodes-by-type.mjs +0 -14
- package/esm2020/utils/copy-node.mjs +0 -32
- package/esm2020/utils/create-empty-paragraph.mjs +0 -14
- package/esm2020/utils/editor-uuid.mjs +0 -8
- package/esm2020/utils/fragment.mjs +0 -74
- package/esm2020/utils/get-editable-element-height.mjs +0 -6
- package/esm2020/utils/get-toolbar-class.mjs +0 -6
- package/esm2020/utils/index.mjs +0 -19
- package/esm2020/utils/insert-data-by-invalid-type.mjs +0 -62
- package/esm2020/utils/is-clean-empty-paragraph.mjs +0 -37
- package/esm2020/utils/is-inline.mjs +0 -9
- package/esm2020/utils/merge-element-options.mjs +0 -19
- package/esm2020/utils/scroll-into-view.mjs +0 -38
- package/fesm2015/worktile-theia.mjs +0 -16674
- package/fesm2015/worktile-theia.mjs.map +0 -1
- package/fesm2020/worktile-theia.mjs.map +0 -1
- /package/{esm2020 → esm2022}/components/column-resize/resize-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/components/column-resize/selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/components/listbox/listbox.type.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/code.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/color-select.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/error.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/node-types.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/selector.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/core/create-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/core/create-toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/core/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/flatten-deep-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/get-plugin-options.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/get-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/get-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/merge-array.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/merge-deep-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/merge-options.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/nested-structure-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/plugins-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/core/with-theia.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/element.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/image.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/no-infer.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/plugin-key.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/upload.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/nested-structure-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/override-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/types.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/valid-children-types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/color/color.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/image/image.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-sublist.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-list-types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.type.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/add-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/calc-span.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/calculate-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/get-grid-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-header-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-legal-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-virtual-key.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/next-path.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/normalize-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/remove-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/remove-row-column.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/set-cells-background-color.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/set-node-options.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/table-position.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/vertical-align/vertical-align.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-directly-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-last-child-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-next-sibling-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-previous-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-ancestor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-collapsed.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-descendant.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-first-child.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-point-at-root.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-range-at-root.mjs +0 -0
- /package/{esm2020 → esm2022}/test/index.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/apply-deep-to-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/merge-deep-to-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/blob.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/cast-array.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/color-picker.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/common.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/data-transform.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/id-creator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/lodash.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/refocus.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
- /package/{esm2020 → esm2022}/worktile-theia.mjs +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Editor, Transforms, Path, Element } from 'slate';
|
|
2
|
+
import * as TheQueries from '../../../queries';
|
|
3
|
+
import * as TheTransforms from '../../../transforms';
|
|
4
|
+
// 列表续号
|
|
5
|
+
export const normalizeNo = (editor, nodeEntry) => {
|
|
6
|
+
const [listNode, listPath] = nodeEntry;
|
|
7
|
+
let moved = false;
|
|
8
|
+
Editor.withoutNormalizing(editor, () => {
|
|
9
|
+
/**
|
|
10
|
+
* 获取nextList判断是否为同类型list
|
|
11
|
+
* 如果为同类型list,则把nextList children移动到当前list的尾部, 并删除nextList
|
|
12
|
+
*/
|
|
13
|
+
const nextPath = Path.next(listPath);
|
|
14
|
+
const nextNode = TheQueries.getNode(editor, nextPath);
|
|
15
|
+
if (nextNode && Element.isElement(nextNode) && Element.isElement(listNode) && nextNode.type === listNode.type) {
|
|
16
|
+
TheTransforms.moveChildren(editor, {
|
|
17
|
+
at: [nextNode, nextPath],
|
|
18
|
+
to: listPath.concat(listNode.children.length)
|
|
19
|
+
});
|
|
20
|
+
Transforms.removeNodes(editor, { at: nextPath });
|
|
21
|
+
moved = true;
|
|
22
|
+
}
|
|
23
|
+
if (listPath[listPath.length - 1] !== 0) {
|
|
24
|
+
/**
|
|
25
|
+
* 获取prevList判断是否为同类型list
|
|
26
|
+
* 如果为同类型list,则把当前list children移动到prevList的尾部, 并删除当前List
|
|
27
|
+
*/
|
|
28
|
+
const currentListNode = TheQueries.getNode(editor, listPath);
|
|
29
|
+
const prevPath = Path.previous(listPath);
|
|
30
|
+
const prevNode = TheQueries.getNode(editor, prevPath);
|
|
31
|
+
if (prevNode && Element.isElement(prevNode) && Element.isElement(currentListNode) && prevNode.type === currentListNode.type) {
|
|
32
|
+
TheTransforms.moveChildren(editor, {
|
|
33
|
+
at: [currentListNode, listPath],
|
|
34
|
+
to: prevPath.concat(prevNode.children.length)
|
|
35
|
+
});
|
|
36
|
+
Transforms.removeNodes(editor, { at: listPath });
|
|
37
|
+
moved = true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return moved;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW5vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGlzdC9ub3JtYWxpemVycy9ub3JtYWxpemUtbm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFtQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFM0UsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEtBQUssYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU87QUFDUCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFpQixFQUFFLFNBQW9CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDbEIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDbkM7OztXQUdHO1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQVMsQ0FBQztRQUM5RCxJQUFJLFFBQVEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQzNHLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUMvQixFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO2dCQUN4QixFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBRSxRQUFRLENBQUMsUUFBbUIsQ0FBQyxNQUFNLENBQUM7YUFDNUQsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNqRCxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckM7OztlQUdHO1lBQ0gsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQVMsQ0FBQztZQUM5RCxJQUFJLFFBQVEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFO2dCQUN6SCxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtvQkFDL0IsRUFBRSxFQUFFLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQztvQkFDL0IsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUUsUUFBUSxDQUFDLFFBQW1CLENBQUMsTUFBTSxDQUFDO2lCQUM1RCxDQUFDLENBQUM7Z0JBQ0gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDakQsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMsIFBhdGgsIE5vZGUsIE5vZGVFbnRyeSwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vLi4vdHJhbnNmb3Jtcyc7XG5cbi8vIOWIl+ihqOe7reWPt1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZU5vID0gKGVkaXRvcjogVGhlRWRpdG9yLCBub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4ge1xuICAgIGNvbnN0IFtsaXN0Tm9kZSwgbGlzdFBhdGhdID0gbm9kZUVudHJ5O1xuICAgIGxldCBtb3ZlZCA9IGZhbHNlO1xuICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDojrflj5ZuZXh0TGlzdOWIpOaWreaYr+WQpuS4uuWQjOexu+Wei2xpc3RcbiAgICAgICAgICog5aaC5p6c5Li65ZCM57G75Z6LbGlzdO+8jOWImeaKim5leHRMaXN0IGNoaWxkcmVu56e75Yqo5Yiw5b2T5YmNbGlzdOeahOWwvumDqCwg5bm25Yig6ZmkbmV4dExpc3RcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG5leHRQYXRoID0gUGF0aC5uZXh0KGxpc3RQYXRoKTtcbiAgICAgICAgY29uc3QgbmV4dE5vZGUgPSBUaGVRdWVyaWVzLmdldE5vZGUoZWRpdG9yLCBuZXh0UGF0aCkgYXMgTm9kZTtcbiAgICAgICAgaWYgKG5leHROb2RlICYmIEVsZW1lbnQuaXNFbGVtZW50KG5leHROb2RlKSAmJiBFbGVtZW50LmlzRWxlbWVudChsaXN0Tm9kZSkgJiYgbmV4dE5vZGUudHlwZSA9PT0gbGlzdE5vZGUudHlwZSkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5tb3ZlQ2hpbGRyZW4oZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IFtuZXh0Tm9kZSwgbmV4dFBhdGhdLFxuICAgICAgICAgICAgICAgIHRvOiBsaXN0UGF0aC5jb25jYXQoKGxpc3ROb2RlLmNoaWxkcmVuIGFzIE5vZGVbXSkubGVuZ3RoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKGVkaXRvciwgeyBhdDogbmV4dFBhdGggfSk7XG4gICAgICAgICAgICBtb3ZlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdFBhdGhbbGlzdFBhdGgubGVuZ3RoIC0gMV0gIT09IDApIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICog6I635Y+WcHJldkxpc3TliKTmlq3mmK/lkKbkuLrlkIznsbvlnotsaXN0XG4gICAgICAgICAgICAgKiDlpoLmnpzkuLrlkIznsbvlnotsaXN077yM5YiZ5oqK5b2T5YmNbGlzdCBjaGlsZHJlbuenu+WKqOWIsHByZXZMaXN055qE5bC+6YOoLCDlubbliKDpmaTlvZPliY1MaXN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaXN0Tm9kZSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZShlZGl0b3IsIGxpc3RQYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZQYXRoID0gUGF0aC5wcmV2aW91cyhsaXN0UGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZShlZGl0b3IsIHByZXZQYXRoKSBhcyBOb2RlO1xuICAgICAgICAgICAgaWYgKHByZXZOb2RlICYmIEVsZW1lbnQuaXNFbGVtZW50KHByZXZOb2RlKSAmJiBFbGVtZW50LmlzRWxlbWVudChjdXJyZW50TGlzdE5vZGUpICYmIHByZXZOb2RlLnR5cGUgPT09IGN1cnJlbnRMaXN0Tm9kZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5tb3ZlQ2hpbGRyZW4oZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiBbY3VycmVudExpc3ROb2RlLCBsaXN0UGF0aF0sXG4gICAgICAgICAgICAgICAgICAgIHRvOiBwcmV2UGF0aC5jb25jYXQoKHByZXZOb2RlLmNoaWxkcmVuIGFzIE5vZGVbXSkubGVuZ3RoKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yLCB7IGF0OiBsaXN0UGF0aCB9KTtcbiAgICAgICAgICAgICAgICBtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbW92ZWQ7XG59O1xuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { moveListItemUp } from './transforms/move-list-item-up';
|
|
2
|
+
import { moveListItemDown } from './transforms/move-list-item-down';
|
|
3
|
+
import { getListItemEntry } from './queries/get-list-item-entry';
|
|
4
|
+
import * as TheQueries from '../../queries';
|
|
5
|
+
export function onKeyDownList(e, editor) {
|
|
6
|
+
let moved = false;
|
|
7
|
+
if (e.key === 'Tab') {
|
|
8
|
+
const res = getListItemEntry(editor, {});
|
|
9
|
+
if (!res) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const { list, listItem } = res;
|
|
13
|
+
const [, listItemPath] = listItem;
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
// move up with shift+tab
|
|
16
|
+
const shiftTab = e.shiftKey;
|
|
17
|
+
if (shiftTab) {
|
|
18
|
+
moved = moveListItemUp(editor, { list, listItem });
|
|
19
|
+
if (moved) {
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// move down with tab
|
|
25
|
+
const tab = !e.shiftKey;
|
|
26
|
+
if (tab && !TheQueries.isFirstChild(listItemPath)) {
|
|
27
|
+
moveListItemDown(editor, { list, listItem });
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24ta2V5LWRvd24tbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3Qvb24ta2V5LWRvd24tbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxDQUFnQixFQUFFLE1BQWlCO0lBQzdELElBQUksS0FBSyxHQUF3QixLQUFLLENBQUM7SUFDdkMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRTtRQUNqQixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDL0IsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBRWxDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVuQix5QkFBeUI7UUFDekIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1QixJQUFJLFFBQVEsRUFBRTtZQUNWLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkQsSUFBSSxLQUFLLEVBQUU7Z0JBQ1AsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFFRCxxQkFBcUI7UUFDckIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMvQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1VcCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS11cCc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1Eb3duIH0gZnJvbSAnLi90cmFuc2Zvcm1zL21vdmUtbGlzdC1pdGVtLWRvd24nO1xuaW1wb3J0IHsgZ2V0TGlzdEl0ZW1FbnRyeSB9IGZyb20gJy4vcXVlcmllcy9nZXQtbGlzdC1pdGVtLWVudHJ5JztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvbktleURvd25MaXN0KGU6IEtleWJvYXJkRXZlbnQsIGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgbGV0IG1vdmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gICAgaWYgKGUua2V5ID09PSAnVGFiJykge1xuICAgICAgICBjb25zdCByZXMgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICBpZiAoIXJlcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgbGlzdCwgbGlzdEl0ZW0gfSA9IHJlcztcbiAgICAgICAgY29uc3QgWywgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAvLyBtb3ZlIHVwIHdpdGggc2hpZnQrdGFiXG4gICAgICAgIGNvbnN0IHNoaWZ0VGFiID0gZS5zaGlmdEtleTtcbiAgICAgICAgaWYgKHNoaWZ0VGFiKSB7XG4gICAgICAgICAgICBtb3ZlZCA9IG1vdmVMaXN0SXRlbVVwKGVkaXRvciwgeyBsaXN0LCBsaXN0SXRlbSB9KTtcbiAgICAgICAgICAgIGlmIChtb3ZlZCkge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1vdmUgZG93biB3aXRoIHRhYlxuICAgICAgICBjb25zdCB0YWIgPSAhZS5zaGlmdEtleTtcbiAgICAgICAgaWYgKHRhYiAmJiAhVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKSkge1xuICAgICAgICAgICAgbW92ZUxpc3RJdGVtRG93bihlZGl0b3IsIHsgbGlzdCwgbGlzdEl0ZW0gfSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ElementKinds } from '../../../constants';
|
|
2
|
+
import { isList } from './is-list';
|
|
3
|
+
import * as TheQueries from '../../../queries';
|
|
4
|
+
/**
|
|
5
|
+
* 如果at(默认= selection)位于ul> li> p中,则返回li和ul节点条目。
|
|
6
|
+
*/
|
|
7
|
+
export const getListItemEntry = (editor, { at = editor.selection } = {}) => {
|
|
8
|
+
if (at && TheQueries.isNodeTypeIn(editor, ElementKinds.listItem, { at })) {
|
|
9
|
+
const selectionParent = TheQueries.getParent(editor, at);
|
|
10
|
+
if (!selectionParent)
|
|
11
|
+
return;
|
|
12
|
+
const [, paragraphPath] = selectionParent;
|
|
13
|
+
const listItem = TheQueries.getAboveByType(editor, ElementKinds.listItem, { at }) || TheQueries.getParent(editor, paragraphPath);
|
|
14
|
+
if (!listItem)
|
|
15
|
+
return;
|
|
16
|
+
const [listItemNode, listItemPath] = listItem;
|
|
17
|
+
if (listItemNode.type !== ElementKinds.listItem)
|
|
18
|
+
return;
|
|
19
|
+
const list = TheQueries.getParent(editor, listItemPath);
|
|
20
|
+
if (!list || !isList(list[0]))
|
|
21
|
+
return;
|
|
22
|
+
return {
|
|
23
|
+
list,
|
|
24
|
+
listItem
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxpc3QtaXRlbS1lbnRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9nZXQtbGlzdC1pdGVtLWVudHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQWlCLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsS0FBK0IsRUFBRSxFQUFFLEVBQUU7SUFDNUcsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdEUsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGVBQWU7WUFBRSxPQUFPO1FBQzdCLE1BQU0sQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLGVBQWUsQ0FBQztRQUUxQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVqSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDdEIsTUFBTSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUM7UUFFOUMsSUFBSyxZQUFnQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFN0UsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFrQixDQUFDO1lBQUUsT0FBTztRQUV2RCxPQUFPO1lBQ0gsSUFBSTtZQUNKLFFBQVE7U0FDWCxDQUFDO0tBQ0w7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQsIExpc3RJdGVtRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBpc0xpc3QgfSBmcm9tICcuL2lzLWxpc3QnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuLyoqXG4gKiDlpoLmnpxhdO+8iOm7mOiupD0gc2VsZWN0aW9u77yJ5L2N5LqOdWw+IGxpPiBw5Lit77yM5YiZ6L+U5ZuebGnlkox1bOiKgueCueadoeebruOAglxuICovXG5leHBvcnQgY29uc3QgZ2V0TGlzdEl0ZW1FbnRyeSA9IChlZGl0b3I6IFRoZUVkaXRvciwgeyBhdCA9IGVkaXRvci5zZWxlY3Rpb24gfTogeyBhdD86IExvY2F0aW9uIHwgbnVsbCB9ID0ge30pID0+IHtcbiAgICBpZiAoYXQgJiYgVGhlUXVlcmllcy5pc05vZGVUeXBlSW4oZWRpdG9yLCBFbGVtZW50S2luZHMubGlzdEl0ZW0sIHsgYXQgfSkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uUGFyZW50ID0gVGhlUXVlcmllcy5nZXRQYXJlbnQoZWRpdG9yLCBhdCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uUGFyZW50KSByZXR1cm47XG4gICAgICAgIGNvbnN0IFssIHBhcmFncmFwaFBhdGhdID0gc2VsZWN0aW9uUGFyZW50O1xuXG4gICAgICAgIGNvbnN0IGxpc3RJdGVtID0gVGhlUXVlcmllcy5nZXRBYm92ZUJ5VHlwZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5saXN0SXRlbSwgeyBhdCB9KSB8fCBUaGVRdWVyaWVzLmdldFBhcmVudChlZGl0b3IsIHBhcmFncmFwaFBhdGgpO1xuXG4gICAgICAgIGlmICghbGlzdEl0ZW0pIHJldHVybjtcbiAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuXG4gICAgICAgIGlmICgobGlzdEl0ZW1Ob2RlIGFzIExpc3RJdGVtRWxlbWVudCkudHlwZSAhPT0gRWxlbWVudEtpbmRzLmxpc3RJdGVtKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgbGlzdCA9IFRoZVF1ZXJpZXMuZ2V0UGFyZW50KGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgaWYgKCFsaXN0IHx8ICFpc0xpc3QobGlzdFswXSBhcyBDdXN0b21FbGVtZW50KSkgcmV0dXJuO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaXN0LFxuICAgICAgICAgICAgbGlzdEl0ZW1cbiAgICAgICAgfTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ElementKinds } from '../../../constants';
|
|
2
|
+
import { getListTypes } from './get-list-types';
|
|
3
|
+
/**
|
|
4
|
+
* 获取 List 中 ListItems,过滤掉空列表嵌套
|
|
5
|
+
* @param node
|
|
6
|
+
* @param initialValue
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export const getStartListItem = (node, initialValue) => {
|
|
10
|
+
if (!initialValue) {
|
|
11
|
+
initialValue = [];
|
|
12
|
+
}
|
|
13
|
+
if (node) {
|
|
14
|
+
return node.reduce((result, current) => {
|
|
15
|
+
if (current.type === ElementKinds.listItem && !getListTypes().includes(current.children[0].type)) {
|
|
16
|
+
result.push(current);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
if (current.children) {
|
|
20
|
+
getStartListItem(current.children, result);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}, initialValue);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXN0YXJ0LWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9nZXQtc3RhcnQtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQXFCLEVBQUUsWUFBOEIsRUFBRSxFQUFFO0lBQ3RGLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDZixZQUFZLEdBQUcsRUFBRSxDQUFDO0tBQ3JCO0lBQ0QsSUFBSSxJQUFJLEVBQUU7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUF1QixFQUFFLE9BQXNCLEVBQUUsRUFBRTtZQUNuRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFFBQVEsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakgsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QjtpQkFBTTtnQkFDSCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7b0JBQ2xCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUEyQixFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUNqRTthQUNKO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TGlzdFR5cGVzIH0gZnJvbSAnLi9nZXQtbGlzdC10eXBlcyc7XG5cbi8qKlxuICog6I635Y+WIExpc3Qg5LitIExpc3RJdGVtc++8jOi/h+a7pOaOieepuuWIl+ihqOW1jOWll1xuICogQHBhcmFtIG5vZGVcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWVcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdGFydExpc3RJdGVtID0gKG5vZGU6IEN1c3RvbUVsZW1lbnRbXSwgaW5pdGlhbFZhbHVlPzogQ3VzdG9tRWxlbWVudFtdKSA9PiB7XG4gICAgaWYgKCFpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgaW5pdGlhbFZhbHVlID0gW107XG4gICAgfVxuICAgIGlmIChub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnJlZHVjZSgocmVzdWx0OiBDdXN0b21FbGVtZW50W10sIGN1cnJlbnQ6IEN1c3RvbUVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbSAmJiAhZ2V0TGlzdFR5cGVzKCkuaW5jbHVkZXMoKGN1cnJlbnQuY2hpbGRyZW5bMF0gYXMgQ3VzdG9tRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjdXJyZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0U3RhcnRMaXN0SXRlbShjdXJyZW50LmNoaWxkcmVuIGFzIEN1c3RvbUVsZW1lbnRbXSwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LCBpbml0aWFsVmFsdWUpO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ElementKinds } from '../../../constants';
|
|
2
|
+
import { match } from '../../../utils/match';
|
|
3
|
+
import { getListTypes } from './get-list-types';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
export const hasListInListItem = (listItemNode) => {
|
|
8
|
+
const sublist = listItemNode.children.find(n => match(n, { type: getListTypes() }));
|
|
9
|
+
return listItemNode.children.length > 1 && sublist;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* p + ul/ol structure
|
|
13
|
+
* @param listItemNode
|
|
14
|
+
*/
|
|
15
|
+
export const hasStableListInListItem = (listItemNode) => {
|
|
16
|
+
const sublist = listItemNode.children.find(n => match(n, { type: getListTypes() }));
|
|
17
|
+
return listItemNode.children.length === 2 && sublist;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* li + p structure
|
|
21
|
+
* @param listItemNode
|
|
22
|
+
*/
|
|
23
|
+
export const hasStableListItem = (listItemNode) => {
|
|
24
|
+
const type = listItemNode.children[0].type;
|
|
25
|
+
return listItemNode.children.length === 1 && type === ElementKinds.paragraph;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLWxpc3QtaW4tbGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGlzdC9xdWVyaWVzL2hhcy1saXN0LWluLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsWUFBc0MsRUFBRSxFQUFFO0lBQ3hFLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUE4QixDQUFDO0lBQzdILE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFlBQXNDLEVBQUUsRUFBRTtJQUM5RSxNQUFNLE9BQU8sR0FBSSxZQUFZLENBQUMsUUFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBOEIsQ0FBQztJQUM3SCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxZQUFzQyxFQUFFLEVBQUU7SUFDeEUsTUFBTSxJQUFJLEdBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW1CLENBQUMsSUFBSSxDQUFDO0lBQzlELE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDO0FBQ2pGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2VzdG9yLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgbWF0Y2ggfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYXRjaCc7XG5pbXBvcnQgeyBnZXRMaXN0VHlwZXMgfSBmcm9tICcuL2dldC1saXN0LXR5cGVzJztcblxuLyoqXG4gKlxuICovXG5leHBvcnQgY29uc3QgaGFzTGlzdEluTGlzdEl0ZW0gPSAobGlzdEl0ZW1Ob2RlOiBBbmNlc3RvciB8IEN1c3RvbUVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzdWJsaXN0ID0gKGxpc3RJdGVtTm9kZS5jaGlsZHJlbiBhcyBOb2RlW10pLmZpbmQobiA9PiBtYXRjaChuLCB7IHR5cGU6IGdldExpc3RUeXBlcygpIH0pKSBhcyBDdXN0b21FbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiBsaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMSAmJiBzdWJsaXN0O1xufTtcblxuLyoqXG4gKiBwICsgdWwvb2wgc3RydWN0dXJlXG4gKiBAcGFyYW0gbGlzdEl0ZW1Ob2RlXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNTdGFibGVMaXN0SW5MaXN0SXRlbSA9IChsaXN0SXRlbU5vZGU6IEFuY2VzdG9yIHwgQ3VzdG9tRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHN1Ymxpc3QgPSAobGlzdEl0ZW1Ob2RlLmNoaWxkcmVuIGFzIE5vZGVbXSkuZmluZChuID0+IG1hdGNoKG4sIHsgdHlwZTogZ2V0TGlzdFR5cGVzKCkgfSkpIGFzIEN1c3RvbUVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDIgJiYgc3VibGlzdDtcbn07XG5cbi8qKlxuICogbGkgKyBwIHN0cnVjdHVyZVxuICogQHBhcmFtIGxpc3RJdGVtTm9kZVxuICovXG5leHBvcnQgY29uc3QgaGFzU3RhYmxlTGlzdEl0ZW0gPSAobGlzdEl0ZW1Ob2RlOiBBbmNlc3RvciB8IEN1c3RvbUVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0eXBlID0gKGxpc3RJdGVtTm9kZS5jaGlsZHJlblswXSBhcyBDdXN0b21FbGVtZW50KS50eXBlO1xuICAgIHJldHVybiBsaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIHR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGg7XG59O1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ElementKinds } from '../../../constants';
|
|
2
|
+
import * as TheQueries from '../../../queries';
|
|
3
|
+
export const isInList = (editor, at = editor.selection) => {
|
|
4
|
+
return TheQueries.isNodeTypeIn(editor, [ElementKinds.numberedList, ElementKinds.bulletedList], { at });
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW4tbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1pbi1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQWlCLEVBQUUsS0FBa0MsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFO0lBQzlGLE9BQU8sVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDM0csQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aCwgUG9pbnQsIFJhbmdlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGNvbnN0IGlzSW5MaXN0ID0gKGVkaXRvcjogVGhlRWRpdG9yLCBhdDogUGF0aCB8IFJhbmdlIHwgUG9pbnQgfCBudWxsID0gZWRpdG9yLnNlbGVjdGlvbikgPT4ge1xuICAgIHJldHVybiBUaGVRdWVyaWVzLmlzTm9kZVR5cGVJbihlZGl0b3IsIFtFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LCBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0XSwgeyBhdCB9KTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import { ElementKinds } from '../../../constants';
|
|
3
|
+
/**
|
|
4
|
+
* Is the list nested, i.e. its parent is a list item.
|
|
5
|
+
*/
|
|
6
|
+
export const isListNested = (editor, listPath, options) => {
|
|
7
|
+
const [listParentNode] = Editor.parent(editor, listPath);
|
|
8
|
+
return listParentNode.type === ElementKinds.listItem;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbGlzdC1uZXN0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L3F1ZXJpZXMvaXMtbGlzdC1uZXN0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUdyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFpQixFQUFFLFFBQWMsRUFBRSxPQUFhLEVBQUUsRUFBRTtJQUM3RSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekQsT0FBUSxjQUFnQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDO0FBQzVFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIElzIHRoZSBsaXN0IG5lc3RlZCwgaS5lLiBpdHMgcGFyZW50IGlzIGEgbGlzdCBpdGVtLlxuICovXG5leHBvcnQgY29uc3QgaXNMaXN0TmVzdGVkID0gKGVkaXRvcjogVGhlRWRpdG9yLCBsaXN0UGF0aDogUGF0aCwgb3B0aW9ucz86IGFueSkgPT4ge1xuICAgIGNvbnN0IFtsaXN0UGFyZW50Tm9kZV0gPSBFZGl0b3IucGFyZW50KGVkaXRvciwgbGlzdFBhdGgpO1xuICAgIHJldHVybiAobGlzdFBhcmVudE5vZGUgYXMgQ3VzdG9tRWxlbWVudCkudHlwZSA9PT0gRWxlbWVudEtpbmRzLmxpc3RJdGVtO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LIST_BLOCK_TYPES } from '../../../constants/node-types';
|
|
2
|
+
export const isList = (n) => {
|
|
3
|
+
return [...LIST_BLOCK_TYPES].includes(n.type);
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQWdCLEVBQUUsRUFBRTtJQUN2QyxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBMSVNUX0JMT0NLX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXNMaXN0ID0gKG46IEN1c3RvbUVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gWy4uLkxJU1RfQkxPQ0tfVFlQRVNdLmluY2x1ZGVzKG4udHlwZSk7XG59O1xuIl19
|
|
@@ -2,4 +2,4 @@ import { ElementKinds } from '../../../constants/node-types';
|
|
|
2
2
|
export const isNodeTypeList = (n) => {
|
|
3
3
|
return [ElementKinds.bulletedList, ElementKinds.numberedList].includes(n.type);
|
|
4
4
|
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm9kZS10eXBlLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L3F1ZXJpZXMvaXMtbm9kZS10eXBlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQU8sRUFBc0IsRUFBRTtJQUMxRCxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFFLENBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXNOb2RlVHlwZUxpc3QgPSAobjogTm9kZSk6IG4gaXMgQ3VzdG9tRWxlbWVudCA9PiB7XG4gICAgcmV0dXJuIFtFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0XS5pbmNsdWRlcygobiBhcyBDdXN0b21FbGVtZW50KS50eXBlKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ElementKinds } from '../../../constants';
|
|
2
|
+
import * as TheQueries from '../../../queries';
|
|
3
|
+
/**
|
|
4
|
+
* Is the selection focus at the start of its parent block.
|
|
5
|
+
*/
|
|
6
|
+
export const isSelectionAtListItemStart = (editor) => {
|
|
7
|
+
const listItemEntry = TheQueries.getAboveByType(editor, [ElementKinds.listItem]);
|
|
8
|
+
if (listItemEntry) {
|
|
9
|
+
return TheQueries.isStart(editor, editor.selection.focus, listItemEntry[1]);
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VsZWN0aW9uLWF0LWxpc3QtaXRlbS1zdGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1zZWxlY3Rpb24tYXQtbGlzdC1pdGVtLXN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqRixJQUFJLGFBQWEsRUFBRTtRQUNmLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDL0U7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uLy4uL3F1ZXJpZXMnO1xuXG4vKipcbiAqIElzIHRoZSBzZWxlY3Rpb24gZm9jdXMgYXQgdGhlIHN0YXJ0IG9mIGl0cyBwYXJlbnQgYmxvY2suXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydCA9IChlZGl0b3I6IFRoZUVkaXRvcikgPT4ge1xuICAgIGNvbnN0IGxpc3RJdGVtRW50cnkgPSBUaGVRdWVyaWVzLmdldEFib3ZlQnlUeXBlKGVkaXRvciwgW0VsZW1lbnRLaW5kcy5saXN0SXRlbV0pO1xuICAgIGlmIChsaXN0SXRlbUVudHJ5KSB7XG4gICAgICAgIHJldHVybiBUaGVRdWVyaWVzLmlzU3RhcnQoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmZvY3VzLCBsaXN0SXRlbUVudHJ5WzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Range, Path } from 'slate';
|
|
2
|
+
import { getAboveByType } from '../../../queries/get-above-by-type';
|
|
3
|
+
import { ElementKinds } from '../../../constants/node-types';
|
|
4
|
+
/**
|
|
5
|
+
* Is the selection in same li
|
|
6
|
+
*/
|
|
7
|
+
export const isSelectionInSameListItem = (editor) => {
|
|
8
|
+
const { selection } = editor;
|
|
9
|
+
if (!selection) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const [start, end] = Range.edges(selection);
|
|
13
|
+
const startListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: start.path });
|
|
14
|
+
const endListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: end.path });
|
|
15
|
+
return startListItemEntry && endListItemEntry && Path.equals(startListItemEntry[1], endListItemEntry[1]);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VsZWN0aW9uLWluLXNhbWUtbGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGlzdC9xdWVyaWVzL2lzLXNlbGVjdGlvbi1pbi1zYW1lLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUU7SUFDM0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU3QixJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0YsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekYsT0FBTyxrQkFBa0IsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmFuZ2UsIFBhdGggfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEFib3ZlQnlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcXVlcmllcy9nZXQtYWJvdmUtYnktdHlwZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5cbi8qKlxuICogSXMgdGhlIHNlbGVjdGlvbiBpbiBzYW1lIGxpXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtID0gKGVkaXRvcjogVGhlRWRpdG9yKSA9PiB7XG4gICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcblxuICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSBSYW5nZS5lZGdlcyhzZWxlY3Rpb24pO1xuICAgIGNvbnN0IHN0YXJ0TGlzdEl0ZW1FbnRyeSA9IGdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpc3RJdGVtLCB7IGF0OiBzdGFydC5wYXRoIH0pO1xuICAgIGNvbnN0IGVuZExpc3RJdGVtRW50cnkgPSBnZXRBYm92ZUJ5VHlwZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5saXN0SXRlbSwgeyBhdDogZW5kLnBhdGggfSk7XG5cbiAgICByZXR1cm4gc3RhcnRMaXN0SXRlbUVudHJ5ICYmIGVuZExpc3RJdGVtRW50cnkgJiYgUGF0aC5lcXVhbHMoc3RhcnRMaXN0SXRlbUVudHJ5WzFdLCBlbmRMaXN0SXRlbUVudHJ5WzFdKTtcbn07XG4iXX0=
|
|
@@ -6,4 +6,4 @@ import { isNodeTypeList } from './is-node-type-list';
|
|
|
6
6
|
export const isSingleListItem = (list) => {
|
|
7
7
|
return isNodeTypeList(list) && list.children.length === 1 && !hasListInListItem(list.children[0]);
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2luZ2xlLWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1zaW5nbGUtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDM0MsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUssSUFBSSxDQUFDLFFBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFrQixDQUFDLENBQUM7QUFDbkksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgaGFzTGlzdEluTGlzdEl0ZW0gfSBmcm9tICcuL2hhcy1saXN0LWluLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBpc05vZGVUeXBlTGlzdCB9IGZyb20gJy4vaXMtbm9kZS10eXBlLWxpc3QnO1xuXG4vKipcbiAqIGxpc3Qg5LitIOaYr+WQpuaYr+WNleS4qmxpc3RJdGVt77yM5LiUbGlzdEl0ZW3msqHmnInlrZDliJfooahcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2luZ2xlTGlzdEl0ZW0gPSAobGlzdDogTm9kZSkgPT4ge1xuICAgIHJldHVybiBpc05vZGVUeXBlTGlzdChsaXN0KSAmJiAobGlzdC5jaGlsZHJlbiBhcyBOb2RlW10pLmxlbmd0aCA9PT0gMSAmJiAhaGFzTGlzdEluTGlzdEl0ZW0obGlzdC5jaGlsZHJlblswXSBhcyBDdXN0b21FbGVtZW50KTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Node, Path, Transforms, Editor } from 'slate';
|
|
2
|
+
import { hasListInListItem } from '../queries/has-list-in-list-item';
|
|
3
|
+
import { getListItemEntry } from '../queries/get-list-item-entry';
|
|
4
|
+
import * as TheQueries from '../../../queries';
|
|
5
|
+
export const insertListData = (editor, { fromList, toListItemEntry }) => {
|
|
6
|
+
const { children } = fromList;
|
|
7
|
+
const [toListItem, toListItemPath] = toListItemEntry;
|
|
8
|
+
const nextListItemPath = Path.next(toListItemPath);
|
|
9
|
+
const toListItemIsEmptyParagraph = TheQueries.isEmptyParagraph(editor, editor.selection.anchor);
|
|
10
|
+
const hasSubList = hasListInListItem(toListItem);
|
|
11
|
+
let selectPath = [...toListItemPath];
|
|
12
|
+
const liIndex = selectPath.pop();
|
|
13
|
+
selectPath = [...selectPath, liIndex + children.length];
|
|
14
|
+
Editor.withoutNormalizing(editor, () => {
|
|
15
|
+
if (toListItemIsEmptyParagraph && hasSubList) {
|
|
16
|
+
Transforms.insertNodes(editor, children, { at: nextListItemPath });
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const insertListItemPath = toListItemIsEmptyParagraph ? toListItemPath : nextListItemPath;
|
|
20
|
+
// 如果粘贴目标listItem为空,则先删除listItem
|
|
21
|
+
if (toListItemIsEmptyParagraph) {
|
|
22
|
+
Transforms.removeNodes(editor, { at: insertListItemPath });
|
|
23
|
+
selectPath = Path.previous(selectPath);
|
|
24
|
+
}
|
|
25
|
+
Transforms.insertNodes(editor, children, { at: insertListItemPath });
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 粘贴目标lisItem有子列表
|
|
29
|
+
*/
|
|
30
|
+
if (hasSubList) {
|
|
31
|
+
const paragraphPath = toListItemPath.concat([0]);
|
|
32
|
+
const nextSubListPath = Path.next(paragraphPath);
|
|
33
|
+
// 判断粘贴数据是否是多级
|
|
34
|
+
if (hasListInListItem(fromList.children[0])) {
|
|
35
|
+
// 设置粘贴后正确选区
|
|
36
|
+
Transforms.select(editor, Editor.end(editor, nextListItemPath));
|
|
37
|
+
// 获取当前选区所在listItem entry
|
|
38
|
+
const currentListItemEntry = getListItemEntry(editor, {});
|
|
39
|
+
// 获取粘贴目标listItem中的子列表
|
|
40
|
+
const { children: subListChildren } = Node.get(editor, nextSubListPath);
|
|
41
|
+
/**
|
|
42
|
+
* 复制子列表数据
|
|
43
|
+
* 之所以是复制,而不是移动,因为无法单纯一次性移动子列表的所有listItem(不包含subList本身)到目标位置,
|
|
44
|
+
* 需要循环移动才可以
|
|
45
|
+
**/
|
|
46
|
+
Transforms.insertNodes(editor, subListChildren, {
|
|
47
|
+
at: Path.next(currentListItemEntry.listItem[1])
|
|
48
|
+
});
|
|
49
|
+
// 删除已被复制后无用的listItem/listItem subList
|
|
50
|
+
Transforms.delete(editor, {
|
|
51
|
+
at: toListItemIsEmptyParagraph ? toListItemPath : nextSubListPath
|
|
52
|
+
});
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
Transforms.select(editor, Editor.end(editor, selectPath));
|
|
56
|
+
// 粘贴数据不是多级
|
|
57
|
+
const currentListItemEntry = getListItemEntry(editor, {});
|
|
58
|
+
Transforms.moveNodes(editor, {
|
|
59
|
+
at: nextSubListPath,
|
|
60
|
+
to: currentListItemEntry.listItem[1].concat(1)
|
|
61
|
+
});
|
|
62
|
+
if (toListItemIsEmptyParagraph) {
|
|
63
|
+
Transforms.delete(editor, { at: toListItemPath });
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// 粘贴目标listItem没有子列表, 设置选区
|
|
69
|
+
Transforms.select(editor, Editor.end(editor, selectPath));
|
|
70
|
+
return;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWxpc3QtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFjL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQXlCLEVBQUUsRUFBRTtJQUN0RyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEdBQUcsZUFBZSxDQUFDO0lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuRCxNQUFNLDBCQUEwQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRyxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxVQUEyQixDQUFDLENBQUM7SUFFbEUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNqQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ25DLElBQUksMEJBQTBCLElBQUksVUFBVSxFQUFFO1lBQzFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDdEU7YUFBTTtZQUNILE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFDMUYsZ0NBQWdDO1lBQ2hDLElBQUksMEJBQTBCLEVBQUU7Z0JBQzVCLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztnQkFDM0QsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUM7WUFDRCxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQ7O1dBRUc7UUFDSCxJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFakQsY0FBYztZQUNkLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQWtCLENBQUMsRUFBRTtnQkFDMUQsWUFBWTtnQkFDWixVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7Z0JBRWhFLHlCQUF5QjtnQkFDekIsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFELHNCQUFzQjtnQkFDdEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQWtCLENBQUM7Z0JBRXpGOzs7O29CQUlJO2dCQUNKLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGVBQXlCLEVBQUU7b0JBQ3RELEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEQsQ0FBQyxDQUFDO2dCQUNILHNDQUFzQztnQkFDdEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3RCLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxlQUFlO2lCQUNwRSxDQUFDLENBQUM7Z0JBQ0gsT0FBTzthQUNWO1lBRUQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUUxRCxXQUFXO1lBQ1gsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLEVBQUUsRUFBRSxlQUFlO2dCQUNuQixFQUFFLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBRUgsSUFBSSwwQkFBMEIsRUFBRTtnQkFDNUIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNELE9BQU87U0FDVjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsMEJBQTBCO0lBQzFCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTztBQUNYLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgQW5jZXN0b3IsIE5vZGUsIFBhdGgsIFRyYW5zZm9ybXMsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBoYXNMaXN0SW5MaXN0SXRlbSB9IGZyb20gJy4uL3F1ZXJpZXMvaGFzLWxpc3QtaW4tbGlzdC1pdGVtJztcbmltcG9ydCB7IGdldExpc3RJdGVtRW50cnkgfSBmcm9tICcuLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRMaXN0RGF0YU9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIOimgeeymOi0tOeahGxpc3TmlbDmja5cbiAgICAgKi9cbiAgICBmcm9tTGlzdDogQ3VzdG9tRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIOeymOi0tGxpc3TmlbDmja7oh7PmraRcbiAgICAgKi9cbiAgICB0b0xpc3RJdGVtRW50cnk6IE5vZGVFbnRyeTxBbmNlc3Rvcj47XG59XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRMaXN0RGF0YSA9IChlZGl0b3I6IFRoZUVkaXRvciwgeyBmcm9tTGlzdCwgdG9MaXN0SXRlbUVudHJ5IH06IEluc2VydExpc3REYXRhT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IGZyb21MaXN0O1xuICAgIGNvbnN0IFt0b0xpc3RJdGVtLCB0b0xpc3RJdGVtUGF0aF0gPSB0b0xpc3RJdGVtRW50cnk7XG4gICAgY29uc3QgbmV4dExpc3RJdGVtUGF0aCA9IFBhdGgubmV4dCh0b0xpc3RJdGVtUGF0aCk7XG4gICAgY29uc3QgdG9MaXN0SXRlbUlzRW1wdHlQYXJhZ3JhcGggPSBUaGVRdWVyaWVzLmlzRW1wdHlQYXJhZ3JhcGgoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvcik7XG4gICAgY29uc3QgaGFzU3ViTGlzdCA9IGhhc0xpc3RJbkxpc3RJdGVtKHRvTGlzdEl0ZW0gYXMgQ3VzdG9tRWxlbWVudCk7XG5cbiAgICBsZXQgc2VsZWN0UGF0aCA9IFsuLi50b0xpc3RJdGVtUGF0aF07XG4gICAgY29uc3QgbGlJbmRleCA9IHNlbGVjdFBhdGgucG9wKCk7XG4gICAgc2VsZWN0UGF0aCA9IFsuLi5zZWxlY3RQYXRoLCBsaUluZGV4ICsgY2hpbGRyZW4ubGVuZ3RoXTtcblxuICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgIGlmICh0b0xpc3RJdGVtSXNFbXB0eVBhcmFncmFwaCAmJiBoYXNTdWJMaXN0KSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgY2hpbGRyZW4sIHsgYXQ6IG5leHRMaXN0SXRlbVBhdGggfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpbnNlcnRMaXN0SXRlbVBhdGggPSB0b0xpc3RJdGVtSXNFbXB0eVBhcmFncmFwaCA/IHRvTGlzdEl0ZW1QYXRoIDogbmV4dExpc3RJdGVtUGF0aDtcbiAgICAgICAgICAgIC8vIOWmguaenOeymOi0tOebruagh2xpc3RJdGVt5Li656m677yM5YiZ5YWI5Yig6ZmkbGlzdEl0ZW1cbiAgICAgICAgICAgIGlmICh0b0xpc3RJdGVtSXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yLCB7IGF0OiBpbnNlcnRMaXN0SXRlbVBhdGggfSk7XG4gICAgICAgICAgICAgICAgc2VsZWN0UGF0aCA9IFBhdGgucHJldmlvdXMoc2VsZWN0UGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgY2hpbGRyZW4sIHsgYXQ6IGluc2VydExpc3RJdGVtUGF0aCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDnspjotLTnm67moIdsaXNJdGVt5pyJ5a2Q5YiX6KGoXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoaGFzU3ViTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoUGF0aCA9IHRvTGlzdEl0ZW1QYXRoLmNvbmNhdChbMF0pO1xuICAgICAgICAgICAgY29uc3QgbmV4dFN1Ykxpc3RQYXRoID0gUGF0aC5uZXh0KHBhcmFncmFwaFBhdGgpO1xuXG4gICAgICAgICAgICAvLyDliKTmlq3nspjotLTmlbDmja7mmK/lkKbmmK/lpJrnuqdcbiAgICAgICAgICAgIGlmIChoYXNMaXN0SW5MaXN0SXRlbShmcm9tTGlzdC5jaGlsZHJlblswXSBhcyBDdXN0b21FbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIC8vIOiuvue9rueymOi0tOWQjuato+ehrumAieWMulxuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgRWRpdG9yLmVuZChlZGl0b3IsIG5leHRMaXN0SXRlbVBhdGgpKTtcblxuICAgICAgICAgICAgICAgIC8vIOiOt+WPluW9k+WJjemAieWMuuaJgOWcqGxpc3RJdGVtIGVudHJ5XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudExpc3RJdGVtRW50cnkgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICAgICAgICAgIC8vIOiOt+WPlueymOi0tOebruagh2xpc3RJdGVt5Lit55qE5a2Q5YiX6KGoXG4gICAgICAgICAgICAgICAgY29uc3QgeyBjaGlsZHJlbjogc3ViTGlzdENoaWxkcmVuIH0gPSBOb2RlLmdldChlZGl0b3IsIG5leHRTdWJMaXN0UGF0aCkgYXMgQ3VzdG9tRWxlbWVudDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIOWkjeWItuWtkOWIl+ihqOaVsOaNrlxuICAgICAgICAgICAgICAgICAqIOS5i+aJgOS7peaYr+WkjeWItu+8jOiAjOS4jeaYr+enu+WKqO+8jOWboOS4uuaXoOazleWNlee6r+S4gOasoeaAp+enu+WKqOWtkOWIl+ihqOeahOaJgOaciWxpc3RJdGVt77yI5LiN5YyF5ZCrc3ViTGlzdOacrOi6q++8ieWIsOebruagh+S9jee9ru+8jFxuICAgICAgICAgICAgICAgICAqIOmcgOimgeW+queOr+enu+WKqOaJjeWPr+S7pVxuICAgICAgICAgICAgICAgICAqKi9cbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgc3ViTGlzdENoaWxkcmVuIGFzIE5vZGVbXSwge1xuICAgICAgICAgICAgICAgICAgICBhdDogUGF0aC5uZXh0KGN1cnJlbnRMaXN0SXRlbUVudHJ5Lmxpc3RJdGVtWzFdKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIOWIoOmZpOW3suiiq+WkjeWItuWQjuaXoOeUqOeahGxpc3RJdGVtL2xpc3RJdGVtIHN1Ykxpc3RcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgYXQ6IHRvTGlzdEl0ZW1Jc0VtcHR5UGFyYWdyYXBoID8gdG9MaXN0SXRlbVBhdGggOiBuZXh0U3ViTGlzdFBhdGhcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgRWRpdG9yLmVuZChlZGl0b3IsIHNlbGVjdFBhdGgpKTtcblxuICAgICAgICAgICAgLy8g57KY6LS05pWw5o2u5LiN5piv5aSa57qnXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TGlzdEl0ZW1FbnRyeSA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBhdDogbmV4dFN1Ykxpc3RQYXRoLFxuICAgICAgICAgICAgICAgIHRvOiBjdXJyZW50TGlzdEl0ZW1FbnRyeS5saXN0SXRlbVsxXS5jb25jYXQoMSlcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodG9MaXN0SXRlbUlzRW1wdHlQYXJhZ3JhcGgpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQ6IHRvTGlzdEl0ZW1QYXRoIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyDnspjotLTnm67moIdsaXN0SXRlbeayoeacieWtkOWIl+ihqCwg6K6+572u6YCJ5Yy6XG4gICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBFZGl0b3IuZW5kKGVkaXRvciwgc2VsZWN0UGF0aCkpO1xuICAgIHJldHVybjtcbn07XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Editor, Path, Range, Transforms, Element } from 'slate';
|
|
2
|
+
import { TheEditor } from '../../../interfaces';
|
|
3
|
+
import { ElementKinds } from '../../../constants';
|
|
4
|
+
import * as TheQueries from '../../../queries';
|
|
5
|
+
/**
|
|
6
|
+
* Insert list item if selection in li>p.
|
|
7
|
+
*/
|
|
8
|
+
export const insertListItem = (editor) => {
|
|
9
|
+
if (editor.selection && !TheQueries.isRangeAtRoot(editor.selection)) {
|
|
10
|
+
const paragraphEntry = TheQueries.getAboveByType(editor, ElementKinds.paragraph);
|
|
11
|
+
if (!paragraphEntry) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const [, paragraphPath] = paragraphEntry;
|
|
15
|
+
const [listItemNode, listItemPath] = Editor.parent(editor, paragraphPath);
|
|
16
|
+
if (Element.isElement(listItemNode) && listItemNode.type !== ElementKinds.listItem) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (!Range.isCollapsed(editor.selection)) {
|
|
20
|
+
Transforms.delete(editor);
|
|
21
|
+
}
|
|
22
|
+
const isEnd = TheQueries.isBlockTextEmptyAfterSelection(editor);
|
|
23
|
+
const nextNodePath = Path.next(paragraphPath);
|
|
24
|
+
const nextListItemPath = Path.next(listItemPath);
|
|
25
|
+
const nextEnd = Editor.end(editor, listItemPath);
|
|
26
|
+
/**
|
|
27
|
+
* If not end, split nodes, wrap a list item on the new paragraph and move it to the next list item
|
|
28
|
+
*/
|
|
29
|
+
if (!isEnd) {
|
|
30
|
+
Editor.withoutNormalizing(editor, () => {
|
|
31
|
+
Transforms.splitNodes(editor, { at: editor.selection, always: true });
|
|
32
|
+
Transforms.wrapNodes(editor, {
|
|
33
|
+
type: ElementKinds.listItem,
|
|
34
|
+
children: []
|
|
35
|
+
}, { at: nextNodePath });
|
|
36
|
+
Transforms.moveNodes(editor, {
|
|
37
|
+
at: nextNodePath,
|
|
38
|
+
to: nextListItemPath
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
/**
|
|
44
|
+
* If end, split nodes
|
|
45
|
+
*/
|
|
46
|
+
Editor.withoutNormalizing(editor, () => {
|
|
47
|
+
Transforms.splitNodes(editor, {
|
|
48
|
+
always: true,
|
|
49
|
+
mode: 'highest',
|
|
50
|
+
match: (n) => {
|
|
51
|
+
const path = n && TheEditor.findPath(editor, n);
|
|
52
|
+
return path && path.length === nextListItemPath.length;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* If there is a list in the list item, move it to the next list item
|
|
59
|
+
*/
|
|
60
|
+
if (TheQueries.getNode(editor, nextNodePath)) {
|
|
61
|
+
Transforms.moveNodes(editor, {
|
|
62
|
+
at: Editor.range(editor, nextNodePath, nextEnd),
|
|
63
|
+
to: nextListItemPath.concat(1),
|
|
64
|
+
match: (n) => {
|
|
65
|
+
return listItemNode.children.includes(n);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQWlCLEVBQUUsRUFBRTtJQUNoRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNqRSxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQixPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsRUFBRSxhQUFhLENBQUMsR0FBRyxjQUFjLENBQUM7UUFFekMsTUFBTSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMxRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQ2hGLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdCO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNuQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxVQUFVLENBQUMsU0FBUyxDQUNoQixNQUFNLEVBQ047b0JBQ0ksSUFBSSxFQUFFLFlBQVksQ0FBQyxRQUFRO29CQUMzQixRQUFRLEVBQUUsRUFBRTtpQkFDZixFQUNELEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUN2QixDQUFDO2dCQUNGLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO29CQUN6QixFQUFFLEVBQUUsWUFBWTtvQkFDaEIsRUFBRSxFQUFFLGdCQUFnQjtpQkFDdkIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0g7O2VBRUc7WUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDbkMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLE1BQU0sRUFBRSxJQUFJO29CQUNaLElBQUksRUFBRSxTQUFTO29CQUNmLEtBQUssRUFBRSxDQUFDLENBQWdCLEVBQUUsRUFBRTt3QkFDeEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNoRCxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztvQkFDM0QsQ0FBQztpQkFDSixDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQ7O1dBRUc7UUFDSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFO1lBQzFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUN6QixFQUFFLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztnQkFDL0MsRUFBRSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLEtBQUssRUFBRSxDQUFDLENBQWdCLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgUGF0aCwgUmFuZ2UsIFRyYW5zZm9ybXMsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5cbi8qKlxuICogSW5zZXJ0IGxpc3QgaXRlbSBpZiBzZWxlY3Rpb24gaW4gbGk+cC5cbiAqL1xuZXhwb3J0IGNvbnN0IGluc2VydExpc3RJdGVtID0gKGVkaXRvcjogVGhlRWRpdG9yKSA9PiB7XG4gICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgIVRoZVF1ZXJpZXMuaXNSYW5nZUF0Um9vdChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhFbnRyeSA9IFRoZVF1ZXJpZXMuZ2V0QWJvdmVCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMucGFyYWdyYXBoKTtcbiAgICAgICAgaWYgKCFwYXJhZ3JhcGhFbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFssIHBhcmFncmFwaFBhdGhdID0gcGFyYWdyYXBoRW50cnk7XG5cbiAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IEVkaXRvci5wYXJlbnQoZWRpdG9yLCBwYXJhZ3JhcGhQYXRoKTtcbiAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGxpc3RJdGVtTm9kZSkgJiYgbGlzdEl0ZW1Ob2RlLnR5cGUgIT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzRW5kID0gVGhlUXVlcmllcy5pc0Jsb2NrVGV4dEVtcHR5QWZ0ZXJTZWxlY3Rpb24oZWRpdG9yKTtcbiAgICAgICAgY29uc3QgbmV4dE5vZGVQYXRoID0gUGF0aC5uZXh0KHBhcmFncmFwaFBhdGgpO1xuICAgICAgICBjb25zdCBuZXh0TGlzdEl0ZW1QYXRoID0gUGF0aC5uZXh0KGxpc3RJdGVtUGF0aCk7XG4gICAgICAgIGNvbnN0IG5leHRFbmQgPSBFZGl0b3IuZW5kKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgbm90IGVuZCwgc3BsaXQgbm9kZXMsIHdyYXAgYSBsaXN0IGl0ZW0gb24gdGhlIG5ldyBwYXJhZ3JhcGggYW5kIG1vdmUgaXQgdG8gdGhlIG5leHQgbGlzdCBpdGVtXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIWlzRW5kKSB7XG4gICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc3BsaXROb2RlcyhlZGl0b3IsIHsgYXQ6IGVkaXRvci5zZWxlY3Rpb24sIGFsd2F5czogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBhdDogbmV4dE5vZGVQYXRoIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgICAgICBhdDogbmV4dE5vZGVQYXRoLFxuICAgICAgICAgICAgICAgICAgICB0bzogbmV4dExpc3RJdGVtUGF0aFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGVuZCwgc3BsaXQgbm9kZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNwbGl0Tm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGFsd2F5czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2hpZ2hlc3QnLFxuICAgICAgICAgICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBuICYmIFRoZUVkaXRvci5maW5kUGF0aChlZGl0b3IsIG4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGggJiYgcGF0aC5sZW5ndGggPT09IG5leHRMaXN0SXRlbVBhdGgubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSBpcyBhIGxpc3QgaW4gdGhlIGxpc3QgaXRlbSwgbW92ZSBpdCB0byB0aGUgbmV4dCBsaXN0IGl0ZW1cbiAgICAgICAgICovXG4gICAgICAgIGlmIChUaGVRdWVyaWVzLmdldE5vZGUoZWRpdG9yLCBuZXh0Tm9kZVBhdGgpKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBhdDogRWRpdG9yLnJhbmdlKGVkaXRvciwgbmV4dE5vZGVQYXRoLCBuZXh0RW5kKSxcbiAgICAgICAgICAgICAgICB0bzogbmV4dExpc3RJdGVtUGF0aC5jb25jYXQoMSksXG4gICAgICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0SXRlbU5vZGUuY2hpbGRyZW4uaW5jbHVkZXMobik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Editor, Path, Transforms } from 'slate';
|
|
2
|
+
import { getListItemEntry } from '../queries/get-list-item-entry';
|
|
3
|
+
import { hasListInListItem } from '../queries/has-list-in-list-item';
|
|
4
|
+
import { moveListItemSublistItemsToList } from './move-list-item-sublist-items-to-list';
|
|
5
|
+
import { isNodeTypeList } from '../queries/is-node-type-list';
|
|
6
|
+
export const moveListItemDown = (editor, { list, listItem }) => {
|
|
7
|
+
const [listNode] = list;
|
|
8
|
+
const [, listItemPath] = listItem;
|
|
9
|
+
Editor.withoutNormalizing(editor, () => {
|
|
10
|
+
// 以前的兄弟是新父级
|
|
11
|
+
const previousSiblingItem = Editor.node(editor, Path.previous(listItemPath));
|
|
12
|
+
if (previousSiblingItem) {
|
|
13
|
+
const [previousNode, previousPath] = previousSiblingItem;
|
|
14
|
+
const lastChildIndexOfPreviousNode = previousNode.children.length - 1;
|
|
15
|
+
const lastChildOfPreviousNode = previousNode.children[lastChildIndexOfPreviousNode];
|
|
16
|
+
const newPath = previousPath.concat(isNodeTypeList(lastChildOfPreviousNode)
|
|
17
|
+
? [lastChildIndexOfPreviousNode, lastChildOfPreviousNode.children.length]
|
|
18
|
+
: [previousNode.children.length]);
|
|
19
|
+
if (!isNodeTypeList(lastChildOfPreviousNode)) {
|
|
20
|
+
// 创建新子列表
|
|
21
|
+
const type = listNode.type;
|
|
22
|
+
Transforms.wrapNodes(editor, { type, children: [] }, {
|
|
23
|
+
at: listItemPath
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
// 将当前listItem移动到子列表
|
|
27
|
+
Transforms.moveNodes(editor, {
|
|
28
|
+
at: listItemPath,
|
|
29
|
+
to: newPath
|
|
30
|
+
});
|
|
31
|
+
const currentListItemEntry = getListItemEntry(editor, {});
|
|
32
|
+
if (hasListInListItem(currentListItemEntry.listItem[0])) {
|
|
33
|
+
moveListItemSublistItemsToList(editor, {
|
|
34
|
+
fromListItem: currentListItemEntry.listItem,
|
|
35
|
+
toList: currentListItemEntry.list
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1saXN0LWl0ZW0tZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1kb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQWEsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUd0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFPOUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBMkIsRUFBRSxFQUFFO0lBQy9GLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDeEIsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ25DLFlBQVk7UUFDWixNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQXdCLENBQUM7UUFFcEcsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHLG1CQUFtQixDQUFDO1lBQ3pELE1BQU0sNEJBQTRCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBa0IsQ0FBQztZQUVyRyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUMvQixjQUFjLENBQUMsdUJBQXVCLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixFQUFFLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3ZDLENBQUM7WUFFRixJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEVBQUU7Z0JBQzFDLFNBQVM7Z0JBQ1QsTUFBTSxJQUFJLEdBQUksUUFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQzlDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQW1CLEVBQUU7b0JBQ2xFLEVBQUUsRUFBRSxZQUFZO2lCQUNuQixDQUFDLENBQUM7YUFDTjtZQUNELG9CQUFvQjtZQUNwQixVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLEVBQUUsRUFBRSxPQUFPO2FBQ2QsQ0FBQyxDQUFDO1lBRUgsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckQsOEJBQThCLENBQUMsTUFBTSxFQUFFO29CQUNuQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsUUFBUTtvQkFDM0MsTUFBTSxFQUFFLG9CQUFvQixDQUFDLElBQUk7aUJBQ3BDLENBQUMsQ0FBQzthQUNOO1NBQ0o7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2VzdG9yLCBFZGl0b3IsIE5vZGVFbnRyeSwgUGF0aCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbUVudHJ5IH0gZnJvbSAnLi4vcXVlcmllcy9nZXQtbGlzdC1pdGVtLWVudHJ5JztcbmltcG9ydCB7IGhhc0xpc3RJbkxpc3RJdGVtIH0gZnJvbSAnLi4vcXVlcmllcy9oYXMtbGlzdC1pbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0IH0gZnJvbSAnLi9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QnO1xuaW1wb3J0IHsgaXNOb2RlVHlwZUxpc3QgfSBmcm9tICcuLi9xdWVyaWVzL2lzLW5vZGUtdHlwZS1saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBNb3ZlTGlzdEl0ZW1Eb3duT3B0aW9ucyB7XG4gICAgbGlzdDogTm9kZUVudHJ5PEFuY2VzdG9yPjtcbiAgICBsaXN0SXRlbTogTm9kZUVudHJ5PEFuY2VzdG9yPjtcbn1cblxuZXhwb3J0IGNvbnN0IG1vdmVMaXN0SXRlbURvd24gPSAoZWRpdG9yOiBUaGVFZGl0b3IsIHsgbGlzdCwgbGlzdEl0ZW0gfTogTW92ZUxpc3RJdGVtRG93bk9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBbbGlzdE5vZGVdID0gbGlzdDtcbiAgICBjb25zdCBbLCBsaXN0SXRlbVBhdGhdID0gbGlzdEl0ZW07XG5cbiAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAvLyDku6XliY3nmoTlhYTlvJ/mmK/mlrDniLbnuqdcbiAgICAgICAgY29uc3QgcHJldmlvdXNTaWJsaW5nSXRlbSA9IEVkaXRvci5ub2RlKGVkaXRvciwgUGF0aC5wcmV2aW91cyhsaXN0SXRlbVBhdGgpKSBhcyBOb2RlRW50cnk8QW5jZXN0b3I+O1xuXG4gICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmdJdGVtKSB7XG4gICAgICAgICAgICBjb25zdCBbcHJldmlvdXNOb2RlLCBwcmV2aW91c1BhdGhdID0gcHJldmlvdXNTaWJsaW5nSXRlbTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4T2ZQcmV2aW91c05vZGUgPSBwcmV2aW91c05vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlID0gcHJldmlvdXNOb2RlLmNoaWxkcmVuW2xhc3RDaGlsZEluZGV4T2ZQcmV2aW91c05vZGVdIGFzIEN1c3RvbUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBwcmV2aW91c1BhdGguY29uY2F0KFxuICAgICAgICAgICAgICAgIGlzTm9kZVR5cGVMaXN0KGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlKVxuICAgICAgICAgICAgICAgICAgICA/IFtsYXN0Q2hpbGRJbmRleE9mUHJldmlvdXNOb2RlLCBsYXN0Q2hpbGRPZlByZXZpb3VzTm9kZS5jaGlsZHJlbi5sZW5ndGhdXG4gICAgICAgICAgICAgICAgICAgIDogW3ByZXZpb3VzTm9kZS5jaGlsZHJlbi5sZW5ndGhdXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIWlzTm9kZVR5cGVMaXN0KGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIOWIm+W7uuaWsOWtkOWIl+ihqFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAobGlzdE5vZGUgYXMgQ3VzdG9tRWxlbWVudCkudHlwZTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhlZGl0b3IsIHsgdHlwZSwgY2hpbGRyZW46IFtdIH0gYXMgQ3VzdG9tRWxlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICBhdDogbGlzdEl0ZW1QYXRoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyDlsIblvZPliY1saXN0SXRlbeenu+WKqOWIsOWtkOWIl+ihqFxuICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IGxpc3RJdGVtUGF0aCxcbiAgICAgICAgICAgICAgICB0bzogbmV3UGF0aFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaXN0SXRlbUVudHJ5ID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgIGlmIChoYXNMaXN0SW5MaXN0SXRlbShjdXJyZW50TGlzdEl0ZW1FbnRyeS5saXN0SXRlbVswXSkpIHtcbiAgICAgICAgICAgICAgICBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3QoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGZyb21MaXN0SXRlbTogY3VycmVudExpc3RJdGVtRW50cnkubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHRvTGlzdDogY3VycmVudExpc3RJdGVtRW50cnkubGlzdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59O1xuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Path, Transforms } from 'slate';
|
|
2
|
+
import { moveChildren } from '../../../transforms/move-children';
|
|
3
|
+
import { getListItemSublist } from '../queries/get-list-item-sublist';
|
|
4
|
+
import * as TheQueries from '../../../queries';
|
|
5
|
+
/**
|
|
6
|
+
* Move fromListItem sublist list items to the end of `toListItem` sublist.
|
|
7
|
+
* If there is no `toListItem` sublist, insert one.
|
|
8
|
+
*/
|
|
9
|
+
export const moveListItemSublistItemsToListItemSublist = (editor, { fromListItem, toListItem, start }, options) => {
|
|
10
|
+
const [, fromListItemPath] = fromListItem;
|
|
11
|
+
const [toListItemNode, toListItemPath] = toListItem;
|
|
12
|
+
const fromListItemSublist = getListItemSublist(fromListItem, options);
|
|
13
|
+
if (!fromListItemSublist)
|
|
14
|
+
return 0;
|
|
15
|
+
const [, fromListItemSublistPath] = fromListItemSublist;
|
|
16
|
+
const toListItemSublist = getListItemSublist(toListItem, options);
|
|
17
|
+
let to;
|
|
18
|
+
if (!toListItemSublist) {
|
|
19
|
+
const fromList = TheQueries.getParent(editor, fromListItemPath);
|
|
20
|
+
if (!fromList)
|
|
21
|
+
return 0;
|
|
22
|
+
const [fromListNode] = fromList;
|
|
23
|
+
const fromListType = fromListNode.type;
|
|
24
|
+
const toListItemSublistPath = toListItemPath.concat([toListItemNode.children.length]);
|
|
25
|
+
Transforms.insertNodes(editor, { type: fromListType, children: [] }, { at: toListItemSublistPath });
|
|
26
|
+
to = toListItemSublistPath.concat([0]);
|
|
27
|
+
}
|
|
28
|
+
else if (start) {
|
|
29
|
+
const [, toListItemSublistPath] = toListItemSublist;
|
|
30
|
+
to = toListItemSublistPath.concat([0]);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
to = Path.next(TheQueries.getLastChildPath(toListItemSublist));
|
|
34
|
+
}
|
|
35
|
+
const moved = moveChildren(editor, {
|
|
36
|
+
at: Path.previous(fromListItemSublistPath),
|
|
37
|
+
to
|
|
38
|
+
});
|
|
39
|
+
// Remove the empty list
|
|
40
|
+
Transforms.delete(editor, { at: fromListItemPath });
|
|
41
|
+
return moved;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1saXN0LWl0ZW0tc3VibGlzdC1pdGVtcy10by1saXN0LWl0ZW0tc3VibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QtaXRlbS1zdWJsaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUc5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQW1CL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsQ0FDckQsTUFBaUIsRUFDakIsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBb0QsRUFDckYsT0FBYSxFQUNmLEVBQUU7SUFDQSxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLFlBQVksQ0FBQztJQUMxQyxNQUFNLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUVwRCxNQUFNLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxJQUFJLENBQUMsbUJBQW1CO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsTUFBTSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsR0FBRyxtQkFBbUIsQ0FBQztJQUV4RCxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVsRSxJQUFJLEVBQVEsQ0FBQztJQUViLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUNwQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUVoQyxNQUFNLFlBQVksR0FBSSxZQUE4QixDQUFDLElBQUksQ0FBQztRQUMxRCxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEYsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQW1CLEVBQUUsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXJILEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFDO1NBQU0sSUFBSSxLQUFLLEVBQUU7UUFDZCxNQUFNLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1FBQ3BELEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFDO1NBQU07UUFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQztRQUMxQyxFQUFFO0tBQ0wsQ0FBQyxDQUFDO0lBRUgsd0JBQXdCO0lBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUVwRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgTm9kZUVudHJ5LCBQYXRoLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IG1vdmVDaGlsZHJlbiB9IGZyb20gJy4uLy4uLy4uL3RyYW5zZm9ybXMvbW92ZS1jaGlsZHJlbic7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbVN1Ymxpc3QgfSBmcm9tICcuLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tc3VibGlzdCc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vdmVMaXN0SXRlbVN1Ymxpc3RJdGVtc1RvTGlzdEl0ZW1TdWJsaXN0T3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogVGhlIGxpc3QgaXRlbSB0byBtZXJnZS5cbiAgICAgKi9cbiAgICBmcm9tTGlzdEl0ZW06IE5vZGVFbnRyeTxBbmNlc3Rvcj47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBpdGVtIHdoZXJlIHRvIG1lcmdlLlxuICAgICAqL1xuICAgIHRvTGlzdEl0ZW06IE5vZGVFbnRyeTxBbmNlc3Rvcj47XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlIHRvIHRoZSBzdGFydCBvZiB0aGUgbGlzdCBpbnN0ZWFkIG9mIHRoZSBlbmQuXG4gICAgICovXG4gICAgc3RhcnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE1vdmUgZnJvbUxpc3RJdGVtIHN1Ymxpc3QgbGlzdCBpdGVtcyB0byB0aGUgZW5kIG9mIGB0b0xpc3RJdGVtYCBzdWJsaXN0LlxuICogSWYgdGhlcmUgaXMgbm8gYHRvTGlzdEl0ZW1gIHN1Ymxpc3QsIGluc2VydCBvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdCA9IChcbiAgICBlZGl0b3I6IFRoZUVkaXRvcixcbiAgICB7IGZyb21MaXN0SXRlbSwgdG9MaXN0SXRlbSwgc3RhcnQgfTogTW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3RPcHRpb25zLFxuICAgIG9wdGlvbnM/OiBhbnlcbikgPT4ge1xuICAgIGNvbnN0IFssIGZyb21MaXN0SXRlbVBhdGhdID0gZnJvbUxpc3RJdGVtO1xuICAgIGNvbnN0IFt0b0xpc3RJdGVtTm9kZSwgdG9MaXN0SXRlbVBhdGhdID0gdG9MaXN0SXRlbTtcblxuICAgIGNvbnN0IGZyb21MaXN0SXRlbVN1Ymxpc3QgPSBnZXRMaXN0SXRlbVN1Ymxpc3QoZnJvbUxpc3RJdGVtLCBvcHRpb25zKTtcbiAgICBpZiAoIWZyb21MaXN0SXRlbVN1Ymxpc3QpIHJldHVybiAwO1xuICAgIGNvbnN0IFssIGZyb21MaXN0SXRlbVN1Ymxpc3RQYXRoXSA9IGZyb21MaXN0SXRlbVN1Ymxpc3Q7XG5cbiAgICBjb25zdCB0b0xpc3RJdGVtU3VibGlzdCA9IGdldExpc3RJdGVtU3VibGlzdCh0b0xpc3RJdGVtLCBvcHRpb25zKTtcblxuICAgIGxldCB0bzogUGF0aDtcblxuICAgIGlmICghdG9MaXN0SXRlbVN1Ymxpc3QpIHtcbiAgICAgICAgY29uc3QgZnJvbUxpc3QgPSBUaGVRdWVyaWVzLmdldFBhcmVudChlZGl0b3IsIGZyb21MaXN0SXRlbVBhdGgpO1xuICAgICAgICBpZiAoIWZyb21MaXN0KSByZXR1cm4gMDtcbiAgICAgICAgY29uc3QgW2Zyb21MaXN0Tm9kZV0gPSBmcm9tTGlzdDtcblxuICAgICAgICBjb25zdCBmcm9tTGlzdFR5cGUgPSAoZnJvbUxpc3ROb2RlIGFzIEN1c3RvbUVsZW1lbnQpLnR5cGU7XG4gICAgICAgIGNvbnN0IHRvTGlzdEl0ZW1TdWJsaXN0UGF0aCA9IHRvTGlzdEl0ZW1QYXRoLmNvbmNhdChbdG9MaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoXSk7XG4gICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCB7IHR5cGU6IGZyb21MaXN0VHlwZSwgY2hpbGRyZW46IFtdIH0gYXMgQ3VzdG9tRWxlbWVudCwgeyBhdDogdG9MaXN0SXRlbVN1Ymxpc3RQYXRoIH0pO1xuXG4gICAgICAgIHRvID0gdG9MaXN0SXRlbVN1Ymxpc3RQYXRoLmNvbmNhdChbMF0pO1xuICAgIH0gZWxzZSBpZiAoc3RhcnQpIHtcbiAgICAgICAgY29uc3QgWywgdG9MaXN0SXRlbVN1Ymxpc3RQYXRoXSA9IHRvTGlzdEl0ZW1TdWJsaXN0O1xuICAgICAgICB0byA9IHRvTGlzdEl0ZW1TdWJsaXN0UGF0aC5jb25jYXQoWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0byA9IFBhdGgubmV4dChUaGVRdWVyaWVzLmdldExhc3RDaGlsZFBhdGgodG9MaXN0SXRlbVN1Ymxpc3QpKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb3ZlZCA9IG1vdmVDaGlsZHJlbihlZGl0b3IsIHtcbiAgICAgICAgYXQ6IFBhdGgucHJldmlvdXMoZnJvbUxpc3RJdGVtU3VibGlzdFBhdGgpLFxuICAgICAgICB0b1xuICAgIH0pO1xuXG4gICAgLy8gUmVtb3ZlIHRoZSBlbXB0eSBsaXN0XG4gICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBmcm9tTGlzdEl0ZW1QYXRoIH0pO1xuXG4gICAgcmV0dXJuIG1vdmVkO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Editor, Path, Transforms } from 'slate';
|
|
2
|
+
import { getListTypes } from '../queries/get-list-types';
|
|
3
|
+
import { moveChildren } from '../../../transforms/move-children';
|
|
4
|
+
import * as TheQueries from '../../../queries';
|
|
5
|
+
/**
|
|
6
|
+
* 将 fromListItem 子列表的列表项移到 toList
|
|
7
|
+
*/
|
|
8
|
+
export const moveListItemSublistItemsToList = (editor, { fromListItem, toList, location }) => {
|
|
9
|
+
const fromListItemSublist = TheQueries.findDescendant(editor, {
|
|
10
|
+
at: fromListItem[1],
|
|
11
|
+
match: {
|
|
12
|
+
type: getListTypes()
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
if (!fromListItemSublist)
|
|
16
|
+
return 0;
|
|
17
|
+
const [, fromListItemSublistPath] = fromListItemSublist;
|
|
18
|
+
const lastChildPath = TheQueries.getLastChildPath(toList);
|
|
19
|
+
let moved;
|
|
20
|
+
Editor.withoutNormalizing(editor, () => {
|
|
21
|
+
moved = moveChildren(editor, {
|
|
22
|
+
at: fromListItemSublistPath,
|
|
23
|
+
to: location ? toList[1].concat(location) : Path.next(lastChildPath)
|
|
24
|
+
});
|
|
25
|
+
// 删除空白列表
|
|
26
|
+
Transforms.delete(editor, { at: fromListItemSublistPath });
|
|
27
|
+
});
|
|
28
|
+
return moved;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1saXN0LWl0ZW0tc3VibGlzdC1pdGVtcy10by1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGlzdC90cmFuc2Zvcm1zL21vdmUtbGlzdC1pdGVtLXN1Ymxpc3QtaXRlbXMtdG8tbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksTUFBTSxFQUFhLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBbUIvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFnQyxFQUFFLEVBQUU7SUFDbEksTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtRQUMxRCxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNuQixLQUFLLEVBQUU7WUFDSCxJQUFJLEVBQUUsWUFBWSxFQUFFO1NBQ3ZCO0tBQ0osQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLG1CQUFtQjtRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRW5DLE1BQU0sQ0FBQyxFQUFFLHVCQUF1QixDQUFDLEdBQUcsbUJBQW1CLENBQUM7SUFDeEQsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELElBQUksS0FBYSxDQUFDO0lBQ2xCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ25DLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3pCLEVBQUUsRUFBRSx1QkFBdUI7WUFDM0IsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDdkUsQ0FBQyxDQUFDO1FBRUgsU0FBUztRQUNULFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2VzdG9yLCBFZGl0b3IsIE5vZGVFbnRyeSwgUGF0aCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0TGlzdFR5cGVzIH0gZnJvbSAnLi4vcXVlcmllcy9nZXQtbGlzdC10eXBlcyc7XG5pbXBvcnQgeyBtb3ZlQ2hpbGRyZW4gfSBmcm9tICcuLi8uLi8uLi90cmFuc2Zvcm1zL21vdmUtY2hpbGRyZW4nO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUxpc3RJdGVtSW50b0xpc3RPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiDor6XoioLngrnnmoTlrZDliJfooajnmoTliJfooajpobnlsIbooqvnp7vliqjjgIJcbiAgICAgKi9cbiAgICBmcm9tTGlzdEl0ZW06IE5vZGVFbnRyeTxBbmNlc3Rvcj47XG5cbiAgICAvKipcbiAgICAgKiDliJfooajpobnlsIbooqvnp7vliqjliLDor6XliJfooajkuK3jgIJcbiAgICAgKi9cbiAgICB0b0xpc3Q6IE5vZGVFbnRyeTxBbmNlc3Rvcj47XG5cbiAgICAvKipcbiAgICAgKiDlhbfkvZPkvY3nva5cbiAgICAgKi9cbiAgICBsb2NhdGlvbj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiDlsIYgZnJvbUxpc3RJdGVtIOWtkOWIl+ihqOeahOWIl+ihqOmhueenu+WIsCB0b0xpc3RcbiAqL1xuZXhwb3J0IGNvbnN0IG1vdmVMaXN0SXRlbVN1Ymxpc3RJdGVtc1RvTGlzdCA9IChlZGl0b3I6IFRoZUVkaXRvciwgeyBmcm9tTGlzdEl0ZW0sIHRvTGlzdCwgbG9jYXRpb24gfTogTWVyZ2VMaXN0SXRlbUludG9MaXN0T3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGZyb21MaXN0SXRlbVN1Ymxpc3QgPSBUaGVRdWVyaWVzLmZpbmREZXNjZW5kYW50KGVkaXRvciwge1xuICAgICAgICBhdDogZnJvbUxpc3RJdGVtWzFdLFxuICAgICAgICBtYXRjaDoge1xuICAgICAgICAgICAgdHlwZTogZ2V0TGlzdFR5cGVzKClcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghZnJvbUxpc3RJdGVtU3VibGlzdCkgcmV0dXJuIDA7XG5cbiAgICBjb25zdCBbLCBmcm9tTGlzdEl0ZW1TdWJsaXN0UGF0aF0gPSBmcm9tTGlzdEl0ZW1TdWJsaXN0O1xuICAgIGNvbnN0IGxhc3RDaGlsZFBhdGggPSBUaGVRdWVyaWVzLmdldExhc3RDaGlsZFBhdGgodG9MaXN0KTtcbiAgICBsZXQgbW92ZWQ6IG51bWJlcjtcbiAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICBtb3ZlZCA9IG1vdmVDaGlsZHJlbihlZGl0b3IsIHtcbiAgICAgICAgICAgIGF0OiBmcm9tTGlzdEl0ZW1TdWJsaXN0UGF0aCxcbiAgICAgICAgICAgIHRvOiBsb2NhdGlvbiA/IHRvTGlzdFsxXS5jb25jYXQobG9jYXRpb24pIDogUGF0aC5uZXh0KGxhc3RDaGlsZFBhdGgpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIOWIoOmZpOepuueZveWIl+ihqFxuICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQ6IGZyb21MaXN0SXRlbVN1Ymxpc3RQYXRoIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1vdmVkO1xufTtcbiJdfQ==
|