@worktile/theia 3.0.8 → 3.0.9
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/README.md +11 -11
- package/bundles/worktile-theia.umd.js +14357 -14343
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/color-select/color-select.component.d.ts +32 -32
- package/components/color-select/color-select.component.scss +107 -107
- package/components/column-resize/column-resize-notifier.d.ts +35 -35
- package/components/column-resize/column-resize.directive.d.ts +26 -26
- package/components/column-resize/column-resize.module.d.ts +14 -14
- package/components/column-resize/event-dispatcher.d.ts +31 -31
- package/components/column-resize/overlay-handle.component.d.ts +33 -33
- package/components/column-resize/resize-ref.d.ts +25 -25
- package/components/column-resize/resizing.store.d.ts +28 -28
- package/components/column-resize/selectors.d.ts +3 -3
- package/components/contextmenu/contextmenu.component.d.ts +22 -22
- package/components/conversion-hint/conversion-hint.component.d.ts +18 -18
- package/components/conversion-hint/conversion-hint.component.scss +11 -11
- package/components/element/element.component.d.ts +7 -7
- package/components/inline-toolbar/inline-toolbar.component.d.ts +26 -26
- package/components/nav-split-line/nav-split-line.component.d.ts +13 -13
- package/components/table-select/table-select.component.d.ts +20 -20
- package/components/table-select/table-select.component.scss +35 -35
- package/components/template/template.component.d.ts +15 -15
- package/components/text/text.component.d.ts +14 -14
- package/components/toolbar/toolbar.component.d.ts +65 -65
- package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +33 -33
- package/components/toolbar-dropdown/toolbar-dropdown.component.scss +0 -1
- package/components/toolbar-group/toolbar-group.component.d.ts +33 -33
- package/components/toolbar-group/toolbar-group.component.scss +17 -17
- package/components/toolbar-item/toolbar-item.component.d.ts +18 -18
- package/constants/auto-format-rules.d.ts +2 -2
- package/constants/code.d.ts +9 -9
- package/constants/color-select.d.ts +14 -14
- package/constants/default.d.ts +9 -9
- package/constants/error.d.ts +5 -5
- package/constants/index.d.ts +5 -5
- package/constants/node-types.d.ts +99 -99
- package/constants/selector.d.ts +2 -2
- package/constants/toolbar.d.ts +17 -17
- package/core/create-plugin.d.ts +2 -2
- package/core/create-toolbar.d.ts +5 -5
- package/core/index.d.ts +4 -4
- package/core/toolbar-item/base-toolbar-item.d.ts +29 -29
- package/core/utils/combine-plugins.d.ts +2 -2
- package/core/utils/flatten-deep-plugins.d.ts +6 -6
- package/core/utils/get-plugin-options.d.ts +2 -2
- package/core/utils/get-plugin.d.ts +2 -2
- package/core/utils/get-plugins.d.ts +2 -2
- package/core/utils/index.d.ts +10 -10
- package/core/utils/merge-array.d.ts +1 -1
- package/core/utils/merge-deep-plugins.d.ts +2 -2
- package/core/utils/merge-options.d.ts +2 -2
- package/core/utils/nested-structure-by-key.d.ts +2 -2
- package/core/utils/plugins-by-key.d.ts +2 -2
- package/core/with-theia.d.ts +4 -4
- package/custom-types.d.ts +131 -131
- package/editor.component.d.ts +92 -92
- package/editor.module.d.ts +98 -98
- package/esm2015/components/color-select/color-select.component.js +112 -112
- package/esm2015/components/column-resize/column-resize-notifier.js +31 -31
- package/esm2015/components/column-resize/column-resize.directive.js +98 -98
- package/esm2015/components/column-resize/column-resize.module.js +34 -34
- package/esm2015/components/column-resize/event-dispatcher.js +55 -55
- package/esm2015/components/column-resize/overlay-handle.component.js +139 -139
- package/esm2015/components/column-resize/resize-ref.js +25 -25
- package/esm2015/components/column-resize/resizing.store.js +154 -154
- package/esm2015/components/column-resize/selectors.js +4 -4
- package/esm2015/components/contextmenu/contextmenu.component.js +64 -64
- package/esm2015/components/conversion-hint/conversion-hint.component.js +59 -59
- package/esm2015/components/element/element.component.js +23 -23
- package/esm2015/components/inline-toolbar/inline-toolbar.component.js +126 -126
- package/esm2015/components/nav-split-line/nav-split-line.component.js +36 -36
- package/esm2015/components/table-select/table-select.component.js +53 -53
- package/esm2015/components/template/template.component.js +66 -66
- package/esm2015/components/text/text.component.js +57 -57
- package/esm2015/components/toolbar/toolbar.component.js +250 -250
- package/esm2015/components/toolbar-dropdown/toolbar-dropdown.component.js +132 -132
- package/esm2015/components/toolbar-group/toolbar-group.component.js +116 -116
- package/esm2015/components/toolbar-item/toolbar-item.component.js +64 -64
- package/esm2015/constants/auto-format-rules.js +166 -166
- package/esm2015/constants/code.js +88 -88
- package/esm2015/constants/color-select.js +61 -61
- package/esm2015/constants/default.js +9 -9
- package/esm2015/constants/error.js +7 -7
- package/esm2015/constants/index.js +5 -5
- package/esm2015/constants/node-types.js +132 -132
- package/esm2015/constants/selector.js +3 -3
- package/esm2015/constants/toolbar.js +69 -69
- package/esm2015/core/create-plugin.js +4 -4
- package/esm2015/core/create-toolbar.js +56 -56
- package/esm2015/core/index.js +4 -4
- package/esm2015/core/toolbar-item/base-toolbar-item.js +91 -91
- package/esm2015/core/utils/combine-plugins.js +9 -9
- package/esm2015/core/utils/flatten-deep-plugins.js +18 -18
- package/esm2015/core/utils/get-plugin-options.js +2 -2
- package/esm2015/core/utils/get-plugin.js +1 -1
- package/esm2015/core/utils/get-plugins.js +4 -4
- package/esm2015/core/utils/index.js +10 -10
- package/esm2015/core/utils/merge-array.js +17 -17
- package/esm2015/core/utils/merge-deep-plugins.js +13 -13
- package/esm2015/core/utils/merge-options.js +19 -19
- package/esm2015/core/utils/nested-structure-by-key.js +10 -10
- package/esm2015/core/utils/plugins-by-key.js +9 -9
- package/esm2015/core/with-theia.js +22 -22
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +439 -439
- package/esm2015/editor.module.js +201 -201
- package/esm2015/interfaces/auto-format.js +1 -1
- package/esm2015/interfaces/editor.js +22 -22
- package/esm2015/interfaces/element.js +1 -1
- package/esm2015/interfaces/image.js +2 -2
- package/esm2015/interfaces/index.js +8 -8
- package/esm2015/interfaces/plugins/index.js +4 -4
- package/esm2015/interfaces/plugins/no-infer.js +1 -1
- package/esm2015/interfaces/plugins/plugin-key.js +39 -39
- package/esm2015/interfaces/plugins/plugins.js +1 -1
- package/esm2015/interfaces/plugins/with-override.js +1 -1
- package/esm2015/interfaces/reset-block-type-plugin-options.js +2 -2
- package/esm2015/interfaces/toolbar.js +11 -11
- package/esm2015/interfaces/upload.js +2 -2
- package/esm2015/interfaces/utility/index.js +3 -3
- package/esm2015/interfaces/utility/nested-structure-by-key.js +1 -1
- package/esm2015/interfaces/utility/override-by-key.js +1 -1
- package/esm2015/interfaces/utility/types.js +1 -1
- package/esm2015/interfaces/valid-children-types.js +35 -35
- package/esm2015/interfaces/view-base.js +21 -21
- package/esm2015/pipes.js +42 -42
- package/esm2015/plugins/align/align.editor.js +47 -47
- package/esm2015/plugins/align/align.plugin.js +63 -63
- package/esm2015/plugins/autoformat/autoformat.plugin.js +109 -109
- package/esm2015/plugins/autoformat/transforms/auto-format-block.js +14 -14
- package/esm2015/plugins/autoformat/transforms/auto-format-inline.js +77 -77
- package/esm2015/plugins/blockquote/blockquote.component.js +21 -21
- package/esm2015/plugins/blockquote/blockquote.editor.js +20 -20
- package/esm2015/plugins/blockquote/blockquote.plugin.js +70 -70
- package/esm2015/plugins/code/code.component.js +244 -244
- package/esm2015/plugins/code/code.editor.js +47 -47
- package/esm2015/plugins/code/code.plugin.js +41 -41
- package/esm2015/plugins/color/color.editor.js +44 -44
- package/esm2015/plugins/color/color.plugin.js +27 -27
- package/esm2015/plugins/color/toolbar-item.component.js +79 -79
- package/esm2015/plugins/common/auto-insert-data..js +77 -77
- package/esm2015/plugins/common/block-card.plugin.js +286 -286
- package/esm2015/plugins/common/get-fragment.plugin.js +24 -24
- package/esm2015/plugins/common/history.plugin.js +30 -30
- package/esm2015/plugins/common/move-selection.plugin.js +89 -89
- package/esm2015/plugins/common/remove-empty.plugin.js +59 -59
- package/esm2015/plugins/common/remove-void.plugin.js +56 -56
- package/esm2015/plugins/common/reset-type.plugin.js +34 -34
- package/esm2015/plugins/common/transforms.plugin.js +17 -17
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +38 -38
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +121 -121
- package/esm2015/plugins/font-size/font-size.editor.js +97 -97
- package/esm2015/plugins/heading/heading.editor.js +53 -53
- package/esm2015/plugins/heading/heading.plugin.js +84 -84
- package/esm2015/plugins/hr/hr.component.js +40 -40
- package/esm2015/plugins/hr/hr.editor.js +7 -7
- package/esm2015/plugins/hr/hr.plugin.js +41 -41
- package/esm2015/plugins/image/image.component.js +369 -369
- package/esm2015/plugins/image/image.editor.js +57 -57
- package/esm2015/plugins/image/image.plugin.js +57 -57
- package/esm2015/plugins/indent/indent.editor.js +72 -72
- package/esm2015/plugins/indent/indent.plugin.js +59 -59
- package/esm2015/plugins/indent/on-keydown-indent.js +53 -53
- package/esm2015/plugins/index.js +70 -70
- package/esm2015/plugins/inline-code/inline-code.component.js +21 -21
- package/esm2015/plugins/inline-code/inline-code.editor.js +48 -48
- package/esm2015/plugins/inline-code/inline-code.plugin.js +65 -65
- package/esm2015/plugins/link/edit/link-edit.component.js +108 -108
- package/esm2015/plugins/link/hover/link-hover.component.js +39 -39
- package/esm2015/plugins/link/link.component.js +162 -162
- package/esm2015/plugins/link/link.editor.js +66 -66
- package/esm2015/plugins/link/link.plugin.js +58 -58
- package/esm2015/plugins/link/link.types.js +12 -12
- package/esm2015/plugins/list/components/bulleted-list.component.js +33 -33
- package/esm2015/plugins/list/components/list-item.component.js +94 -94
- package/esm2015/plugins/list/components/numbered-list.component.js +39 -39
- package/esm2015/plugins/list/list.editor.js +125 -125
- package/esm2015/plugins/list/list.plugin.js +280 -280
- package/esm2015/plugins/list/normalizers/get-list-normalizer.js +39 -39
- package/esm2015/plugins/list/normalizers/normalize-list-item.js +19 -19
- package/esm2015/plugins/list/normalizers/normalize-no.js +42 -42
- package/esm2015/plugins/list/on-key-down-list.js +32 -32
- package/esm2015/plugins/list/queries/get-list-item-entry.js +27 -27
- package/esm2015/plugins/list/queries/get-list-item-sublist.js +12 -12
- package/esm2015/plugins/list/queries/get-list-types.js +5 -5
- package/esm2015/plugins/list/queries/get-start-list-item.js +26 -26
- package/esm2015/plugins/list/queries/has-list-in-list-item.js +27 -27
- package/esm2015/plugins/list/queries/is-in-list.js +5 -5
- package/esm2015/plugins/list/queries/is-list-nested.js +10 -10
- package/esm2015/plugins/list/queries/is-list.js +5 -5
- package/esm2015/plugins/list/queries/is-node-type-list.js +4 -4
- package/esm2015/plugins/list/queries/is-selection-at-list-item-start.js +12 -12
- package/esm2015/plugins/list/queries/is-selection-in-same-list-item.js +16 -16
- package/esm2015/plugins/list/queries/is-single-list-item.js +9 -9
- package/esm2015/plugins/list/transforms/insert-list-data.js +71 -71
- package/esm2015/plugins/list/transforms/insert-list-item.js +72 -72
- package/esm2015/plugins/list/transforms/move-list-item-down.js +41 -41
- package/esm2015/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.js +42 -42
- package/esm2015/plugins/list/transforms/move-list-item-sublist-items-to-list.js +29 -29
- package/esm2015/plugins/list/transforms/move-list-item-up.js +77 -77
- package/esm2015/plugins/list/transforms/unwrap-list.js +9 -9
- package/esm2015/plugins/list/types.js +2 -2
- package/esm2015/plugins/mark/mark.editor.js +28 -28
- package/esm2015/plugins/mark/mark.plugin.js +101 -101
- package/esm2015/plugins/node-id/node-id.plugin.js +68 -68
- package/esm2015/plugins/normalizers/insert-paragraph-nodes.js +28 -28
- package/esm2015/plugins/normalizers/remove-empty-nodes.js +17 -17
- package/esm2015/plugins/normalizers/trailing-node.plugin.js +33 -33
- package/esm2015/plugins/paint-format/paint-format.editor.js +122 -122
- package/esm2015/plugins/public-api.js +15 -15
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +101 -101
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +83 -83
- package/esm2015/plugins/quick-insert/quick-insert.editor.js +52 -52
- package/esm2015/plugins/quick-insert/quick-insert.plugin.js +74 -74
- package/esm2015/plugins/soft-break/soft-break.plugin.js +36 -36
- package/esm2015/plugins/soft-break/soft-break.types.js +1 -1
- package/esm2015/plugins/table/components/insert-mark/insert-mark.component.js +102 -102
- package/esm2015/plugins/table/components/row/row.component.js +46 -46
- package/esm2015/plugins/table/components/table.component.js +469 -469
- package/esm2015/plugins/table/components/td/td.component.js +698 -698
- package/esm2015/plugins/table/components/toolbar/table-options.component.js +67 -67
- package/esm2015/plugins/table/components/toolbar/table-toolbar.component.js +161 -161
- package/esm2015/plugins/table/table.editor.js +182 -182
- package/esm2015/plugins/table/table.plugin.js +423 -423
- package/esm2015/plugins/table/table.service.js +102 -102
- package/esm2015/plugins/table/table.store.js +479 -479
- package/esm2015/plugins/table/table.types.js +33 -33
- package/esm2015/plugins/table/toolbar-item.component.js +61 -61
- package/esm2015/plugins/table/transforms/clear-cell.js +11 -11
- package/esm2015/plugins/table/transforms/clear-table-node.js +27 -27
- package/esm2015/plugins/table/transforms/insert-column.js +57 -57
- package/esm2015/plugins/table/transforms/insert-row.js +42 -42
- package/esm2015/plugins/table/transforms/insert-table.js +14 -14
- package/esm2015/plugins/table/transforms/remove-column.js +51 -51
- package/esm2015/plugins/table/transforms/remove-row.js +50 -50
- package/esm2015/plugins/table/transforms/remove-table.js +49 -49
- package/esm2015/plugins/table/utils/add-columns.js +28 -28
- package/esm2015/plugins/table/utils/calc-anchor-position.js +24 -24
- package/esm2015/plugins/table/utils/calc-span.js +72 -72
- package/esm2015/plugins/table/utils/create-cell.js +19 -19
- package/esm2015/plugins/table/utils/create-row.js +12 -12
- package/esm2015/plugins/table/utils/create-table.js +13 -13
- package/esm2015/plugins/table/utils/get-base-height.js +22 -22
- package/esm2015/plugins/table/utils/get-select-cell-node.js +16 -16
- package/esm2015/plugins/table/utils/index.js +8 -8
- package/esm2015/plugins/table/utils/is-range-in-table.js +16 -16
- package/esm2015/plugins/table/utils/is-selection-in-table.js +11 -11
- package/esm2015/plugins/table/utils/is-virtual-key.js +13 -13
- package/esm2015/plugins/table/utils/merge-cell.js +90 -90
- package/esm2015/plugins/table/utils/next-path.js +5 -5
- package/esm2015/plugins/table/utils/normalize-table.js +30 -30
- package/esm2015/plugins/table/utils/remove-columns.js +23 -23
- package/esm2015/plugins/table/utils/set-menu-cell-invisibility.js +15 -15
- package/esm2015/plugins/table/utils/split-cell.js +31 -31
- package/esm2015/plugins/table/utils/table-position.js +242 -242
- package/esm2015/plugins/todo-item/todo-item.component.js +55 -55
- package/esm2015/plugins/todo-item/todo-item.editor.js +31 -31
- package/esm2015/plugins/todo-item/todo-item.plugin.js +78 -78
- package/esm2015/plugins/vertical-align/toolbar-item.component.js +89 -89
- package/esm2015/plugins/vertical-align/vertical-align.editor.js +54 -54
- package/esm2015/public-api.js +23 -23
- package/esm2015/queries/anchor-block-entry.js +13 -13
- package/esm2015/queries/anchor-block.js +6 -6
- package/esm2015/queries/anchor-inline-entry.js +10 -10
- package/esm2015/queries/find-descendant.js +47 -47
- package/esm2015/queries/find-node.js +45 -45
- package/esm2015/queries/find-path.js +28 -28
- package/esm2015/queries/get-above-by-type.js +10 -10
- package/esm2015/queries/get-above.js +9 -9
- package/esm2015/queries/get-anchor-block-entry.js +8 -8
- package/esm2015/queries/get-block-above.js +7 -7
- package/esm2015/queries/get-block-card-above.js +7 -7
- package/esm2015/queries/get-block-card-cursor.js +5 -5
- package/esm2015/queries/get-container-blocks.js +11 -11
- package/esm2015/queries/get-directly-parent.js +11 -11
- package/esm2015/queries/get-insert-elements-path.js +43 -43
- package/esm2015/queries/get-last-child-path.js +9 -9
- package/esm2015/queries/get-last-node.js +17 -17
- package/esm2015/queries/get-next-sibling-nodes.js +17 -17
- package/esm2015/queries/get-node.js +10 -10
- package/esm2015/queries/get-nodes-by-type.js +12 -12
- package/esm2015/queries/get-nodes.js +7 -7
- package/esm2015/queries/get-parent.js +12 -12
- package/esm2015/queries/get-plain-text.js +16 -16
- package/esm2015/queries/get-plugin-by-toolbar.js +12 -12
- package/esm2015/queries/get-point-before.js +62 -62
- package/esm2015/queries/get-point-from-location.js +15 -15
- package/esm2015/queries/get-previous-path.js +9 -9
- package/esm2015/queries/get-rang-from-block-start.js +16 -16
- package/esm2015/queries/get-range-before.js +17 -17
- package/esm2015/queries/get-selection-marks.js +19 -19
- package/esm2015/queries/get-selection-nodes-by-type.js +29 -29
- package/esm2015/queries/get-text.js +9 -9
- package/esm2015/queries/get-toolbar-disabled.js +13 -13
- package/esm2015/queries/index.js +59 -58
- package/esm2015/queries/is-across-blocks.js +7 -7
- package/esm2015/queries/is-ancestor-empty.js +6 -6
- package/esm2015/queries/is-ancestor.js +3 -3
- package/esm2015/queries/is-block-above-empty.js +11 -11
- package/esm2015/queries/is-block-active.js +7 -7
- package/esm2015/queries/is-block-card-cursor.js +4 -4
- package/esm2015/queries/is-block-text-empty-after-selection.js +31 -31
- package/esm2015/queries/is-collapsed.js +7 -7
- package/esm2015/queries/is-contain-nested-type.js +28 -28
- package/esm2015/queries/is-container-type.js +2 -2
- package/esm2015/queries/is-descendant.js +3 -3
- package/esm2015/queries/is-empty-content.js +15 -0
- package/esm2015/queries/is-empty-paragraph-by-path.js +7 -7
- package/esm2015/queries/is-empty-paragraph.js +11 -11
- package/esm2015/queries/is-first-child.js +5 -5
- package/esm2015/queries/is-include-types.js +11 -11
- package/esm2015/queries/is-node-type-in.js +9 -9
- package/esm2015/queries/is-node-type.js +15 -15
- package/esm2015/queries/is-paragraph.js +9 -9
- package/esm2015/queries/is-point-at-root.js +2 -2
- package/esm2015/queries/is-range-across-blocks.js +18 -18
- package/esm2015/queries/is-range-at-root.js +3 -3
- package/esm2015/queries/is-start.js +6 -6
- package/esm2015/queries/some-node.js +9 -9
- package/esm2015/services/color-select.service.js +49 -49
- package/esm2015/services/context.service.js +59 -59
- package/esm2015/services/table-contextmenu.service.js +189 -189
- package/esm2015/services/toolbar.service.js +47 -47
- package/esm2015/shortcuts/index.js +5 -5
- package/esm2015/shortcuts/mark.js +24 -24
- package/esm2015/transforms/apply-deep-to-nodes.js +21 -21
- package/esm2015/transforms/clear-marks.js +23 -23
- package/esm2015/transforms/close-conversion-hint.js +8 -8
- package/esm2015/transforms/delete-element.js +11 -11
- package/esm2015/transforms/handle-continual-delete-backward.js +17 -17
- package/esm2015/transforms/handle-continual-insert-break.js +19 -19
- package/esm2015/transforms/index.js +18 -18
- package/esm2015/transforms/insert-elements.js +34 -34
- package/esm2015/transforms/insert-paragraph.js +6 -6
- package/esm2015/transforms/merge-deep-to-nodes.js +8 -8
- package/esm2015/transforms/move-children.js +21 -21
- package/esm2015/transforms/on-keydown-reset-block-type.js +22 -22
- package/esm2015/transforms/set-end-selection.js +10 -10
- package/esm2015/transforms/set-marks.js +9 -9
- package/esm2015/transforms/set-node.js +5 -5
- package/esm2015/transforms/split-node.js +31 -31
- package/esm2015/transforms/un-hang-range.js +11 -11
- package/esm2015/transforms/un-wrap.js +11 -11
- package/esm2015/transforms/unwrap-nodes-by-type.js +11 -11
- package/esm2015/utils/auto-focus.js +13 -13
- package/esm2015/utils/auto-scroll-view.js +24 -24
- package/esm2015/utils/cast-array.js +7 -7
- package/esm2015/utils/common.js +2 -2
- package/esm2015/utils/create-empty-paragraph.js +14 -14
- package/esm2015/utils/data-transform.js +48 -48
- package/esm2015/utils/dom.js +46 -46
- package/esm2015/utils/editor-uuid.js +8 -8
- package/esm2015/utils/fragment.js +65 -65
- package/esm2015/utils/get-editable-element-height.js +6 -6
- package/esm2015/utils/get-toolbar-class.js +6 -6
- package/esm2015/utils/id-creator.js +11 -11
- package/esm2015/utils/index.js +13 -13
- package/esm2015/utils/is-clean-empty-paragraph.js +36 -36
- package/esm2015/utils/is-inline.js +9 -9
- package/esm2015/utils/lodash.js +3 -3
- package/esm2015/utils/match.js +29 -29
- package/esm2015/utils/merge-element-options.js +19 -19
- package/esm2015/utils/weak-maps.js +3 -3
- package/esm2015/worktile-theia.js +4 -4
- package/fesm2015/worktile-theia.js +13156 -13142
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/auto-format.d.ts +64 -64
- package/interfaces/editor.d.ts +146 -146
- package/interfaces/element.d.ts +9 -9
- package/interfaces/image.d.ts +25 -25
- package/interfaces/index.d.ts +8 -8
- package/interfaces/plugins/index.d.ts +4 -4
- package/interfaces/plugins/no-infer.d.ts +1 -1
- package/interfaces/plugins/plugin-key.d.ts +48 -48
- package/interfaces/plugins/plugins.d.ts +45 -45
- package/interfaces/plugins/with-override.d.ts +7 -7
- package/interfaces/reset-block-type-plugin-options.d.ts +23 -23
- package/interfaces/toolbar.d.ts +64 -64
- package/interfaces/upload.d.ts +11 -11
- package/interfaces/utility/index.d.ts +3 -3
- package/interfaces/utility/nested-structure-by-key.d.ts +3 -3
- package/interfaces/utility/override-by-key.d.ts +3 -3
- package/interfaces/utility/types.d.ts +1 -1
- package/interfaces/valid-children-types.d.ts +9 -9
- package/interfaces/view-base.d.ts +9 -9
- package/package.json +1 -1
- package/pipes.d.ts +16 -16
- package/plugins/align/align.editor.d.ts +7 -7
- package/plugins/align/align.plugin.d.ts +2 -2
- package/plugins/autoformat/autoformat.plugin.d.ts +6 -6
- package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -5
- package/plugins/autoformat/transforms/auto-format-inline.d.ts +9 -9
- package/plugins/blockquote/blockquote.component.d.ts +11 -11
- package/plugins/blockquote/blockquote.editor.d.ts +4 -4
- package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
- package/plugins/code/code.component.d.ts +65 -65
- package/plugins/code/code.editor.d.ts +8 -8
- package/plugins/code/code.plugin.d.ts +2 -2
- package/plugins/color/color.editor.d.ts +8 -8
- package/plugins/color/color.plugin.d.ts +1 -1
- package/plugins/color/toolbar-item.component.d.ts +16 -16
- package/plugins/common/auto-insert-data..d.ts +2 -2
- package/plugins/common/block-card.plugin.d.ts +2 -2
- package/plugins/common/get-fragment.plugin.d.ts +6 -6
- package/plugins/common/history.plugin.d.ts +9 -9
- package/plugins/common/move-selection.plugin.d.ts +2 -2
- package/plugins/common/remove-empty.plugin.d.ts +2 -2
- package/plugins/common/remove-void.plugin.d.ts +2 -2
- package/plugins/common/reset-type.plugin.d.ts +2 -2
- package/plugins/common/transforms.plugin.d.ts +8 -8
- package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
- package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
- package/plugins/font-size/font-size.editor.d.ts +10 -10
- package/plugins/heading/heading.editor.d.ts +9 -9
- package/plugins/heading/heading.plugin.d.ts +7 -7
- package/plugins/hr/hr.component.d.ts +12 -12
- package/plugins/hr/hr.editor.d.ts +4 -4
- package/plugins/hr/hr.plugin.d.ts +2 -2
- package/plugins/image/image.component.d.ts +74 -74
- package/plugins/image/image.editor.d.ts +12 -12
- package/plugins/image/image.plugin.d.ts +7 -7
- package/plugins/indent/indent.editor.d.ts +10 -10
- package/plugins/indent/indent.plugin.d.ts +8 -8
- package/plugins/indent/on-keydown-indent.d.ts +3 -3
- package/plugins/index.d.ts +1 -1
- package/plugins/inline-code/inline-code.component.d.ts +9 -9
- package/plugins/inline-code/inline-code.editor.d.ts +7 -7
- package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
- package/plugins/link/edit/link-edit.component.d.ts +36 -36
- package/plugins/link/hover/link-hover.component.d.ts +15 -15
- package/plugins/link/link.component.d.ts +39 -39
- package/plugins/link/link.editor.d.ts +7 -7
- package/plugins/link/link.plugin.d.ts +2 -2
- package/plugins/link/link.types.d.ts +9 -9
- package/plugins/list/components/bulleted-list.component.d.ts +15 -15
- package/plugins/list/components/list-item.component.d.ts +20 -20
- package/plugins/list/components/numbered-list.component.d.ts +16 -16
- package/plugins/list/list.editor.d.ts +12 -12
- package/plugins/list/list.plugin.d.ts +3 -3
- package/plugins/list/normalizers/get-list-normalizer.d.ts +6 -6
- package/plugins/list/normalizers/normalize-list-item.d.ts +5 -5
- package/plugins/list/normalizers/normalize-no.d.ts +2 -2
- package/plugins/list/on-key-down-list.d.ts +2 -2
- package/plugins/list/queries/get-list-item-entry.d.ts +10 -10
- package/plugins/list/queries/get-list-item-sublist.d.ts +6 -6
- package/plugins/list/queries/get-list-types.d.ts +2 -2
- package/plugins/list/queries/get-start-list-item.d.ts +8 -8
- package/plugins/list/queries/has-list-in-list-item.d.ts +15 -15
- package/plugins/list/queries/is-in-list.d.ts +2 -2
- package/plugins/list/queries/is-list-nested.d.ts +5 -5
- package/plugins/list/queries/is-list.d.ts +2 -2
- package/plugins/list/queries/is-node-type-list.d.ts +2 -2
- package/plugins/list/queries/is-selection-at-list-item-start.d.ts +5 -5
- package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -5
- package/plugins/list/queries/is-single-list-item.d.ts +5 -5
- package/plugins/list/transforms/insert-list-data.d.ts +12 -12
- package/plugins/list/transforms/insert-list-item.d.ts +5 -5
- package/plugins/list/transforms/move-list-item-down.d.ts +6 -6
- package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +20 -20
- package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +19 -19
- package/plugins/list/transforms/move-list-item-up.d.ts +10 -10
- package/plugins/list/transforms/unwrap-list.d.ts +2 -2
- package/plugins/list/types.d.ts +7 -7
- package/plugins/mark/mark.editor.d.ts +8 -8
- package/plugins/mark/mark.plugin.d.ts +3 -3
- package/plugins/node-id/node-id.plugin.d.ts +8 -8
- package/plugins/normalizers/insert-paragraph-nodes.d.ts +7 -7
- package/plugins/normalizers/remove-empty-nodes.d.ts +7 -7
- package/plugins/normalizers/trailing-node.plugin.d.ts +9 -9
- package/plugins/paint-format/paint-format.editor.d.ts +8 -8
- package/plugins/public-api.d.ts +15 -15
- package/plugins/quick-insert/components/quick-insert.component.d.ts +28 -28
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +28 -28
- package/plugins/quick-insert/quick-insert.editor.d.ts +7 -7
- package/plugins/quick-insert/quick-insert.plugin.d.ts +10 -10
- package/plugins/soft-break/soft-break.plugin.d.ts +5 -5
- package/plugins/soft-break/soft-break.types.d.ts +8 -8
- package/plugins/table/components/insert-mark/insert-mark.component.d.ts +24 -24
- package/plugins/table/components/row/row.component.d.ts +14 -14
- package/plugins/table/components/table.component.d.ts +79 -79
- package/plugins/table/components/td/td.component.d.ts +95 -95
- package/plugins/table/components/toolbar/table-options.component.d.ts +20 -20
- package/plugins/table/components/toolbar/table-toolbar.component.d.ts +38 -38
- package/plugins/table/table.editor.d.ts +25 -25
- package/plugins/table/table.plugin.d.ts +3 -3
- package/plugins/table/table.service.d.ts +30 -30
- package/plugins/table/table.store.d.ts +71 -71
- package/plugins/table/table.types.d.ts +67 -67
- package/plugins/table/toolbar-item.component.d.ts +17 -17
- package/plugins/table/transforms/clear-cell.d.ts +6 -6
- package/plugins/table/transforms/clear-table-node.d.ts +6 -6
- package/plugins/table/transforms/insert-column.d.ts +12 -12
- package/plugins/table/transforms/insert-row.d.ts +6 -6
- package/plugins/table/transforms/insert-table.d.ts +6 -6
- package/plugins/table/transforms/remove-column.d.ts +3 -3
- package/plugins/table/transforms/remove-row.d.ts +3 -3
- package/plugins/table/transforms/remove-table.d.ts +3 -3
- package/plugins/table/utils/add-columns.d.ts +2 -2
- package/plugins/table/utils/calc-anchor-position.d.ts +6 -6
- package/plugins/table/utils/calc-span.d.ts +11 -11
- package/plugins/table/utils/create-cell.d.ts +16 -16
- package/plugins/table/utils/create-row.d.ts +7 -7
- package/plugins/table/utils/create-table.d.ts +7 -7
- package/plugins/table/utils/get-base-height.d.ts +9 -9
- package/plugins/table/utils/get-select-cell-node.d.ts +7 -7
- package/plugins/table/utils/index.d.ts +7 -7
- package/plugins/table/utils/is-range-in-table.d.ts +6 -6
- package/plugins/table/utils/is-selection-in-table.d.ts +6 -6
- package/plugins/table/utils/is-virtual-key.d.ts +1 -1
- package/plugins/table/utils/merge-cell.d.ts +21 -21
- package/plugins/table/utils/next-path.d.ts +2 -2
- package/plugins/table/utils/normalize-table.d.ts +2 -2
- package/plugins/table/utils/remove-columns.d.ts +2 -2
- package/plugins/table/utils/set-menu-cell-invisibility.d.ts +3 -3
- package/plugins/table/utils/split-cell.d.ts +4 -4
- package/plugins/table/utils/table-position.d.ts +97 -97
- package/plugins/todo-item/todo-item.component.d.ts +21 -21
- package/plugins/todo-item/todo-item.editor.d.ts +5 -5
- package/plugins/todo-item/todo-item.plugin.d.ts +5 -5
- package/plugins/vertical-align/toolbar-item.component.d.ts +25 -25
- package/plugins/vertical-align/vertical-align.editor.d.ts +7 -7
- package/public-api.d.ts +20 -20
- package/queries/anchor-block-entry.d.ts +2 -2
- package/queries/anchor-block.d.ts +2 -2
- package/queries/anchor-inline-entry.d.ts +2 -2
- package/queries/find-descendant.d.ts +10 -10
- package/queries/find-node.d.ts +15 -15
- package/queries/find-path.d.ts +6 -6
- package/queries/get-above-by-type.d.ts +6 -6
- package/queries/get-above.d.ts +6 -6
- package/queries/get-anchor-block-entry.d.ts +2 -2
- package/queries/get-block-above.d.ts +7 -7
- package/queries/get-block-card-above.d.ts +7 -7
- package/queries/get-block-card-cursor.d.ts +2 -2
- package/queries/get-container-blocks.d.ts +2 -2
- package/queries/get-directly-parent.d.ts +2 -2
- package/queries/get-insert-elements-path.d.ts +7 -7
- package/queries/get-last-child-path.d.ts +6 -6
- package/queries/get-last-node.d.ts +2 -2
- package/queries/get-next-sibling-nodes.d.ts +7 -7
- package/queries/get-node.d.ts +2 -2
- package/queries/get-nodes-by-type.d.ts +6 -6
- package/queries/get-nodes.d.ts +4 -4
- package/queries/get-parent.d.ts +7 -7
- package/queries/get-plain-text.d.ts +6 -6
- package/queries/get-plugin-by-toolbar.d.ts +3 -3
- package/queries/get-point-before.d.ts +38 -38
- package/queries/get-point-from-location.d.ts +5 -5
- package/queries/get-previous-path.d.ts +2 -2
- package/queries/get-rang-from-block-start.d.ts +9 -9
- package/queries/get-range-before.d.ts +7 -7
- package/queries/get-selection-marks.d.ts +12 -12
- package/queries/get-selection-nodes-by-type.d.ts +3 -3
- package/queries/get-text.d.ts +6 -6
- package/queries/get-toolbar-disabled.d.ts +4 -4
- package/queries/index.d.ts +58 -57
- package/queries/is-across-blocks.d.ts +2 -2
- package/queries/is-ancestor-empty.d.ts +5 -5
- package/queries/is-ancestor.d.ts +2 -2
- package/queries/is-block-above-empty.d.ts +5 -5
- package/queries/is-block-active.d.ts +3 -3
- package/queries/is-block-card-cursor.d.ts +2 -2
- package/queries/is-block-text-empty-after-selection.d.ts +7 -7
- package/queries/is-collapsed.d.ts +6 -6
- package/queries/is-contain-nested-type.d.ts +2 -2
- package/queries/is-container-type.d.ts +2 -2
- package/queries/is-descendant.d.ts +2 -2
- package/queries/is-empty-content.d.ts +2 -0
- package/queries/is-empty-paragraph-by-path.d.ts +2 -2
- package/queries/is-empty-paragraph.d.ts +2 -2
- package/queries/is-first-child.d.ts +5 -5
- package/queries/is-include-types.d.ts +3 -3
- package/queries/is-node-type-in.d.ts +6 -6
- package/queries/is-node-type.d.ts +6 -6
- package/queries/is-paragraph.d.ts +2 -2
- package/queries/is-point-at-root.d.ts +2 -2
- package/queries/is-range-across-blocks.d.ts +8 -8
- package/queries/is-range-at-root.d.ts +2 -2
- package/queries/is-start.d.ts +5 -5
- package/queries/some-node.d.ts +7 -7
- package/services/color-select.service.d.ts +20 -20
- package/services/context.service.d.ts +49 -49
- package/services/table-contextmenu.service.d.ts +25 -25
- package/services/toolbar.service.d.ts +9 -9
- package/shortcuts/index.d.ts +2 -2
- package/shortcuts/mark.d.ts +2 -2
- package/transforms/apply-deep-to-nodes.d.ts +12 -12
- package/transforms/clear-marks.d.ts +2 -2
- package/transforms/close-conversion-hint.d.ts +2 -2
- package/transforms/delete-element.d.ts +2 -2
- package/transforms/handle-continual-delete-backward.d.ts +3 -3
- package/transforms/handle-continual-insert-break.d.ts +3 -3
- package/transforms/index.d.ts +18 -18
- package/transforms/insert-elements.d.ts +2 -2
- package/transforms/insert-paragraph.d.ts +2 -2
- package/transforms/merge-deep-to-nodes.d.ts +5 -5
- package/transforms/move-children.d.ts +24 -24
- package/transforms/on-keydown-reset-block-type.d.ts +3 -3
- package/transforms/set-end-selection.d.ts +2 -2
- package/transforms/set-marks.d.ts +12 -12
- package/transforms/set-node.d.ts +2 -2
- package/transforms/split-node.d.ts +3 -3
- package/transforms/un-hang-range.d.ts +10 -10
- package/transforms/un-wrap.d.ts +3 -3
- package/transforms/unwrap-nodes-by-type.d.ts +6 -6
- package/utils/auto-focus.d.ts +2 -2
- package/utils/auto-scroll-view.d.ts +6 -6
- package/utils/cast-array.d.ts +1 -1
- package/utils/common.d.ts +2 -2
- package/utils/create-empty-paragraph.d.ts +2 -2
- package/utils/data-transform.d.ts +6 -6
- package/utils/dom.d.ts +10 -10
- package/utils/editor-uuid.d.ts +3 -3
- package/utils/fragment.d.ts +10 -10
- package/utils/get-editable-element-height.d.ts +2 -2
- package/utils/get-toolbar-class.d.ts +2 -2
- package/utils/id-creator.d.ts +1 -1
- package/utils/index.d.ts +13 -13
- package/utils/is-clean-empty-paragraph.d.ts +9 -9
- package/utils/is-inline.d.ts +2 -2
- package/utils/lodash.d.ts +1 -1
- package/utils/match.d.ts +18 -18
- package/utils/merge-element-options.d.ts +2 -2
- package/utils/weak-maps.d.ts +5 -5
- package/worktile-theia.d.ts +5 -5
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
import { Transforms, Path, Element, Editor } from 'slate';
|
|
2
|
-
import { TablePosition } from './table-position';
|
|
3
|
-
import { ElementKinds } from '../../../constants';
|
|
4
|
-
import { getSelectCellNode } from './get-select-cell-node';
|
|
5
|
-
import { TableOptions } from '../table.types';
|
|
6
|
-
import * as TheQueries from '../../../queries';
|
|
7
|
-
export function isSelectedCellMerged(editor) {
|
|
8
|
-
if (editor && editor.selection) {
|
|
9
|
-
const opts = new TableOptions();
|
|
10
|
-
const { anchor } = editor.selection;
|
|
11
|
-
const { cell } = TablePosition.create(opts, editor, anchor.path);
|
|
12
|
-
return (cell.colspan && cell.colspan !== 1) || (cell.rowspan && cell.rowspan !== 1);
|
|
13
|
-
}
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
export function getLeftCellDict(selectCellNodes) {
|
|
17
|
-
return selectCellNodes.reduce((dict, cell) => {
|
|
18
|
-
if (!dict[cell.row]) {
|
|
19
|
-
dict[cell.row] = cell;
|
|
20
|
-
}
|
|
21
|
-
return dict;
|
|
22
|
-
}, {});
|
|
23
|
-
}
|
|
24
|
-
export function calculateCellSpan(selectCellNodes, leftCellDict) {
|
|
25
|
-
let rowspan = 0, colspan = 0, crossCount = -1;
|
|
26
|
-
selectCellNodes
|
|
27
|
-
.filter(item => !item.node.hidden)
|
|
28
|
-
.forEach(item => {
|
|
29
|
-
const { row } = item;
|
|
30
|
-
if (item.row === selectCellNodes[0].row) {
|
|
31
|
-
colspan += item.node.colspan || 1;
|
|
32
|
-
}
|
|
33
|
-
const maxRowSpan = leftCellDict[row].maxRowSpan || 1;
|
|
34
|
-
leftCellDict[row].maxRowSpan = (item.node.rowspan || 1) > maxRowSpan ? item.node.rowspan : maxRowSpan;
|
|
35
|
-
});
|
|
36
|
-
Object.values(leftCellDict).forEach((item) => {
|
|
37
|
-
const { row, maxRowSpan } = item;
|
|
38
|
-
if (crossCount < row) {
|
|
39
|
-
rowspan += maxRowSpan;
|
|
40
|
-
crossCount = row + maxRowSpan - 1;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
return { rowspan, colspan };
|
|
44
|
-
}
|
|
45
|
-
export function mergeCell(editor, selectedCells) {
|
|
46
|
-
const selectCellNodes = getSelectCellNode(editor, selectedCells);
|
|
47
|
-
Editor.withoutNormalizing(editor, () => {
|
|
48
|
-
let leftTopCellPath;
|
|
49
|
-
const leftCellDict = getLeftCellDict(selectCellNodes);
|
|
50
|
-
selectCellNodes.forEach((cell, index) => {
|
|
51
|
-
const { row, node } = cell;
|
|
52
|
-
if (node) {
|
|
53
|
-
const cellPath = TheQueries.findPath(editor, node);
|
|
54
|
-
if (index === 0) {
|
|
55
|
-
leftTopCellPath = cellPath;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
mergeCellContent(editor, leftTopCellPath, cellPath);
|
|
59
|
-
Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: true }, { at: cellPath });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
let { rowspan, colspan } = calculateCellSpan(selectCellNodes, leftCellDict);
|
|
64
|
-
Transforms.setNodes(editor, { rowspan, colspan }, { at: leftTopCellPath });
|
|
65
|
-
Transforms.select(editor, leftTopCellPath);
|
|
66
|
-
Transforms.collapse(editor, { edge: 'end' });
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
export function mergeCellContent(editor, leftTopCellPath, cellPath) {
|
|
70
|
-
Editor.withoutNormalizing(editor, () => {
|
|
71
|
-
const { path } = Editor.end(editor, leftTopCellPath);
|
|
72
|
-
const endRange = Editor.range(editor, Editor.start(editor, cellPath), Editor.end(editor, cellPath));
|
|
73
|
-
let tableCell;
|
|
74
|
-
path.pop();
|
|
75
|
-
const nextPath = Path.next(path);
|
|
76
|
-
Transforms.moveNodes(editor, {
|
|
77
|
-
at: endRange,
|
|
78
|
-
to: nextPath,
|
|
79
|
-
match: node => {
|
|
80
|
-
if (Element.isElement(node) && node.type === ElementKinds.tableCell) {
|
|
81
|
-
tableCell = node;
|
|
82
|
-
}
|
|
83
|
-
if (Element.isElement(node) && node.type && tableCell && tableCell.children.includes(node)) {
|
|
84
|
-
const isSingleEmptyParagraph = tableCell.children.length === 1 && Editor.isEmpty(editor, node) && node.type === ElementKinds.default;
|
|
85
|
-
return !isSingleEmptyParagraph && true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
1
|
+
import { Transforms, Path, Element, Editor } from 'slate';
|
|
2
|
+
import { TablePosition } from './table-position';
|
|
3
|
+
import { ElementKinds } from '../../../constants';
|
|
4
|
+
import { getSelectCellNode } from './get-select-cell-node';
|
|
5
|
+
import { TableOptions } from '../table.types';
|
|
6
|
+
import * as TheQueries from '../../../queries';
|
|
7
|
+
export function isSelectedCellMerged(editor) {
|
|
8
|
+
if (editor && editor.selection) {
|
|
9
|
+
const opts = new TableOptions();
|
|
10
|
+
const { anchor } = editor.selection;
|
|
11
|
+
const { cell } = TablePosition.create(opts, editor, anchor.path);
|
|
12
|
+
return (cell.colspan && cell.colspan !== 1) || (cell.rowspan && cell.rowspan !== 1);
|
|
13
|
+
}
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
export function getLeftCellDict(selectCellNodes) {
|
|
17
|
+
return selectCellNodes.reduce((dict, cell) => {
|
|
18
|
+
if (!dict[cell.row]) {
|
|
19
|
+
dict[cell.row] = cell;
|
|
20
|
+
}
|
|
21
|
+
return dict;
|
|
22
|
+
}, {});
|
|
23
|
+
}
|
|
24
|
+
export function calculateCellSpan(selectCellNodes, leftCellDict) {
|
|
25
|
+
let rowspan = 0, colspan = 0, crossCount = -1;
|
|
26
|
+
selectCellNodes
|
|
27
|
+
.filter(item => !item.node.hidden)
|
|
28
|
+
.forEach(item => {
|
|
29
|
+
const { row } = item;
|
|
30
|
+
if (item.row === selectCellNodes[0].row) {
|
|
31
|
+
colspan += item.node.colspan || 1;
|
|
32
|
+
}
|
|
33
|
+
const maxRowSpan = leftCellDict[row].maxRowSpan || 1;
|
|
34
|
+
leftCellDict[row].maxRowSpan = (item.node.rowspan || 1) > maxRowSpan ? item.node.rowspan : maxRowSpan;
|
|
35
|
+
});
|
|
36
|
+
Object.values(leftCellDict).forEach((item) => {
|
|
37
|
+
const { row, maxRowSpan } = item;
|
|
38
|
+
if (crossCount < row) {
|
|
39
|
+
rowspan += maxRowSpan;
|
|
40
|
+
crossCount = row + maxRowSpan - 1;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return { rowspan, colspan };
|
|
44
|
+
}
|
|
45
|
+
export function mergeCell(editor, selectedCells) {
|
|
46
|
+
const selectCellNodes = getSelectCellNode(editor, selectedCells);
|
|
47
|
+
Editor.withoutNormalizing(editor, () => {
|
|
48
|
+
let leftTopCellPath;
|
|
49
|
+
const leftCellDict = getLeftCellDict(selectCellNodes);
|
|
50
|
+
selectCellNodes.forEach((cell, index) => {
|
|
51
|
+
const { row, node } = cell;
|
|
52
|
+
if (node) {
|
|
53
|
+
const cellPath = TheQueries.findPath(editor, node);
|
|
54
|
+
if (index === 0) {
|
|
55
|
+
leftTopCellPath = cellPath;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
mergeCellContent(editor, leftTopCellPath, cellPath);
|
|
59
|
+
Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: true }, { at: cellPath });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
let { rowspan, colspan } = calculateCellSpan(selectCellNodes, leftCellDict);
|
|
64
|
+
Transforms.setNodes(editor, { rowspan, colspan }, { at: leftTopCellPath });
|
|
65
|
+
Transforms.select(editor, leftTopCellPath);
|
|
66
|
+
Transforms.collapse(editor, { edge: 'end' });
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export function mergeCellContent(editor, leftTopCellPath, cellPath) {
|
|
70
|
+
Editor.withoutNormalizing(editor, () => {
|
|
71
|
+
const { path } = Editor.end(editor, leftTopCellPath);
|
|
72
|
+
const endRange = Editor.range(editor, Editor.start(editor, cellPath), Editor.end(editor, cellPath));
|
|
73
|
+
let tableCell;
|
|
74
|
+
path.pop();
|
|
75
|
+
const nextPath = Path.next(path);
|
|
76
|
+
Transforms.moveNodes(editor, {
|
|
77
|
+
at: endRange,
|
|
78
|
+
to: nextPath,
|
|
79
|
+
match: node => {
|
|
80
|
+
if (Element.isElement(node) && node.type === ElementKinds.tableCell) {
|
|
81
|
+
tableCell = node;
|
|
82
|
+
}
|
|
83
|
+
if (Element.isElement(node) && node.type && tableCell && tableCell.children.includes(node)) {
|
|
84
|
+
const isSingleEmptyParagraph = tableCell.children.length === 1 && Editor.isEmpty(editor, node) && node.type === ElementKinds.default;
|
|
85
|
+
return !isSingleEmptyParagraph && true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
91
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL3V0aWxzL21lcmdlLWNlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQVMvQyxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBYztJQUMvQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDcEMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztLQUN2RjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLGVBQW1DO0lB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UUFBUTtZQUNaLEVBQUUsRUFBRSxRQUFRO1lBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNWLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTLEVBQUU7b0JBQ2pFLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ3BCO2dCQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsSUFBSyxTQUFTLENBQUMsUUFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3BHLE1BQU0sc0JBQXNCLEdBQ3hCLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQUM7b0JBQzFHLE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUM7aUJBQzFDO1lBQ0wsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIE5vZGUsIFBhdGgsIEVsZW1lbnQsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRhYmxlUG9zaXRpb24gfSBmcm9tICcuL3RhYmxlLXBvc2l0aW9uJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRTZWxlY3RDZWxsTm9kZSB9IGZyb20gJy4vZ2V0LXNlbGVjdC1jZWxsLW5vZGUnO1xuaW1wb3J0IHsgVGFibGVDZWxsRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBTZWxlY3RlZENlbGwsIFRhYmxlT3B0aW9ucyB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0ZWRDZWxsSW5mbyB7XG4gICAgY29sOiBudW1iZXI7XG4gICAgcm93OiBudW1iZXI7XG4gICAgbm9kZTogVGFibGVDZWxsRWxlbWVudDtcbiAgICBtYXhSb3dTcGFuPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3RlZENlbGxNZXJnZWQoZWRpdG9yOiBFZGl0b3IpOiBib29sZWFuIHtcbiAgICBpZiAoZWRpdG9yICYmIGVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMoKTtcbiAgICAgICAgY29uc3QgeyBhbmNob3IgfSA9IGVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgIGNvbnN0IHsgY2VsbCB9ID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBhbmNob3IucGF0aCk7XG4gICAgICAgIHJldHVybiAoY2VsbC5jb2xzcGFuICYmIGNlbGwuY29sc3BhbiAhPT0gMSkgfHwgKGNlbGwucm93c3BhbiAmJiBjZWxsLnJvd3NwYW4gIT09IDEpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWZ0Q2VsbERpY3Qoc2VsZWN0Q2VsbE5vZGVzOiBTZWxlY3RlZENlbGxJbmZvW10pIHtcbiAgICByZXR1cm4gc2VsZWN0Q2VsbE5vZGVzLnJlZHVjZSgoZGljdCwgY2VsbCkgPT4ge1xuICAgICAgICBpZiAoIWRpY3RbY2VsbC5yb3ddKSB7XG4gICAgICAgICAgICBkaWN0W2NlbGwucm93XSA9IGNlbGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpY3Q7XG4gICAgfSwge30gYXMgeyBba2V5OiBzdHJpbmddOiBTZWxlY3RlZENlbGxJbmZvIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQ2VsbFNwYW4oXG4gICAgc2VsZWN0Q2VsbE5vZGVzOiBTZWxlY3RlZENlbGxJbmZvW10sXG4gICAgbGVmdENlbGxEaWN0OiB7IFtrZXk6IHN0cmluZ106IFNlbGVjdGVkQ2VsbEluZm8gfVxuKTogeyByb3dzcGFuOiBudW1iZXI7IGNvbHNwYW46IG51bWJlciB9IHtcbiAgICBsZXQgcm93c3BhbiA9IDAsXG4gICAgICAgIGNvbHNwYW4gPSAwLFxuICAgICAgICBjcm9zc0NvdW50ID0gLTE7XG4gICAgc2VsZWN0Q2VsbE5vZGVzXG4gICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhaXRlbS5ub2RlLmhpZGRlbilcbiAgICAgICAgLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHJvdyB9ID0gaXRlbTtcbiAgICAgICAgICAgIGlmIChpdGVtLnJvdyA9PT0gc2VsZWN0Q2VsbE5vZGVzWzBdLnJvdykge1xuICAgICAgICAgICAgICAgIGNvbHNwYW4gKz0gaXRlbS5ub2RlLmNvbHNwYW4gfHwgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1heFJvd1NwYW4gPSBsZWZ0Q2VsbERpY3Rbcm93XS5tYXhSb3dTcGFuIHx8IDE7XG4gICAgICAgICAgICBsZWZ0Q2VsbERpY3Rbcm93XS5tYXhSb3dTcGFuID0gKGl0ZW0ubm9kZS5yb3dzcGFuIHx8IDEpID4gbWF4Um93U3BhbiA/IGl0ZW0ubm9kZS5yb3dzcGFuIDogbWF4Um93U3BhbjtcbiAgICAgICAgfSk7XG5cbiAgICBPYmplY3QudmFsdWVzKGxlZnRDZWxsRGljdCkuZm9yRWFjaCgoaXRlbTogU2VsZWN0ZWRDZWxsSW5mbykgPT4ge1xuICAgICAgICBjb25zdCB7IHJvdywgbWF4Um93U3BhbiB9ID0gaXRlbTtcbiAgICAgICAgaWYgKGNyb3NzQ291bnQgPCByb3cpIHtcbiAgICAgICAgICAgIHJvd3NwYW4gKz0gbWF4Um93U3BhbjtcbiAgICAgICAgICAgIGNyb3NzQ291bnQgPSByb3cgKyBtYXhSb3dTcGFuIC0gMTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7IHJvd3NwYW4sIGNvbHNwYW4gfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ2VsbChlZGl0b3I6IEVkaXRvciwgc2VsZWN0ZWRDZWxsczogU2VsZWN0ZWRDZWxsW10pIHtcbiAgICBjb25zdCBzZWxlY3RDZWxsTm9kZXMgPSBnZXRTZWxlY3RDZWxsTm9kZShlZGl0b3IsIHNlbGVjdGVkQ2VsbHMpO1xuICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgIGxldCBsZWZ0VG9wQ2VsbFBhdGg6IFBhdGg7XG4gICAgICAgIGNvbnN0IGxlZnRDZWxsRGljdCA9IGdldExlZnRDZWxsRGljdChzZWxlY3RDZWxsTm9kZXMpO1xuICAgICAgICBzZWxlY3RDZWxsTm9kZXMuZm9yRWFjaCgoY2VsbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcm93LCBub2RlIH0gPSBjZWxsO1xuICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUGF0aCA9IFRoZVF1ZXJpZXMuZmluZFBhdGgoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdFRvcENlbGxQYXRoID0gY2VsbFBhdGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VDZWxsQ29udGVudChlZGl0b3IsIGxlZnRUb3BDZWxsUGF0aCwgY2VsbFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyBjb2xzcGFuOiBudWxsLCByb3dzcGFuOiBudWxsLCBoaWRkZW46IHRydWUgfSwgeyBhdDogY2VsbFBhdGggfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHsgcm93c3BhbiwgY29sc3BhbiB9ID0gY2FsY3VsYXRlQ2VsbFNwYW4oc2VsZWN0Q2VsbE5vZGVzLCBsZWZ0Q2VsbERpY3QpO1xuICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyByb3dzcGFuLCBjb2xzcGFuIH0sIHsgYXQ6IGxlZnRUb3BDZWxsUGF0aCB9KTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBsZWZ0VG9wQ2VsbFBhdGgpO1xuICAgICAgICBUcmFuc2Zvcm1zLmNvbGxhcHNlKGVkaXRvciwgeyBlZGdlOiAnZW5kJyB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ2VsbENvbnRlbnQoZWRpdG9yOiBFZGl0b3IsIGxlZnRUb3BDZWxsUGF0aDogUGF0aCwgY2VsbFBhdGg6IFBhdGgpIHtcbiAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHBhdGggfSA9IEVkaXRvci5lbmQoZWRpdG9yLCBsZWZ0VG9wQ2VsbFBhdGgpO1xuICAgICAgICBjb25zdCBlbmRSYW5nZSA9IEVkaXRvci5yYW5nZShlZGl0b3IsIEVkaXRvci5zdGFydChlZGl0b3IsIGNlbGxQYXRoKSwgRWRpdG9yLmVuZChlZGl0b3IsIGNlbGxQYXRoKSk7XG4gICAgICAgIGxldCB0YWJsZUNlbGw7XG5cbiAgICAgICAgcGF0aC5wb3AoKTtcblxuICAgICAgICBjb25zdCBuZXh0UGF0aCA9IFBhdGgubmV4dChwYXRoKTtcblxuICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgIGF0OiBlbmRSYW5nZSxcbiAgICAgICAgICAgIHRvOiBuZXh0UGF0aCxcbiAgICAgICAgICAgIG1hdGNoOiBub2RlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS50eXBlID09PSBFbGVtZW50S2luZHMudGFibGVDZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlQ2VsbCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgJiYgdGFibGVDZWxsICYmICh0YWJsZUNlbGwuY2hpbGRyZW4gYXMgTm9kZVtdKS5pbmNsdWRlcyhub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1NpbmdsZUVtcHR5UGFyYWdyYXBoID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlQ2VsbC5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgRWRpdG9yLmlzRW1wdHkoZWRpdG9yLCBub2RlKSAmJiBub2RlLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5kZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWlzU2luZ2xlRW1wdHlQYXJhZ3JhcGggJiYgdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const NextPath = (path) => {
|
|
2
|
-
const [last, ...rest] = [...path].reverse();
|
|
3
|
-
return [...rest.reverse(), last + 1];
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const NextPath = (path) => {
|
|
2
|
+
const [last, ...rest] = [...path].reverse();
|
|
3
|
+
return [...rest.reverse(), last + 1];
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdXRpbHMvbmV4dC1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFO0lBQ25DLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXRoIH0gZnJvbSAnc2xhdGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE5leHRQYXRoID0gKHBhdGg6IFBhdGgpID0+IHtcclxuICAgIGNvbnN0IFtsYXN0LCAuLi5yZXN0XSA9IFsuLi5wYXRoXS5yZXZlcnNlKCk7XHJcbiAgICByZXR1cm4gWy4uLnJlc3QucmV2ZXJzZSgpLCBsYXN0ICsgMV07XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { getOriginCell } from "./calc-span";
|
|
2
|
-
export const normalizeTable = (table) => {
|
|
3
|
-
const normalizedNodes = [];
|
|
4
|
-
const rowHeight = table.children.length;
|
|
5
|
-
const columnWidth = table.children[0].children.length;
|
|
6
|
-
table.children.forEach((row, rowIndex) => {
|
|
7
|
-
row.children.forEach((cell, columnIndex) => {
|
|
8
|
-
// case 1
|
|
9
|
-
if (cell.colspan || cell.rowspan) {
|
|
10
|
-
const rowspan = cell.rowspan || 1;
|
|
11
|
-
const colspan = cell.colspan || 1;
|
|
12
|
-
if (rowspan > rowHeight - rowIndex) {
|
|
13
|
-
cell.rowspan = rowHeight - rowIndex;
|
|
14
|
-
}
|
|
15
|
-
if (colspan > columnWidth - columnIndex) {
|
|
16
|
-
cell.colspan = columnWidth - columnIndex;
|
|
17
|
-
}
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
// case 2
|
|
21
|
-
if (cell.hidden && !normalizedNodes.includes(cell)) {
|
|
22
|
-
const origin = getOriginCell(table, rowIndex, columnIndex);
|
|
23
|
-
if (!origin) {
|
|
24
|
-
delete table.children[rowIndex].children[columnIndex].hidden;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
return table;
|
|
30
|
-
};
|
|
1
|
+
import { getOriginCell } from "./calc-span";
|
|
2
|
+
export const normalizeTable = (table) => {
|
|
3
|
+
const normalizedNodes = [];
|
|
4
|
+
const rowHeight = table.children.length;
|
|
5
|
+
const columnWidth = table.children[0].children.length;
|
|
6
|
+
table.children.forEach((row, rowIndex) => {
|
|
7
|
+
row.children.forEach((cell, columnIndex) => {
|
|
8
|
+
// case 1
|
|
9
|
+
if (cell.colspan || cell.rowspan) {
|
|
10
|
+
const rowspan = cell.rowspan || 1;
|
|
11
|
+
const colspan = cell.colspan || 1;
|
|
12
|
+
if (rowspan > rowHeight - rowIndex) {
|
|
13
|
+
cell.rowspan = rowHeight - rowIndex;
|
|
14
|
+
}
|
|
15
|
+
if (colspan > columnWidth - columnIndex) {
|
|
16
|
+
cell.colspan = columnWidth - columnIndex;
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// case 2
|
|
21
|
+
if (cell.hidden && !normalizedNodes.includes(cell)) {
|
|
22
|
+
const origin = getOriginCell(table, rowIndex, columnIndex);
|
|
23
|
+
if (!origin) {
|
|
24
|
+
delete table.children[rowIndex].children[columnIndex].hidden;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
return table;
|
|
30
|
+
};
|
|
31
31
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdXRpbHMvbm9ybWFsaXplLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQ2xELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFvQixFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3RELEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBc0IsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN6RCxTQUFTO1lBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxPQUFPLEdBQUcsU0FBUyxHQUFHLFFBQVEsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsUUFBUSxDQUFDO2lCQUN2QztnQkFDRCxJQUFJLE9BQU8sR0FBRyxXQUFXLEdBQUcsV0FBVyxFQUFFO29CQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsR0FBRyxXQUFXLENBQUM7aUJBQzVDO2dCQUNELE9BQU87YUFDVjtZQUNELFNBQVM7WUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoRCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDVCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztpQkFDaEU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNlbGxFbGVtZW50LCBUYWJsZUVsZW1lbnQsIFRhYmxlUm93RWxlbWVudCB9IGZyb20gXCIuLi8uLi8uLi9jdXN0b20tdHlwZXNcIjtcbmltcG9ydCB7IGdldE9yaWdpbkNlbGwgfSBmcm9tIFwiLi9jYWxjLXNwYW5cIjtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZVRhYmxlID0gKHRhYmxlOiBUYWJsZUVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkTm9kZXMgPSBbXTtcbiAgICBjb25zdCByb3dIZWlnaHQgPSB0YWJsZS5jaGlsZHJlbi5sZW5ndGg7XG4gICAgY29uc3QgY29sdW1uV2lkdGggPSB0YWJsZS5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGg7XG4gICAgdGFibGUuY2hpbGRyZW4uZm9yRWFjaCgocm93OiBUYWJsZVJvd0VsZW1lbnQsIHJvd0luZGV4KSA9PiB7XG4gICAgICAgIHJvdy5jaGlsZHJlbi5mb3JFYWNoKChjZWxsOiBUYWJsZUNlbGxFbGVtZW50LCBjb2x1bW5JbmRleCkgPT4ge1xuICAgICAgICAgICAgLy8gY2FzZSAxXG4gICAgICAgICAgICBpZiAoY2VsbC5jb2xzcGFuIHx8IGNlbGwucm93c3Bhbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd3NwYW4gPSBjZWxsLnJvd3NwYW4gfHwgMTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xzcGFuID0gY2VsbC5jb2xzcGFuIHx8IDE7XG4gICAgICAgICAgICAgICAgaWYgKHJvd3NwYW4gPiByb3dIZWlnaHQgLSByb3dJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjZWxsLnJvd3NwYW4gPSByb3dIZWlnaHQgLSByb3dJbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbHNwYW4gPiBjb2x1bW5XaWR0aCAtIGNvbHVtbkluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIGNlbGwuY29sc3BhbiA9IGNvbHVtbldpZHRoIC0gY29sdW1uSW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNhc2UgMlxuICAgICAgICAgICAgaWYgKGNlbGwuaGlkZGVuICYmICFub3JtYWxpemVkTm9kZXMuaW5jbHVkZXMoY2VsbCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW4gPSBnZXRPcmlnaW5DZWxsKHRhYmxlLCByb3dJbmRleCwgY29sdW1uSW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmICghb3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0YWJsZS5jaGlsZHJlbltyb3dJbmRleF0uY2hpbGRyZW5bY29sdW1uSW5kZXhdLmhpZGRlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB0YWJsZTtcbn0iXX0=
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export function removeColumns(table, columnsCount, index) {
|
|
2
|
-
if (table.columns.length > columnsCount) {
|
|
3
|
-
let removeColumns = [];
|
|
4
|
-
if ((index && index > 0) || index === 0) {
|
|
5
|
-
removeColumns = table.columns.slice(index, index + 1);
|
|
6
|
-
}
|
|
7
|
-
else {
|
|
8
|
-
removeColumns = table.columns.slice(columnsCount);
|
|
9
|
-
}
|
|
10
|
-
if (removeColumns.length) {
|
|
11
|
-
const addWidth = removeColumns.reduce((totalWidth, cell) => {
|
|
12
|
-
return (totalWidth += cell.width);
|
|
13
|
-
}, 0) / columnsCount;
|
|
14
|
-
return table.columns
|
|
15
|
-
.filter(item => !removeColumns.includes(item))
|
|
16
|
-
.map(item => {
|
|
17
|
-
return { width: item.width + Math.round(addWidth) };
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return table.columns;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export function removeColumns(table, columnsCount, index) {
|
|
2
|
+
if (table.columns.length > columnsCount) {
|
|
3
|
+
let removeColumns = [];
|
|
4
|
+
if ((index && index > 0) || index === 0) {
|
|
5
|
+
removeColumns = table.columns.slice(index, index + 1);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
removeColumns = table.columns.slice(columnsCount);
|
|
9
|
+
}
|
|
10
|
+
if (removeColumns.length) {
|
|
11
|
+
const addWidth = removeColumns.reduce((totalWidth, cell) => {
|
|
12
|
+
return (totalWidth += cell.width);
|
|
13
|
+
}, 0) / columnsCount;
|
|
14
|
+
return table.columns
|
|
15
|
+
.filter(item => !removeColumns.includes(item))
|
|
16
|
+
.map(item => {
|
|
17
|
+
return { width: item.width + Math.round(addWidth) };
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return table.columns;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9yZW1vdmUtY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQW1CLEVBQUUsWUFBb0IsRUFBRSxLQUFjO0lBQ25GLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFO1FBQ3JDLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDSCxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsTUFBTSxRQUFRLEdBQ1YsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDdEMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQyxPQUFPO2lCQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDN0MsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNSLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUM7U0FDVjtLQUNKO0lBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUNvbHVtbnModGFibGU6IFRhYmxlRWxlbWVudCwgY29sdW1uc0NvdW50OiBudW1iZXIsIGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAodGFibGUuY29sdW1ucy5sZW5ndGggPiBjb2x1bW5zQ291bnQpIHtcclxuICAgICAgICBsZXQgcmVtb3ZlQ29sdW1ucyA9IFtdO1xyXG4gICAgICAgIGlmICgoaW5kZXggJiYgaW5kZXggPiAwKSB8fCBpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZW1vdmVDb2x1bW5zID0gdGFibGUuY29sdW1ucy5zbGljZShpbmRleCwgaW5kZXggKyAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZW1vdmVDb2x1bW5zID0gdGFibGUuY29sdW1ucy5zbGljZShjb2x1bW5zQ291bnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVtb3ZlQ29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgYWRkV2lkdGggPVxyXG4gICAgICAgICAgICAgICAgcmVtb3ZlQ29sdW1ucy5yZWR1Y2UoKHRvdGFsV2lkdGgsIGNlbGwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRvdGFsV2lkdGggKz0gY2VsbC53aWR0aCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKSAvIGNvbHVtbnNDb3VudDtcclxuICAgICAgICAgICAgcmV0dXJuIHRhYmxlLmNvbHVtbnNcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhcmVtb3ZlQ29sdW1ucy5pbmNsdWRlcyhpdGVtKSlcclxuICAgICAgICAgICAgICAgIC5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgd2lkdGg6IGl0ZW0ud2lkdGggKyBNYXRoLnJvdW5kKGFkZFdpZHRoKSB9O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhYmxlLmNvbHVtbnM7XHJcbn1cclxuIl19
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { isSelectedCellMerged } from './merge-cell';
|
|
2
|
-
import { getSelectCellNode } from './get-select-cell-node';
|
|
3
|
-
export function setCellMenuInvisibility(editor, menuList, selectedCells, isActiveSelect) {
|
|
4
|
-
const isCellMerged = isSelectedCellMerged(editor);
|
|
5
|
-
const selectCellNodes = getSelectCellNode(editor, selectedCells).filter(item => !item.node.hidden);
|
|
6
|
-
menuList.forEach(item => {
|
|
7
|
-
if (item.key === 'merge-cells') {
|
|
8
|
-
item.invisibility = !(selectCellNodes && selectCellNodes.length > 1 && !isActiveSelect);
|
|
9
|
-
}
|
|
10
|
-
if (item.key === 'split-cells') {
|
|
11
|
-
item.invisibility = !(selectCellNodes && selectCellNodes.length === 1 && isCellMerged && !isActiveSelect);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { isSelectedCellMerged } from './merge-cell';
|
|
2
|
+
import { getSelectCellNode } from './get-select-cell-node';
|
|
3
|
+
export function setCellMenuInvisibility(editor, menuList, selectedCells, isActiveSelect) {
|
|
4
|
+
const isCellMerged = isSelectedCellMerged(editor);
|
|
5
|
+
const selectCellNodes = getSelectCellNode(editor, selectedCells).filter(item => !item.node.hidden);
|
|
6
|
+
menuList.forEach(item => {
|
|
7
|
+
if (item.key === 'merge-cells') {
|
|
8
|
+
item.invisibility = !(selectCellNodes && selectCellNodes.length > 1 && !isActiveSelect);
|
|
9
|
+
}
|
|
10
|
+
if (item.key === 'split-cells') {
|
|
11
|
+
item.invisibility = !(selectCellNodes && selectCellNodes.length === 1 && isCellMerged && !isActiveSelect);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LW1lbnUtY2VsbC1pbnZpc2liaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9zZXQtbWVudS1jZWxsLWludmlzaWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHM0QsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWMsRUFBRSxRQUFzQixFQUFFLGFBQTZCLEVBQUUsY0FBd0I7SUFDbkksTUFBTSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxhQUFhLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDM0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssYUFBYSxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM3RztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcclxuaW1wb3J0IHsgaXNTZWxlY3RlZENlbGxNZXJnZWQgfSBmcm9tICcuL21lcmdlLWNlbGwnO1xyXG5pbXBvcnQgeyBnZXRTZWxlY3RDZWxsTm9kZSB9IGZyb20gJy4vZ2V0LXNlbGVjdC1jZWxsLW5vZGUnO1xyXG5pbXBvcnQgeyBNZW51RW50aXR5LCBTZWxlY3RlZENlbGwgfSBmcm9tICcuLi90YWJsZS50eXBlcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Q2VsbE1lbnVJbnZpc2liaWxpdHkoZWRpdG9yOiBFZGl0b3IsIG1lbnVMaXN0OiBNZW51RW50aXR5W10sIHNlbGVjdGVkQ2VsbHM6IFNlbGVjdGVkQ2VsbFtdLCBpc0FjdGl2ZVNlbGVjdD86IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGlzQ2VsbE1lcmdlZCA9IGlzU2VsZWN0ZWRDZWxsTWVyZ2VkKGVkaXRvcik7XHJcbiAgICBjb25zdCBzZWxlY3RDZWxsTm9kZXMgPSBnZXRTZWxlY3RDZWxsTm9kZShlZGl0b3IsIHNlbGVjdGVkQ2VsbHMpLmZpbHRlcihpdGVtID0+ICFpdGVtLm5vZGUuaGlkZGVuKTtcclxuICAgIG1lbnVMaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSAnbWVyZ2UtY2VsbHMnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaW52aXNpYmlsaXR5ID0gIShzZWxlY3RDZWxsTm9kZXMgJiYgc2VsZWN0Q2VsbE5vZGVzLmxlbmd0aCA+IDEgJiYgIWlzQWN0aXZlU2VsZWN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSAnc3BsaXQtY2VsbHMnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaW52aXNpYmlsaXR5ID0gIShzZWxlY3RDZWxsTm9kZXMgJiYgc2VsZWN0Q2VsbE5vZGVzLmxlbmd0aCA9PT0gMSAmJiBpc0NlbGxNZXJnZWQgJiYgIWlzQWN0aXZlU2VsZWN0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG4iXX0=
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { Editor, Transforms } from 'slate';
|
|
2
|
-
import { TableOptions } from '../table.types';
|
|
3
|
-
import { TablePosition } from './table-position';
|
|
4
|
-
import * as TheQueries from '../../../queries';
|
|
5
|
-
export function splitCell(editor) {
|
|
6
|
-
const opts = new TableOptions();
|
|
7
|
-
const { anchor } = editor.selection;
|
|
8
|
-
const tablePosition = TablePosition.create(opts, editor, anchor.path);
|
|
9
|
-
const { cell, table, cellEntry } = tablePosition;
|
|
10
|
-
if ((!cell.rowspan && !cell.colspan) || (cell.rowspan === 1 && cell.colspan === 1))
|
|
11
|
-
return editor;
|
|
12
|
-
const cellRow = tablePosition.getRowIndex();
|
|
13
|
-
const cellCol = tablePosition.getColumnIndex();
|
|
14
|
-
resetTableCell(editor, table, cell, cellRow, cellCol);
|
|
15
|
-
Transforms.select(editor, cellEntry[1]);
|
|
16
|
-
Transforms.collapse(editor, { edge: 'end' });
|
|
17
|
-
}
|
|
18
|
-
export function resetTableCell(editor, table, cell, cellRow, cellCol) {
|
|
19
|
-
const rowSpanIndex = cellRow + (cell.rowspan || 1) - 1;
|
|
20
|
-
const colSpanIndex = cellCol + (cell.colspan || 1) - 1;
|
|
21
|
-
Editor.withoutNormalizing(editor, () => {
|
|
22
|
-
table.children.map((row, rowIndex) => {
|
|
23
|
-
row.children.map((col, colIndex) => {
|
|
24
|
-
if (rowIndex >= cellRow && rowIndex <= rowSpanIndex && colIndex >= cellCol && colIndex <= colSpanIndex) {
|
|
25
|
-
const path = TheQueries.findPath(editor, col);
|
|
26
|
-
Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: null }, { at: path });
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
}
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import { TableOptions } from '../table.types';
|
|
3
|
+
import { TablePosition } from './table-position';
|
|
4
|
+
import * as TheQueries from '../../../queries';
|
|
5
|
+
export function splitCell(editor) {
|
|
6
|
+
const opts = new TableOptions();
|
|
7
|
+
const { anchor } = editor.selection;
|
|
8
|
+
const tablePosition = TablePosition.create(opts, editor, anchor.path);
|
|
9
|
+
const { cell, table, cellEntry } = tablePosition;
|
|
10
|
+
if ((!cell.rowspan && !cell.colspan) || (cell.rowspan === 1 && cell.colspan === 1))
|
|
11
|
+
return editor;
|
|
12
|
+
const cellRow = tablePosition.getRowIndex();
|
|
13
|
+
const cellCol = tablePosition.getColumnIndex();
|
|
14
|
+
resetTableCell(editor, table, cell, cellRow, cellCol);
|
|
15
|
+
Transforms.select(editor, cellEntry[1]);
|
|
16
|
+
Transforms.collapse(editor, { edge: 'end' });
|
|
17
|
+
}
|
|
18
|
+
export function resetTableCell(editor, table, cell, cellRow, cellCol) {
|
|
19
|
+
const rowSpanIndex = cellRow + (cell.rowspan || 1) - 1;
|
|
20
|
+
const colSpanIndex = cellCol + (cell.colspan || 1) - 1;
|
|
21
|
+
Editor.withoutNormalizing(editor, () => {
|
|
22
|
+
table.children.map((row, rowIndex) => {
|
|
23
|
+
row.children.map((col, colIndex) => {
|
|
24
|
+
if (rowIndex >= cellRow && rowIndex <= rowSpanIndex && colIndex >= cellCol && colIndex <= colSpanIndex) {
|
|
25
|
+
const path = TheQueries.findPath(editor, col);
|
|
26
|
+
Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: null }, { at: path });
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
32
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL3V0aWxzL3NwbGl0LWNlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBYztJQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQ2pELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ2xHLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0MsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWMsRUFBRSxLQUFtQixFQUFFLElBQXNCLEVBQUUsT0FBZSxFQUFFLE9BQWU7SUFDeEgsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkQsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDbkMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDakMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQy9CLElBQUksUUFBUSxJQUFJLE9BQU8sSUFBSSxRQUFRLElBQUksWUFBWSxJQUFJLFFBQVEsSUFBSSxPQUFPLElBQUksUUFBUSxJQUFJLFlBQVksRUFBRTtvQkFDcEcsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzlDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUM3RjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUYWJsZUNlbGxFbGVtZW50LCBUYWJsZUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgVGFibGVPcHRpb25zIH0gZnJvbSAnLi4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgVGFibGVQb3NpdGlvbiB9IGZyb20gJy4vdGFibGUtcG9zaXRpb24nO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0Q2VsbChlZGl0b3I6IEVkaXRvcikge1xuICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgY29uc3QgeyBhbmNob3IgfSA9IGVkaXRvci5zZWxlY3Rpb247XG4gICAgY29uc3QgdGFibGVQb3NpdGlvbiA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgYW5jaG9yLnBhdGgpO1xuICAgIGNvbnN0IHsgY2VsbCwgdGFibGUsIGNlbGxFbnRyeSB9ID0gdGFibGVQb3NpdGlvbjtcbiAgICBpZiAoKCFjZWxsLnJvd3NwYW4gJiYgIWNlbGwuY29sc3BhbikgfHwgKGNlbGwucm93c3BhbiA9PT0gMSAmJiBjZWxsLmNvbHNwYW4gPT09IDEpKSByZXR1cm4gZWRpdG9yO1xuICAgIGNvbnN0IGNlbGxSb3cgPSB0YWJsZVBvc2l0aW9uLmdldFJvd0luZGV4KCk7XG4gICAgY29uc3QgY2VsbENvbCA9IHRhYmxlUG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKTtcbiAgICByZXNldFRhYmxlQ2VsbChlZGl0b3IsIHRhYmxlLCBjZWxsLCBjZWxsUm93LCBjZWxsQ29sKTtcbiAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGNlbGxFbnRyeVsxXSk7XG4gICAgVHJhbnNmb3Jtcy5jb2xsYXBzZShlZGl0b3IsIHsgZWRnZTogJ2VuZCcgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldFRhYmxlQ2VsbChlZGl0b3I6IEVkaXRvciwgdGFibGU6IFRhYmxlRWxlbWVudCwgY2VsbDogVGFibGVDZWxsRWxlbWVudCwgY2VsbFJvdzogbnVtYmVyLCBjZWxsQ29sOiBudW1iZXIpIHtcbiAgICBjb25zdCByb3dTcGFuSW5kZXggPSBjZWxsUm93ICsgKGNlbGwucm93c3BhbiB8fCAxKSAtIDE7XG4gICAgY29uc3QgY29sU3BhbkluZGV4ID0gY2VsbENvbCArIChjZWxsLmNvbHNwYW4gfHwgMSkgLSAxO1xuICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgIHRhYmxlLmNoaWxkcmVuLm1hcCgocm93LCByb3dJbmRleCkgPT4ge1xuICAgICAgICAgICAgcm93LmNoaWxkcmVuLm1hcCgoY29sLCBjb2xJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb3dJbmRleCA+PSBjZWxsUm93ICYmIHJvd0luZGV4IDw9IHJvd1NwYW5JbmRleCAmJiBjb2xJbmRleCA+PSBjZWxsQ29sICYmIGNvbEluZGV4IDw9IGNvbFNwYW5JbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gVGhlUXVlcmllcy5maW5kUGF0aChlZGl0b3IsIGNvbCk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7IGNvbHNwYW46IG51bGwsIHJvd3NwYW46IG51bGwsIGhpZGRlbjogbnVsbCB9LCB7IGF0OiBwYXRoIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbiJdfQ==
|