@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,81 @@
|
|
|
1
|
+
import { Editor, Transforms, Element } from 'slate';
|
|
2
|
+
import { TheContextService } from '../../services/context.service';
|
|
3
|
+
import { ElementKinds, ErrorCodes, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE } from '../../constants';
|
|
4
|
+
import * as TheTransforms from '../../transforms';
|
|
5
|
+
import { base64toBlob } from '../../utils/blob';
|
|
6
|
+
import { isString } from 'ngx-tethys/util';
|
|
7
|
+
import { getPluginOptions } from '../../core';
|
|
8
|
+
import { PluginKeys } from '../../interfaces';
|
|
9
|
+
export const ImageEditor = {
|
|
10
|
+
openUpload(editor) {
|
|
11
|
+
const inputFile = document.createElement('input');
|
|
12
|
+
inputFile.setAttribute('type', 'file');
|
|
13
|
+
inputFile.setAttribute('accept', 'image/*');
|
|
14
|
+
inputFile.setAttribute('multiple', 'true');
|
|
15
|
+
inputFile.onchange = (event) => {
|
|
16
|
+
ImageEditor.insertImages(editor, event.target.files);
|
|
17
|
+
};
|
|
18
|
+
inputFile.click();
|
|
19
|
+
},
|
|
20
|
+
insertImages(editor, imageFiles) {
|
|
21
|
+
const contextService = editor.injector.get(TheContextService);
|
|
22
|
+
const imageNodes = [];
|
|
23
|
+
const text = { text: '' };
|
|
24
|
+
for (const image of imageFiles) {
|
|
25
|
+
const verify = ImageEditor.verifyImage(editor, image);
|
|
26
|
+
if (verify) {
|
|
27
|
+
const url = URL.createObjectURL(image);
|
|
28
|
+
contextService.addUploadingFiles({ url, file: image });
|
|
29
|
+
imageNodes.push({ type: ElementKinds.image, url, children: [text] });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (imageNodes.length > 0) {
|
|
33
|
+
TheTransforms.insertElements(editor, imageNodes);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
handleBase64ImageElement(editor, image) {
|
|
37
|
+
if (isString(image.originUrl) && image.originUrl.includes('base64')) {
|
|
38
|
+
const indexSplit = image.originUrl.indexOf(',');
|
|
39
|
+
const base64 = image.originUrl.slice(indexSplit + 1);
|
|
40
|
+
const contentType = image.originUrl.substring(image.originUrl.indexOf(':') + 1, image.originUrl.indexOf(';'));
|
|
41
|
+
const ext = contentType.substring(contentType.indexOf('/') + 1);
|
|
42
|
+
const blob = base64toBlob(base64, contentType);
|
|
43
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
44
|
+
image.thumbUrl = blobUrl;
|
|
45
|
+
image.originUrl = blobUrl;
|
|
46
|
+
image.url = blobUrl;
|
|
47
|
+
const contextService = editor.injector.get(TheContextService);
|
|
48
|
+
contextService.addUploadingFiles({
|
|
49
|
+
url: blobUrl,
|
|
50
|
+
file: new File([blob], `${new Date().getTime()}.${ext}`, { type: contentType })
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
verifyImage(editor, image) {
|
|
55
|
+
if (!PICTURE_ACCEPTED_UPLOAD_MIME.includes(image.type)) {
|
|
56
|
+
editor.onError({
|
|
57
|
+
code: ErrorCodes.IMAGE_ERR_MIME_FORMAT
|
|
58
|
+
});
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const acceptedUploadSize = getPluginOptions(editor, PluginKeys.image)?.acceptedUploadSize ?? PICTURE_ACCEPTED_UPLOAD_SIZE;
|
|
62
|
+
if (image.size / 1000000 >= acceptedUploadSize) {
|
|
63
|
+
editor.onError({
|
|
64
|
+
code: ErrorCodes.IMAGE_ERR_SIZE_LIMIT
|
|
65
|
+
});
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
},
|
|
70
|
+
isImageActive(editor) {
|
|
71
|
+
const [match] = Editor.nodes(editor, {
|
|
72
|
+
match: (n) => Element.isElement(n) && n.type === ElementKinds.image,
|
|
73
|
+
universal: true
|
|
74
|
+
});
|
|
75
|
+
return !!match;
|
|
76
|
+
},
|
|
77
|
+
setImageNode(editor, path, partial) {
|
|
78
|
+
Transforms.setNodes(editor, partial, { at: path });
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBRUgsWUFBWSxFQUNaLFVBQVUsRUFFViw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQy9CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQXNCLFVBQVUsRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixVQUFVLENBQUMsTUFBaUI7UUFDeEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDbEMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUcsS0FBSyxDQUFDLE1B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b3JtcywgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQWxpZ25tZW50LFxuICAgIEVsZW1lbnRLaW5kcyxcbiAgICBFcnJvckNvZGVzLFxuICAgIExheW91dFR5cGVzLFxuICAgIFBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX01JTUUsXG4gICAgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRVxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQsIEltYWdlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBiYXNlNjR0b0Jsb2IgfSBmcm9tICcuLi8uLi91dGlscy9ibG9iJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEltYWdlUGx1Z2luT3B0aW9ucywgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRvciA9IHtcbiAgICBvcGVuVXBsb2FkKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnaW1hZ2UvKicpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICd0cnVlJyk7XG4gICAgICAgIGlucHV0RmlsZS5vbmNoYW5nZSA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIEltYWdlRWRpdG9yLmluc2VydEltYWdlcyhlZGl0b3IsIChldmVudC50YXJnZXQgYXMgYW55KS5maWxlcyk7XG4gICAgICAgIH07XG4gICAgICAgIGlucHV0RmlsZS5jbGljaygpO1xuICAgIH0sXG4gICAgaW5zZXJ0SW1hZ2VzKGVkaXRvcjogVGhlRWRpdG9yLCBpbWFnZUZpbGVzOiBGaWxlTGlzdCB8IEZpbGVbXSkge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCBpbWFnZU5vZGVzOiBDdXN0b21FbGVtZW50W10gPSBbXTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHsgdGV4dDogJycgfTtcbiAgICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBpbWFnZUZpbGVzKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZnkgPSBJbWFnZUVkaXRvci52ZXJpZnlJbWFnZShlZGl0b3IsIGltYWdlKTtcbiAgICAgICAgICAgIGlmICh2ZXJpZnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5hZGRVcGxvYWRpbmdGaWxlcyh7IHVybCwgZmlsZTogaW1hZ2UgfSk7XG4gICAgICAgICAgICAgICAgaW1hZ2VOb2Rlcy5wdXNoKHsgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlLCB1cmwsIGNoaWxkcmVuOiBbdGV4dF0gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltYWdlTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5pbnNlcnRFbGVtZW50cyhlZGl0b3IsIGltYWdlTm9kZXMpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBoYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yOiBUaGVFZGl0b3IsIGltYWdlOiBJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKGltYWdlLm9yaWdpblVybCkgJiYgaW1hZ2Uub3JpZ2luVXJsLmluY2x1ZGVzKCdiYXNlNjQnKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXhTcGxpdCA9IGltYWdlLm9yaWdpblVybC5pbmRleE9mKCcsJyk7XG4gICAgICAgICAgICBjb25zdCBiYXNlNjQgPSBpbWFnZS5vcmlnaW5Vcmwuc2xpY2UoaW5kZXhTcGxpdCArIDEpO1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSBpbWFnZS5vcmlnaW5Vcmwuc3Vic3RyaW5nKGltYWdlLm9yaWdpblVybC5pbmRleE9mKCc6JykgKyAxLCBpbWFnZS5vcmlnaW5VcmwuaW5kZXhPZignOycpKTtcbiAgICAgICAgICAgIGNvbnN0IGV4dCA9IGNvbnRlbnRUeXBlLnN1YnN0cmluZyhjb250ZW50VHlwZS5pbmRleE9mKCcvJykgKyAxKTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBiYXNlNjR0b0Jsb2IoYmFzZTY0LCBjb250ZW50VHlwZSk7XG4gICAgICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgIGltYWdlLnRodW1iVXJsID0gYmxvYlVybDtcbiAgICAgICAgICAgIGltYWdlLm9yaWdpblVybCA9IGJsb2JVcmw7XG4gICAgICAgICAgICBpbWFnZS51cmwgPSBibG9iVXJsO1xuICAgICAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgICAgIGNvbnRleHRTZXJ2aWNlLmFkZFVwbG9hZGluZ0ZpbGVzKHtcbiAgICAgICAgICAgICAgICB1cmw6IGJsb2JVcmwsXG4gICAgICAgICAgICAgICAgZmlsZTogbmV3IEZpbGUoW2Jsb2JdLCBgJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0uJHtleHR9YCwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHZlcmlmeUltYWdlKGVkaXRvcjogVGhlRWRpdG9yLCBpbWFnZTogRmlsZSkge1xuICAgICAgICBpZiAoIVBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX01JTUUuaW5jbHVkZXMoaW1hZ2UudHlwZSkpIHtcbiAgICAgICAgICAgIGVkaXRvci5vbkVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBFcnJvckNvZGVzLklNQUdFX0VSUl9NSU1FX0ZPUk1BVFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjZXB0ZWRVcGxvYWRTaXplID1cbiAgICAgICAgICAgIGdldFBsdWdpbk9wdGlvbnM8SW1hZ2VQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW1hZ2UpPy5hY2NlcHRlZFVwbG9hZFNpemUgPz8gUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRTtcbiAgICAgICAgaWYgKGltYWdlLnNpemUgLyAxMDAwMDAwID49IGFjY2VwdGVkVXBsb2FkU2l6ZSkge1xuICAgICAgICAgICAgZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IEVycm9yQ29kZXMuSU1BR0VfRVJSX1NJWkVfTElNSVRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gICAgaXNJbWFnZUFjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICAgICAgICAgIHVuaXZlcnNhbDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICEhbWF0Y2g7XG4gICAgfSxcbiAgICBzZXRJbWFnZU5vZGUoZWRpdG9yOiBUaGVFZGl0b3IsIHBhdGg6IFBhdGgsIHBhcnRpYWw6IHsgbGF5b3V0PzogTGF5b3V0VHlwZXM7IGFsaWduPzogQWxpZ25tZW50IH0pIHtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHBhcnRpYWwgYXMgQ3VzdG9tRWxlbWVudCwgeyBhdDogcGF0aCB9KTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Editor, Transforms, Element } from 'slate';
|
|
2
|
+
import { PluginKeys } from '../../interfaces';
|
|
3
|
+
import { getPluginOptions } from '../../core';
|
|
4
|
+
import { TableEditor } from '../table/table.editor';
|
|
5
|
+
import { Indents } from '../../constants';
|
|
6
|
+
export const IndentEditor = {
|
|
7
|
+
getAllowedTypes(editor) {
|
|
8
|
+
return getPluginOptions(editor, PluginKeys.indent)?.allowedTypes ?? [];
|
|
9
|
+
},
|
|
10
|
+
setIndent(editor) {
|
|
11
|
+
if (TableEditor.handleIndent(editor, Indents.indentRight)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const allowedTypes = IndentEditor.getAllowedTypes(editor);
|
|
15
|
+
const maxIndent = getPluginOptions(editor, PluginKeys.indent)?.maxIndent ?? 0;
|
|
16
|
+
const nodes = Array.from(Editor.nodes(editor, {
|
|
17
|
+
mode: 'highest',
|
|
18
|
+
match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
|
|
19
|
+
}));
|
|
20
|
+
const [startBlock] = nodes;
|
|
21
|
+
if (startBlock) {
|
|
22
|
+
let [{ indent }] = startBlock;
|
|
23
|
+
indent = indent ? ++indent : 1;
|
|
24
|
+
if (indent <= maxIndent) {
|
|
25
|
+
Transforms.setNodes(editor, { indent }, {
|
|
26
|
+
mode: 'highest',
|
|
27
|
+
match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
cancelIndent(editor) {
|
|
33
|
+
if (TableEditor.handleIndent(editor, Indents.indentLeft)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const allowedTypes = IndentEditor.getAllowedTypes(editor);
|
|
37
|
+
const nodes = Array.from(Editor.nodes(editor, {
|
|
38
|
+
mode: 'highest',
|
|
39
|
+
match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
|
|
40
|
+
}));
|
|
41
|
+
const [startBlock] = nodes;
|
|
42
|
+
if (startBlock) {
|
|
43
|
+
let [{ indent }] = startBlock;
|
|
44
|
+
indent = indent ? --indent : 0;
|
|
45
|
+
Transforms.setNodes(editor, { indent }, {
|
|
46
|
+
mode: 'highest',
|
|
47
|
+
match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
setTextIndent(editor, kinds, textIndent) {
|
|
52
|
+
Transforms.setNodes(editor, { textIndent }, {
|
|
53
|
+
mode: 'highest',
|
|
54
|
+
match: (n) => Element.isElement(n) && kinds.includes(n.type)
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
cancelTextIntent(editor, event, anchorBlock, kinds) {
|
|
58
|
+
let { textIndent, indent } = anchorBlock;
|
|
59
|
+
if (textIndent > 2) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
textIndent -= 2;
|
|
62
|
+
IndentEditor.setTextIndent(editor, kinds, textIndent);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
if (textIndent === 2) {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
IndentEditor.setTextIndent(editor, kinds, null);
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
if (indent) {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
IndentEditor.cancelIndent(editor);
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQ3hCLGVBQWUsQ0FBQyxNQUFpQjtRQUM3QixPQUFPLGdCQUFnQixDQUFzQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDaEcsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFpQjtRQUN2QixJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2RCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFzQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDbkcsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLEtBQUssQ0FBVSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVB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LENBQUM7WUFDaEIsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxNQUFNLEVBQUU7WUFDUixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IsIFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQsIEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgdHlwZSB7IEluZGVudFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL2luZGVudC5wbHVnaW4nO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuLi90YWJsZS90YWJsZS5lZGl0b3InO1xuaW1wb3J0IHsgSW5kZW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBJbmRlbnRFZGl0b3IgPSB7XG4gICAgZ2V0QWxsb3dlZFR5cGVzKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIHJldHVybiBnZXRQbHVnaW5PcHRpb25zPEluZGVudFBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbmRlbnQpPy5hbGxvd2VkVHlwZXMgPz8gW107XG4gICAgfSxcbiAgICBzZXRJbmRlbnQoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgaWYgKFRhYmxlRWRpdG9yLmhhbmRsZUluZGVudChlZGl0b3IsIEluZGVudHMuaW5kZW50UmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsb3dlZFR5cGVzID0gSW5kZW50RWRpdG9yLmdldEFsbG93ZWRUeXBlcyhlZGl0b3IpO1xuICAgICAgICBjb25zdCBtYXhJbmRlbnQgPSBnZXRQbHVnaW5PcHRpb25zPEluZGVudFBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbmRlbnQpPy5tYXhJbmRlbnQgPz8gMDtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgICAgRWRpdG9yLm5vZGVzPEVsZW1lbnQ+KGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1vZGU6ICdoaWdoZXN0JyxcbiAgICAgICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhuLnR5cGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBbc3RhcnRCbG9ja10gPSBub2RlcztcbiAgICAgICAgaWYgKHN0YXJ0QmxvY2spIHtcbiAgICAgICAgICAgIGxldCBbeyBpbmRlbnQgfV0gPSBzdGFydEJsb2NrO1xuICAgICAgICAgICAgaW5kZW50ID0gaW5kZW50ID8gKytpbmRlbnQgOiAxO1xuICAgICAgICAgICAgaWYgKGluZGVudCA8PSBtYXhJbmRlbnQpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgIHsgaW5kZW50IH0gYXMgQ3VzdG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2hpZ2hlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBhbGxvd2VkVHlwZXMuaW5jbHVkZXMobi50eXBlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgY2FuY2VsSW5kZW50KGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGlmIChUYWJsZUVkaXRvci5oYW5kbGVJbmRlbnQoZWRpdG9yLCBJbmRlbnRzLmluZGVudExlZnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsb3dlZFR5cGVzID0gSW5kZW50RWRpdG9yLmdldEFsbG93ZWRUeXBlcyhlZGl0b3IpO1xuICAgICAgICBjb25zdCBub2RlcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBFZGl0b3Iubm9kZXM8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgbW9kZTogJ2hpZ2hlc3QnLFxuICAgICAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKG4udHlwZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IFtzdGFydEJsb2NrXSA9IG5vZGVzO1xuICAgICAgICBpZiAoc3RhcnRCbG9jaykge1xuICAgICAgICAgICAgbGV0IFt7IGluZGVudCB9XSA9IHN0YXJ0QmxvY2s7XG4gICAgICAgICAgICBpbmRlbnQgPSBpbmRlbnQgPyAtLWluZGVudCA6IDA7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICB7IGluZGVudCB9IGFzIEN1c3RvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtb2RlOiAnaGlnaGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKG4udHlwZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzZXRUZXh0SW5kZW50KGVkaXRvcjogVGhlRWRpdG9yLCBraW5kczogQ3VzdG9tRWxlbWVudEtpbmRzW10sIHRleHRJbmRlbnQ6IG51bWJlcikge1xuICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgeyB0ZXh0SW5kZW50IH0gYXMgQ3VzdG9tRWxlbWVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtb2RlOiAnaGlnaGVzdCcsXG4gICAgICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBraW5kcy5pbmNsdWRlcyhuLnR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSxcbiAgICBjYW5jZWxUZXh0SW50ZW50KGVkaXRvcjogVGhlRWRpdG9yLCBldmVudDogS2V5Ym9hcmRFdmVudCwgYW5jaG9yQmxvY2s6IEN1c3RvbUVsZW1lbnQsIGtpbmRzOiBDdXN0b21FbGVtZW50S2luZHNbXSkge1xuICAgICAgICBsZXQgeyB0ZXh0SW5kZW50LCBpbmRlbnQgfSA9IGFuY2hvckJsb2NrO1xuXG4gICAgICAgIGlmICh0ZXh0SW5kZW50ID4gMikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRleHRJbmRlbnQgLT0gMjtcbiAgICAgICAgICAgIEluZGVudEVkaXRvci5zZXRUZXh0SW5kZW50KGVkaXRvciwga2luZHMsIHRleHRJbmRlbnQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHRJbmRlbnQgPT09IDIpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBJbmRlbnRFZGl0b3Iuc2V0VGV4dEluZGVudChlZGl0b3IsIGtpbmRzLCBudWxsKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBJbmRlbnRFZGl0b3IuY2FuY2VsSW5kZW50KGVkaXRvcik7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59O1xuIl19
|
|
@@ -56,4 +56,4 @@ export const createIndentPlugin = createPluginFactory({
|
|
|
56
56
|
disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBYSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQXNCLE1BQVMsRUFBSyxFQUFFO0lBQzVELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0IsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUUxRyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RILE1BQU0sVUFBVSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixJQUFJLFVBQVUsRUFBRTtZQUNaLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFzQjtJQUN2RSxHQUFHLEVBQUUsVUFBVSxDQUFDLE1BQU07SUFDdEIsYUFBYSxFQUFFLFVBQVU7SUFDekIsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDeEIsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25ELElBQUksRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM5QixJQUFJLEVBQUUsWUFBWTtZQUNsQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDL0IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7U0FDMUI7UUFDRDtZQUNJLEdBQUcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUN4QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3BEO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDdkIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsYUFBYTtZQUNuQixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUN2RDtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLEVBQUU7UUFDYixZQUFZLEVBQUU7WUFDVixZQUFZLENBQUMsU0FBUztZQUN0QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsU0FBUztZQUN0QixHQUFHLGFBQWE7U0FDbkI7UUFDRCxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2xHLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRHJvcGRvd25Nb2RlLCBFbGVtZW50S2luZHMsIEhFQURJTkdfVFlQRVMsIEluZGVudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnksIGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMsIFRoZUVkaXRvciwgVG9vbGJhckl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBvbktleWRvd25UZXh0SW5kZW50IH0gZnJvbSAnLi9vbi1rZXlkb3duLWluZGVudCc7XG5pbXBvcnQgeyBJbmRlbnRFZGl0b3IgfSBmcm9tICcuL2luZGVudC5lZGl0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGVudFBsdWdpbk9wdGlvbnMge1xuICAgIG1heEluZGVudD86IG51bWJlcjtcbiAgICBhbGxvd2VkVHlwZXM/OiBDdXN0b21FbGVtZW50S2luZHNbXTtcbiAgICBkaXNhYmxlSW5kZW50VHlwZXM/OiBDdXN0b21FbGVtZW50S2luZHNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhJbmRlbnQgPSA8VCBleHRlbmRzIFRoZUVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBvbktleWRvd24gfSA9IGVkaXRvcjtcblxuICAgIGNvbnN0IGFsbG93ZWRUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8SW5kZW50UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmluZGVudCk/LmFsbG93ZWRUeXBlcyA/PyBbXTtcblxuICAgIGVkaXRvci5vbktleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZUluZGVudFR5cGVzID0gZ2V0UGx1Z2luT3B0aW9uczxJbmRlbnRQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW5kZW50KT8uZGlzYWJsZUluZGVudFR5cGVzID8/IFtdO1xuICAgICAgICBjb25zdCBpc0NvbnRpbnVlID0gIW9uS2V5ZG93blRleHRJbmRlbnQoZWRpdG9yLCBldmVudCwgYWxsb3dlZFR5cGVzLCBkaXNhYmxlSW5kZW50VHlwZXMpO1xuICAgICAgICBpZiAoaXNDb250aW51ZSkge1xuICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZGVudFBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8SW5kZW50UGx1Z2luT3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5pbmRlbnQsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aEluZGVudCxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5kZW50LFxuICAgICAgICAgICAgaW5jbHVkZXM6IFtJbmRlbnRzLmluZGVudFJpZ2h0LCBJbmRlbnRzLmluZGVudExlZnRdLFxuICAgICAgICAgICAgdHlwZTogVG9vbGJhckl0ZW1UeXBlLmRyb3Bkb3duLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgZHJvcGRvd25Nb2RlOiBEcm9wZG93bk1vZGUuaWNvbixcbiAgICAgICAgICAgIGRyb3Bkb3duSXRlbUtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIGRyb3Bkb3duRml4ZWRJY29uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIG5hbWU6ICflop7liqDnvKnov5snLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgc2hvcnRjdXRLZXk6ICdUYWInLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEluZGVudEVkaXRvci5zZXRJbmRlbnQoZWRpdG9yKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEluZGVudHMuaW5kZW50TGVmdCxcbiAgICAgICAgICAgIG5hbWU6ICflh4/lsJHnvKnov5snLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LXJpZ2h0JyxcbiAgICAgICAgICAgIHNob3J0Y3V0S2V5OiAnU2hpZnQrVGFiJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmRlbnRFZGl0b3IuY2FuY2VsSW5kZW50KGVkaXRvcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgb3B0aW9uczoge1xuICAgICAgICBtYXhJbmRlbnQ6IDExLFxuICAgICAgICBhbGxvd2VkVHlwZXM6IFtcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgICAgICAgICBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCxcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsXG4gICAgICAgICAgICAuLi5IRUFESU5HX1RZUEVTXG4gICAgICAgIF0sXG4gICAgICAgIGRpc2FibGVJbmRlbnRUeXBlczogW0VsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1dLFxuICAgICAgICBkaXNhYmxlZE9wZXJhdGVUeXBlczogW0VsZW1lbnRLaW5kcy5pbWFnZSwgLi4uRElTQUJMRURfT1BFUkFURV9UWVBFU11cbiAgICB9XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { isKeyHotkey } from 'is-hotkey';
|
|
2
|
+
import { Range, Editor, Element } from 'slate';
|
|
3
|
+
import { hotkeys } from 'slate-angular';
|
|
4
|
+
import { TAB_SPACE } from '../../constants/default';
|
|
5
|
+
import { IndentEditor } from './indent.editor';
|
|
6
|
+
import { TableEditor } from '../table/table.editor';
|
|
7
|
+
import { Indents } from '../../constants';
|
|
8
|
+
export const onKeydownTextIndent = (editor, event, kinds, textIndentDisabled) => {
|
|
9
|
+
const { selection } = editor;
|
|
10
|
+
const isExpanded = Range.isExpanded(selection);
|
|
11
|
+
const nodes = Array.from(Editor.nodes(editor, {
|
|
12
|
+
mode: 'highest',
|
|
13
|
+
match: (n) => Element.isElement(n) && kinds.includes(n.type)
|
|
14
|
+
}));
|
|
15
|
+
const [startBlock] = nodes;
|
|
16
|
+
if (!startBlock) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const [block, path] = startBlock;
|
|
20
|
+
const isStart = Editor.isStart(editor, selection.anchor, path);
|
|
21
|
+
if (isKeyHotkey('Tab', event)) {
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
if (TableEditor.handleIndent(editor, Indents.indentRight)) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (startBlock && (isExpanded || isStart)) {
|
|
27
|
+
if (!editor.isVoid(block)) {
|
|
28
|
+
let { textIndent, type } = block;
|
|
29
|
+
// do not apply first-line indentation for lists
|
|
30
|
+
if (!textIndent && !textIndentDisabled.includes(type)) {
|
|
31
|
+
IndentEditor.setTextIndent(editor, kinds, 2);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
IndentEditor.setIndent(editor);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
editor.insertText(TAB_SPACE);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (isKeyHotkey('shift+Tab', event)) {
|
|
46
|
+
if (startBlock && (isExpanded || isStart)) {
|
|
47
|
+
if (!editor.isVoid(block)) {
|
|
48
|
+
return IndentEditor.cancelTextIntent(editor, event, block, kinds);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (selection && Range.isCollapsed(selection) && hotkeys.isDeleteBackward(event)) {
|
|
53
|
+
if (startBlock && isStart) {
|
|
54
|
+
return IndentEditor.cancelTextIntent(editor, event, block, kinds);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24ta2V5ZG93bi1pbmRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9pbmRlbnQvb24ta2V5ZG93bi1pbmRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDL0IsTUFBaUIsRUFDakIsS0FBb0IsRUFDcEIsS0FBMkIsRUFDM0Isa0JBQXdDLEVBQzFDLEVBQUU7SUFDQSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLEtBQUssQ0FBVSxNQUFNLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUM5RSxDQUFDLENBQ0wsQ0FBQztJQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNiLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDakMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUUvRCxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbkQsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxPQUFPLElBQUksQ0FBQztpQkFDZjtxQkFBTTtvQkFDSCxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQixPQUFPLElBQUksQ0FBQztpQkFDZjthQUNKO1NBQ0o7YUFBTTtZQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDZjtLQUNKO0lBQ0QsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLElBQUksVUFBVSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNyRTtTQUNKO0tBQ0o7SUFDRCxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM5RSxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDdkIsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDckU7S0FDSjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzS2V5SG90a2V5IH0gZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IFJhbmdlLCBFZGl0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBob3RrZXlzIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50LCBDdXN0b21FbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgVEFCX1NQQUNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgSW5kZW50RWRpdG9yIH0gZnJvbSAnLi9pbmRlbnQuZWRpdG9yJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi4vdGFibGUvdGFibGUuZWRpdG9yJztcbmltcG9ydCB7IEluZGVudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBvbktleWRvd25UZXh0SW5kZW50ID0gKFxuICAgIGVkaXRvcjogVGhlRWRpdG9yLFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGtpbmRzOiBDdXN0b21FbGVtZW50S2luZHNbXSxcbiAgICB0ZXh0SW5kZW50RGlzYWJsZWQ6IEN1c3RvbUVsZW1lbnRLaW5kc1tdXG4pID0+IHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgIGNvbnN0IGlzRXhwYW5kZWQgPSBSYW5nZS5pc0V4cGFuZGVkKHNlbGVjdGlvbik7XG4gICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKFxuICAgICAgICBFZGl0b3Iubm9kZXM8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICBtb2RlOiAnaGlnaGVzdCcsXG4gICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIGtpbmRzLmluY2x1ZGVzKG4udHlwZSlcbiAgICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IFtzdGFydEJsb2NrXSA9IG5vZGVzO1xuICAgIGlmICghc3RhcnRCbG9jaykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgW2Jsb2NrLCBwYXRoXSA9IHN0YXJ0QmxvY2s7XG4gICAgY29uc3QgaXNTdGFydCA9IEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciwgcGF0aCk7XG5cbiAgICBpZiAoaXNLZXlIb3RrZXkoJ1RhYicsIGV2ZW50KSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmIChUYWJsZUVkaXRvci5oYW5kbGVJbmRlbnQoZWRpdG9yLCBJbmRlbnRzLmluZGVudFJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnRCbG9jayAmJiAoaXNFeHBhbmRlZCB8fCBpc1N0YXJ0KSkge1xuICAgICAgICAgICAgaWYgKCFlZGl0b3IuaXNWb2lkKGJsb2NrKSkge1xuICAgICAgICAgICAgICAgIGxldCB7IHRleHRJbmRlbnQsIHR5cGUgfSA9IGJsb2NrO1xuICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBhcHBseSBmaXJzdC1saW5lIGluZGVudGF0aW9uIGZvciBsaXN0c1xuICAgICAgICAgICAgICAgIGlmICghdGV4dEluZGVudCAmJiAhdGV4dEluZGVudERpc2FibGVkLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIEluZGVudEVkaXRvci5zZXRUZXh0SW5kZW50KGVkaXRvciwga2luZHMsIDIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBJbmRlbnRFZGl0b3Iuc2V0SW5kZW50KGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVkaXRvci5pbnNlcnRUZXh0KFRBQl9TUEFDRSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNLZXlIb3RrZXkoJ3NoaWZ0K1RhYicsIGV2ZW50KSkge1xuICAgICAgICBpZiAoc3RhcnRCbG9jayAmJiAoaXNFeHBhbmRlZCB8fCBpc1N0YXJ0KSkge1xuICAgICAgICAgICAgaWYgKCFlZGl0b3IuaXNWb2lkKGJsb2NrKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBJbmRlbnRFZGl0b3IuY2FuY2VsVGV4dEludGVudChlZGl0b3IsIGV2ZW50LCBibG9jaywga2luZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChzZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoc2VsZWN0aW9uKSAmJiBob3RrZXlzLmlzRGVsZXRlQmFja3dhcmQoZXZlbnQpKSB7XG4gICAgICAgIGlmIChzdGFydEJsb2NrICYmIGlzU3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiBJbmRlbnRFZGl0b3IuY2FuY2VsVGV4dEludGVudChlZGl0b3IsIGV2ZW50LCBibG9jaywga2luZHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { TheBaseElementComponent } from '../../interfaces';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "slate-angular";
|
|
5
|
+
export class TheInlineCodeComponent extends TheBaseElementComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
// Put this at the start and end of an inline component to work around this Chromium bug:
|
|
9
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1249405
|
|
10
|
+
this.inlineChromiumBugfix = String.fromCodePoint(160);
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheInlineCodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: TheInlineCodeComponent, selector: "span[theInlineCode]", usesInheritance: true, ngImport: i0, template: `<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
|
|
14
|
+
<span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
|
|
15
|
+
<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheInlineCodeComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{
|
|
20
|
+
selector: 'span[theInlineCode]',
|
|
21
|
+
template: `<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
|
|
22
|
+
<span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
|
|
23
|
+
<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFhLE1BQU0sa0JBQWtCLENBQUM7OztBQVF0RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXFEO0lBTmpHOztRQU9JLHlGQUF5RjtRQUN6RixnRUFBZ0U7UUFDaEUseUJBQW9CLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwRDs4R0FKWSxzQkFBc0I7a0dBQXRCLHNCQUFzQixrRkFKckI7OytGQUVpRjs7MkZBRWxGLHNCQUFzQjtrQkFObEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7OytGQUVpRjtpQkFDOUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElubGluZUNvZGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50Q29tcG9uZW50LCBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzcGFuW3RoZUlubGluZUNvZGVdJyxcbiAgICB0ZW1wbGF0ZTogYDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgY2xhc3M9XCJ0aGUtYnJlYWstY2hhclwiPnt7IGlubGluZUNocm9taXVtQnVnZml4IH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj48c2xhdGUtY2hpbGRyZW4gW2NoaWxkcmVuXT1cImNoaWxkcmVuXCIgW2NvbnRleHRdPVwiY2hpbGRyZW5Db250ZXh0XCIgW3ZpZXdDb250ZXh0XT1cInZpZXdDb250ZXh0XCI+PC9zbGF0ZS1jaGlsZHJlbj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgY2xhc3M9XCJ0aGUtYnJlYWstY2hhclwiPnt7IGlubGluZUNocm9taXVtQnVnZml4IH19PC9zcGFuPmBcbn0pXG5leHBvcnQgY2xhc3MgVGhlSW5saW5lQ29kZUNvbXBvbmVudCBleHRlbmRzIFRoZUJhc2VFbGVtZW50Q29tcG9uZW50PElubGluZUNvZGVFbGVtZW50LCBUaGVFZGl0b3I+IHtcbiAgICAvLyBQdXQgdGhpcyBhdCB0aGUgc3RhcnQgYW5kIGVuZCBvZiBhbiBpbmxpbmUgY29tcG9uZW50IHRvIHdvcmsgYXJvdW5kIHRoaXMgQ2hyb21pdW0gYnVnOlxuICAgIC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEyNDk0MDVcbiAgICBpbmxpbmVDaHJvbWl1bUJ1Z2ZpeCA9IFN0cmluZy5mcm9tQ29kZVBvaW50KDE2MCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Editor, Range, Transforms, Node, Element } from 'slate';
|
|
2
|
+
import { ElementKinds, ZERO_WIDTH_CHAR } from '../../constants';
|
|
3
|
+
export const InlineCodeEditor = {
|
|
4
|
+
toggleInlineCode(editor, text) {
|
|
5
|
+
const isActive = InlineCodeEditor.isInlineCodeActive(editor);
|
|
6
|
+
if (isActive) {
|
|
7
|
+
InlineCodeEditor.unwrapInlineCode(editor);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (Range.isCollapsed(editor.selection)) {
|
|
11
|
+
InlineCodeEditor.wrapInlineCode(editor, text);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
const fragment = Node.fragment(editor, editor.selection)[0];
|
|
15
|
+
const selectNode = Node.get(fragment, []);
|
|
16
|
+
const selectText = Node.string(selectNode);
|
|
17
|
+
InlineCodeEditor.wrapInlineCode(editor, selectText);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
wrapInlineCode(editor, text = '') {
|
|
21
|
+
if (InlineCodeEditor.isInlineCodeActive(editor)) {
|
|
22
|
+
InlineCodeEditor.unwrapInlineCode(editor);
|
|
23
|
+
}
|
|
24
|
+
const { selection } = editor;
|
|
25
|
+
const isCollapsed = selection && Range.isCollapsed(selection);
|
|
26
|
+
const inlineCode = {
|
|
27
|
+
type: ElementKinds.inlineCode,
|
|
28
|
+
children: isCollapsed ? [{ text: text ? text : ZERO_WIDTH_CHAR }] : []
|
|
29
|
+
};
|
|
30
|
+
if (isCollapsed) {
|
|
31
|
+
Transforms.insertNodes(editor, inlineCode);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
Transforms.wrapNodes(editor, inlineCode, { split: true });
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
unwrapInlineCode(editor) {
|
|
38
|
+
Transforms.unwrapNodes(editor, { match: (n) => Element.isElement(n) && n.type === ElementKinds.inlineCode });
|
|
39
|
+
},
|
|
40
|
+
isInlineCodeActive(editor, path) {
|
|
41
|
+
const [inlineCode] = Editor.nodes(editor, {
|
|
42
|
+
at: path ? path : editor.selection?.anchor.path,
|
|
43
|
+
match: (n) => Element.isElement(n) && n.type === ElementKinds.inlineCode
|
|
44
|
+
});
|
|
45
|
+
return !!inlineCode;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDNUIsZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxJQUFhO1FBQzdDLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksUUFBUSxFQUFFO1lBQ1YsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsT0FBTztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pEO2FBQU07WUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFpQixFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3ZDLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0MsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sV0FBVyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFzQjtZQUNsQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDN0IsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6RSxDQUFDO1FBQ0YsSUFBSSxXQUFXLEVBQUU7WUFDYixVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0gsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBaUI7UUFDOUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWlCLEVBQUUsSUFBVztRQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsVUFBVTtTQUMxRixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFJhbmdlLCBUcmFuc2Zvcm1zLCBOb2RlLCBFbGVtZW50LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudCwgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBJbmxpbmVDb2RlRWRpdG9yID0ge1xuICAgIHRvZ2dsZUlubGluZUNvZGUoZWRpdG9yOiBUaGVFZGl0b3IsIHRleHQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpO1xuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIElubGluZUNvZGVFZGl0b3IudW53cmFwSW5saW5lQ29kZShlZGl0b3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgSW5saW5lQ29kZUVkaXRvci53cmFwSW5saW5lQ29kZShlZGl0b3IsIHRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBOb2RlLmZyYWdtZW50KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbilbMF07XG4gICAgICAgICAgICBjb25zdCBzZWxlY3ROb2RlID0gTm9kZS5nZXQoZnJhZ21lbnQsIFtdKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdFRleHQgPSBOb2RlLnN0cmluZyhzZWxlY3ROb2RlKTtcbiAgICAgICAgICAgIElubGluZUNvZGVFZGl0b3Iud3JhcElubGluZUNvZGUoZWRpdG9yLCBzZWxlY3RUZXh0KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB3cmFwSW5saW5lQ29kZShlZGl0b3I6IFRoZUVkaXRvciwgdGV4dCA9ICcnKSB7XG4gICAgICAgIGlmIChJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpKSB7XG4gICAgICAgICAgICBJbmxpbmVDb2RlRWRpdG9yLnVud3JhcElubGluZUNvZGUoZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBpbmxpbmVDb2RlOiBJbmxpbmVDb2RlRWxlbWVudCA9IHtcbiAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlLFxuICAgICAgICAgICAgY2hpbGRyZW46IGlzQ29sbGFwc2VkID8gW3sgdGV4dDogdGV4dCA/IHRleHQgOiBaRVJPX1dJRFRIX0NIQVIgfV0gOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBpbmxpbmVDb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMud3JhcE5vZGVzKGVkaXRvciwgaW5saW5lQ29kZSwgeyBzcGxpdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB1bndyYXBJbmxpbmVDb2RlKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIFRyYW5zZm9ybXMudW53cmFwTm9kZXMoZWRpdG9yLCB7IG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZSB9KTtcbiAgICB9LFxuXG4gICAgaXNJbmxpbmVDb2RlQWN0aXZlKGVkaXRvcjogVGhlRWRpdG9yLCBwYXRoPzogUGF0aCkge1xuICAgICAgICBjb25zdCBbaW5saW5lQ29kZV0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICBhdDogcGF0aCA/IHBhdGggOiBlZGl0b3Iuc2VsZWN0aW9uPy5hbmNob3IucGF0aCxcbiAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICEhaW5saW5lQ29kZTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import { DISABLED_OPERATE_TYPES, ElementKinds, ZERO_WIDTH_CHAR } from '../../constants';
|
|
3
|
+
import { createPluginFactory } from '../../core';
|
|
4
|
+
import { PluginKeys } from '../../interfaces';
|
|
5
|
+
import { CONTROL_KEY } from '../../utils';
|
|
6
|
+
import { TheInlineCodeComponent } from './inline-code.component';
|
|
7
|
+
import { InlineCodeEditor } from './inline-code.editor';
|
|
8
|
+
import { withRemoveEmptyNodes } from '../normalizers/remove-empty-nodes';
|
|
9
|
+
export const withInlineCode = (editor) => {
|
|
10
|
+
const { isInline, renderElement, insertText } = editor;
|
|
11
|
+
editor.isInline = (element) => {
|
|
12
|
+
return element.type === ElementKinds.inlineCode ? true : isInline(element);
|
|
13
|
+
};
|
|
14
|
+
editor.renderElement = (element) => {
|
|
15
|
+
if (element.type === ElementKinds.inlineCode) {
|
|
16
|
+
return TheInlineCodeComponent;
|
|
17
|
+
}
|
|
18
|
+
return renderElement(element);
|
|
19
|
+
};
|
|
20
|
+
editor.insertText = text => {
|
|
21
|
+
if (text && InlineCodeEditor.isInlineCodeActive(editor)) {
|
|
22
|
+
let selection = editor.selection;
|
|
23
|
+
const currentNodeText = Editor.string(editor, editor.selection.anchor.path);
|
|
24
|
+
insertText(text);
|
|
25
|
+
if (currentNodeText == ZERO_WIDTH_CHAR) {
|
|
26
|
+
const inlineCodePath = Editor.path(editor, editor.selection);
|
|
27
|
+
let range = {
|
|
28
|
+
anchor: Editor.before(editor, selection.anchor),
|
|
29
|
+
focus: selection.anchor
|
|
30
|
+
};
|
|
31
|
+
if (Editor.isStart(editor, selection.anchor, inlineCodePath)) {
|
|
32
|
+
range = {
|
|
33
|
+
anchor: editor.selection.anchor,
|
|
34
|
+
focus: Editor.after(editor, editor.selection)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
Transforms.delete(editor, {
|
|
38
|
+
at: range
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
insertText(text);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
editor = withRemoveEmptyNodes({ type: ElementKinds.inlineCode })(editor);
|
|
47
|
+
return editor;
|
|
48
|
+
};
|
|
49
|
+
export const createInlineCodePlugin = createPluginFactory({
|
|
50
|
+
key: PluginKeys.inlineCode,
|
|
51
|
+
withOverrides: withInlineCode,
|
|
52
|
+
toolbarItems: [
|
|
53
|
+
{
|
|
54
|
+
key: ElementKinds.inlineCode,
|
|
55
|
+
icon: 'code',
|
|
56
|
+
name: '行内代码',
|
|
57
|
+
shortcutKey: `${CONTROL_KEY}+E`,
|
|
58
|
+
execute: editor => InlineCodeEditor.toggleInlineCode(editor),
|
|
59
|
+
active: editor => InlineCodeEditor.isInlineCodeActive(editor)
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
options: {
|
|
63
|
+
disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFzQixNQUFTLEVBQUssRUFBRTtJQUNoRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFdkQsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQTBCLEVBQUUsRUFBRTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLE9BQTBCLEVBQUUsRUFBRTtRQUNsRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUMxQyxPQUFPLHNCQUFzQixDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN2QixJQUFJLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixJQUFJLGVBQWUsSUFBSSxlQUFlLEVBQUU7Z0JBQ3BDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxLQUFLLEdBQUc7b0JBQ1IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQy9DLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtpQkFDMUIsQ0FBQztnQkFDRixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUU7b0JBQzFELEtBQUssR0FBRzt3QkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO3dCQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDaEQsQ0FBQztpQkFDTDtnQkFDRCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDdEIsRUFBRSxFQUFFLEtBQUs7aUJBQ1osQ0FBQyxDQUFDO2FBQ047U0FDSjthQUFNO1lBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxHQUFHLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0lBQ3RELEdBQUcsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUMxQixhQUFhLEVBQUUsY0FBYztJQUM3QixZQUFZLEVBQUU7UUFDVjtZQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsVUFBVTtZQUM1QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxNQUFNO1lBQ1osV0FBVyxFQUFFLEdBQUcsV0FBVyxJQUFJO1lBQy9CLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUM1RCxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7U0FDaEU7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDT05UUk9MX0tFWSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFRoZUlubGluZUNvZGVDb21wb25lbnQgfSBmcm9tICcuL2lubGluZS1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmxpbmVDb2RlRWRpdG9yIH0gZnJvbSAnLi9pbmxpbmUtY29kZS5lZGl0b3InO1xuaW1wb3J0IHsgd2l0aFJlbW92ZUVtcHR5Tm9kZXMgfSBmcm9tICcuLi9ub3JtYWxpemVycy9yZW1vdmUtZW1wdHktbm9kZXMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aElubGluZUNvZGUgPSA8VCBleHRlbmRzIFRoZUVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBpc0lubGluZSwgcmVuZGVyRWxlbWVudCwgaW5zZXJ0VGV4dCB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmlzSW5saW5lID0gKGVsZW1lbnQ6IElubGluZUNvZGVFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlID8gdHJ1ZSA6IGlzSW5saW5lKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBJbmxpbmVDb2RlRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZUlubGluZUNvZGVDb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlckVsZW1lbnQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5pbnNlcnRUZXh0ID0gdGV4dCA9PiB7XG4gICAgICAgIGlmICh0ZXh0ICYmIElubGluZUNvZGVFZGl0b3IuaXNJbmxpbmVDb2RlQWN0aXZlKGVkaXRvcikpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3Rpb24gPSBlZGl0b3Iuc2VsZWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE5vZGVUZXh0ID0gRWRpdG9yLnN0cmluZyhlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgaW5zZXJ0VGV4dCh0ZXh0KTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Tm9kZVRleHQgPT0gWkVST19XSURUSF9DSEFSKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5saW5lQ29kZVBhdGggPSBFZGl0b3IucGF0aChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIGxldCByYW5nZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yOiBFZGl0b3IuYmVmb3JlKGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzOiBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBpbmxpbmVDb2RlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3I6IGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXM6IEVkaXRvci5hZnRlcihlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgICAgICAgICBhdDogcmFuZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluc2VydFRleHQodGV4dCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZWRpdG9yID0gd2l0aFJlbW92ZUVtcHR5Tm9kZXMoeyB0eXBlOiBFbGVtZW50S2luZHMuaW5saW5lQ29kZSB9KShlZGl0b3IpO1xuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlSW5saW5lQ29kZVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy5pbmxpbmVDb2RlLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhJbmxpbmVDb2RlLFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlLFxuICAgICAgICAgICAgaWNvbjogJ2NvZGUnLFxuICAgICAgICAgICAgbmFtZTogJ+ihjOWGheS7o+eggScsXG4gICAgICAgICAgICBzaG9ydGN1dEtleTogYCR7Q09OVFJPTF9LRVl9K0VgLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IElubGluZUNvZGVFZGl0b3IudG9nZ2xlSW5saW5lQ29kZShlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gSW5saW5lQ29kZUVkaXRvci5pc0lubGluZUNvZGVBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGRpc2FibGVkT3BlcmF0ZVR5cGVzOiBbRWxlbWVudEtpbmRzLmltYWdlLCAuLi5ESVNBQkxFRF9PUEVSQVRFX1RZUEVTXVxuICAgIH1cbn0pO1xuIl19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Component, Input, HostBinding, HostListener } from '@angular/core';
|
|
2
|
+
import { Transforms, Editor } from 'slate';
|
|
3
|
+
import { AngularEditor } from 'slate-angular';
|
|
4
|
+
import * as TheQueries from '../../../queries';
|
|
5
|
+
import { TheEditor } from '../../../interfaces';
|
|
6
|
+
import { LinkCloseTypes, LinkTags } from '../link.types';
|
|
7
|
+
import isUrl from 'is-url';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "ngx-tethys/popover";
|
|
10
|
+
import * as i2 from "@angular/forms";
|
|
11
|
+
import * as i3 from "ngx-tethys/form";
|
|
12
|
+
import * as i4 from "ngx-tethys/shared";
|
|
13
|
+
import * as i5 from "ngx-tethys/input";
|
|
14
|
+
import * as i6 from "ngx-tethys/button";
|
|
15
|
+
export class TheLinkEditComponent {
|
|
16
|
+
handleDocumentMouseDown(event) {
|
|
17
|
+
if (!document.querySelector('.the-link-edit-container').contains(event.target)) {
|
|
18
|
+
this.thyPopoverRef.close();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
constructor(thyPopoverRef) {
|
|
22
|
+
this.thyPopoverRef = thyPopoverRef;
|
|
23
|
+
this.className = 'the-link-edit-container';
|
|
24
|
+
this.link = '';
|
|
25
|
+
this.text = '';
|
|
26
|
+
this.validatorConfig = {
|
|
27
|
+
validationMessages: {
|
|
28
|
+
link: {
|
|
29
|
+
required: '链接不能为空',
|
|
30
|
+
pattern: '请输入正确的链接'
|
|
31
|
+
},
|
|
32
|
+
text: {
|
|
33
|
+
required: '文本不能为空'
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.originText = this.text;
|
|
40
|
+
this.originLink = this.link;
|
|
41
|
+
this.thyPopoverRef.beforeClosed().subscribe(type => {
|
|
42
|
+
switch (true) {
|
|
43
|
+
case type === LinkCloseTypes.apply:
|
|
44
|
+
break;
|
|
45
|
+
case this.tag === LinkTags.insert:
|
|
46
|
+
AngularEditor.focus(this.editor);
|
|
47
|
+
Transforms.select(this.editor, this.originSelection);
|
|
48
|
+
this.editor.undo();
|
|
49
|
+
break;
|
|
50
|
+
case this.tag === LinkTags.edit:
|
|
51
|
+
AngularEditor.focus(this.editor);
|
|
52
|
+
Transforms.select(this.editor, this.originSelection);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
closePopover(type) {
|
|
58
|
+
this.thyPopoverRef.close(type);
|
|
59
|
+
}
|
|
60
|
+
applyLink(form) {
|
|
61
|
+
const link = this.link.trim();
|
|
62
|
+
if (isUrl(link)) {
|
|
63
|
+
const linkPath = TheQueries.findPath(this.editor, this.node);
|
|
64
|
+
if (this.originLink !== link) {
|
|
65
|
+
Transforms.setNodes(this.editor, { url: link }, { at: linkPath });
|
|
66
|
+
}
|
|
67
|
+
if (this.originText !== this.text) {
|
|
68
|
+
const [start, end] = Editor.edges(this.editor, linkPath);
|
|
69
|
+
Transforms.insertText(this.editor, this.text, { at: { anchor: end, focus: end } });
|
|
70
|
+
Transforms.delete(this.editor, { at: { anchor: start, focus: end } });
|
|
71
|
+
}
|
|
72
|
+
TheEditor.focus(this.editor);
|
|
73
|
+
Transforms.select(this.editor, Editor.after(this.editor, linkPath));
|
|
74
|
+
this.closePopover(LinkCloseTypes.apply);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
form.validator.setElementErrorMessage(`link`, '请输入正确的链接');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheLinkEditComponent, deps: [{ token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: TheLinkEditComponent, selector: "the-link-edit", inputs: { tag: "tag", node: "node", link: "link", text: "text", originSelection: "originSelection" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, properties: { "class": "this.className" } }, ngImport: i0, template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group thyLabelText=\"\u6587\u672C\">\n <input thyInput placeholder=\"\u8BF7\u8F93\u5165\u6587\u672C\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u94FE\u63A5\">\n <input name=\"link\" thyInput placeholder=\"\u8BF7\u8F93\u5165\u94FE\u63A5\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">\u53D6\u6D88</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">\u5E94\u7528</button>\n </div>\n </thy-form-group-footer>\n</form>\n", dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i3.ThyFormGroupComponent, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i3.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i3.ThyFormGroupFooterComponent, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "directive", type: i4.ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: i5.ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "component", type: i6.ThyButtonComponent, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }] }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheLinkEditComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'the-link-edit', template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group thyLabelText=\"\u6587\u672C\">\n <input thyInput placeholder=\"\u8BF7\u8F93\u5165\u6587\u672C\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u94FE\u63A5\">\n <input name=\"link\" thyInput placeholder=\"\u8BF7\u8F93\u5165\u94FE\u63A5\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">\u53D6\u6D88</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">\u5E94\u7528</button>\n </div>\n </thy-form-group-footer>\n</form>\n" }]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.ThyPopoverRef }]; }, propDecorators: { className: [{
|
|
87
|
+
type: HostBinding,
|
|
88
|
+
args: ['class']
|
|
89
|
+
}], tag: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], node: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], link: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], text: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], originSelection: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], handleDocumentMouseDown: [{
|
|
100
|
+
type: HostListener,
|
|
101
|
+
args: ['document: mousedown', ['$event']]
|
|
102
|
+
}] } });
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpbmsvZWRpdC9saW5rLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGluay9lZGl0L2xpbmstZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxLQUFLLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQU0zQixNQUFNLE9BQU8sb0JBQW9CO0lBZ0M3Qix1QkFBdUIsQ0FBQyxLQUFpQjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBcUIsQ0FBQyxFQUFFO1lBQzNGLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsWUFBbUIsYUFBaUM7UUFBakMsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBckM5QixjQUFTLEdBQUcseUJBQXlCLENBQUM7UUFNbkQsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVWLFNBQUksR0FBRyxFQUFFLENBQUM7UUFV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TSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzdEO0lBQ0wsQ0FBQzs4R0FsRlEsb0JBQW9CO2tHQUFwQixvQkFBb0IseVJDZGpDLDQyQkFjQTs7MkZEQWEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLGVBQWU7b0dBSUgsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUVYLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQXFCTix1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVHJhbnNmb3JtcywgUmFuZ2UsIE5vZGUsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgTGlua0Nsb3NlVHlwZXMsIExpbmtUYWdzIH0gZnJvbSAnLi4vbGluay50eXBlcyc7XG5pbXBvcnQgaXNVcmwgZnJvbSAnaXMtdXJsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtbGluay1lZGl0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay1lZGl0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVMaW5rRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICd0aGUtbGluay1lZGl0LWNvbnRhaW5lcic7XG5cbiAgICBASW5wdXQoKSB0YWc6IExpbmtUYWdzO1xuXG4gICAgQElucHV0KCkgbm9kZTogTm9kZTtcblxuICAgIEBJbnB1dCgpIGxpbmsgPSAnJztcblxuICAgIEBJbnB1dCgpIHRleHQgPSAnJztcblxuICAgIEBJbnB1dCgpIG9yaWdpblNlbGVjdGlvbjogUmFuZ2U7XG5cbiAgICBlZGl0b3I6IFRoZUVkaXRvcjtcblxuICAgIG9yaWdpbkxpbms6IHN0cmluZztcblxuICAgIG9yaWdpblRleHQ6IHN0cmluZztcblxuICAgIHZhbGlkYXRvckNvbmZpZyA9IHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7XG4gICAgICAgICAgICBsaW5rOiB7XG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICfpk77mjqXkuI3og73kuLrnqbonLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46ICfor7fovpPlhaXmraPnoa7nmoTpk77mjqUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAn5paH5pys5LiN6IO95Li656m6J1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OiBtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZURvY3VtZW50TW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1saW5rLWVkaXQtY29udGFpbmVyJykuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGh5UG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxhbnk+KSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMub3JpZ2luVGV4dCA9IHRoaXMudGV4dDtcbiAgICAgICAgdGhpcy5vcmlnaW5MaW5rID0gdGhpcy5saW5rO1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKHR5cGUgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSB0eXBlID09PSBMaW5rQ2xvc2VUeXBlcy5hcHBseTpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSB0aGlzLnRhZyA9PT0gTGlua1RhZ3MuaW5zZXJ0OlxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHRoaXMub3JpZ2luU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0b3IudW5kbygpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIHRoaXMudGFnID09PSBMaW5rVGFncy5lZGl0OlxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHRoaXMub3JpZ2luU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlUG9wb3Zlcih0eXBlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSh0eXBlKTtcbiAgICB9XG5cbiAgICBhcHBseUxpbmsoZm9ybSkge1xuICAgICAgICBjb25zdCBsaW5rID0gdGhpcy5saW5rLnRyaW0oKTtcbiAgICAgICAgaWYgKGlzVXJsKGxpbmspKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5rUGF0aCA9IFRoZVF1ZXJpZXMuZmluZFBhdGgodGhpcy5lZGl0b3IsIHRoaXMubm9kZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcmlnaW5MaW5rICE9PSBsaW5rKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2Rlcyh0aGlzLmVkaXRvciwgeyB1cmw6IGxpbmsgfSBhcyBDdXN0b21FbGVtZW50LCB7IGF0OiBsaW5rUGF0aCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWdpblRleHQgIT09IHRoaXMudGV4dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IEVkaXRvci5lZGdlcyh0aGlzLmVkaXRvciwgbGlua1BhdGgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0VGV4dCh0aGlzLmVkaXRvciwgdGhpcy50ZXh0LCB7IGF0OiB7IGFuY2hvcjogZW5kLCBmb2N1czogZW5kIH0gfSk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUodGhpcy5lZGl0b3IsIHsgYXQ6IHsgYW5jaG9yOiBzdGFydCwgZm9jdXM6IGVuZCB9IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVGhlRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBFZGl0b3IuYWZ0ZXIodGhpcy5lZGl0b3IsIGxpbmtQYXRoKSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcihMaW5rQ2xvc2VUeXBlcy5hcHBseSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtLnZhbGlkYXRvci5zZXRFbGVtZW50RXJyb3JNZXNzYWdlKGBsaW5rYCwgJ+ivt+i+k+WFpeato+ehrueahOmTvuaOpScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm0gdGh5Rm9ybSAjbGlua0Zvcm09XCJ0aHlGb3JtXCIgW3RoeUZvcm1WYWxpZGF0b3JDb25maWddPVwidmFsaWRhdG9yQ29uZmlnXCIgbmFtZT1cImxpbmtGb3JtXCI+XG4gIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFRleHQ9XCLmlofmnKxcIj5cbiAgICA8aW5wdXQgdGh5SW5wdXQgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXmlofmnKxcIiByZXF1aXJlZCBuYW1lPVwidGV4dFwiIFsobmdNb2RlbCldPVwidGV4dFwiIHRoeUF1dG9mb2N1cyB0eXBlPVwidGV4dFwiIC8+XG4gIDwvdGh5LWZvcm0tZ3JvdXA+XG4gIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFRleHQ9XCLpk77mjqVcIj5cbiAgICA8aW5wdXQgbmFtZT1cImxpbmtcIiB0aHlJbnB1dCBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpemTvuaOpVwiIHJlcXVpcmVkIHR5cGU9XCJ0ZXh0XCIgI2xpbmtDb250cm9sPVwibmdNb2RlbFwiIFsobmdNb2RlbCldPVwibGlua1wiIC8+XG4gIDwvdGh5LWZvcm0tZ3JvdXA+XG4gIDx0aHktZm9ybS1ncm91cC1mb290ZXI+XG4gICAgPGRpdiBjbGFzcz1cImJ0bi1wYWlyXCI+XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cImxpbmstc2Vjb25kYXJ5XCIgdGh5U2l6ZT1cInNtXCIgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCI+5Y+W5raIPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cInByaW1hcnktc3F1YXJlXCIgdGh5U2l6ZT1cInNtXCIgKHRoeUZvcm1TdWJtaXQpPVwiYXBwbHlMaW5rKGxpbmtGb3JtKVwiPuW6lOeUqDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3RoeS1mb3JtLWdyb3VwLWZvb3Rlcj5cbjwvZm9ybT5cbiJdfQ==
|