@worktile/theia 16.1.6 → 16.1.8
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 +1 -1
- package/components/inline-toolbar/inline-toolbar.component.d.ts +1 -1
- package/components/listbox/listbox.d.ts +3 -3
- package/components/plugin-menu/plugin-menu.component.d.ts +5 -4
- package/components/table-select/table-select.component.d.ts +1 -1
- package/components/toolbar/toolbar.component.d.ts +1 -1
- package/components/toolbar-group/toolbar-group.component.d.ts +1 -1
- package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
- package/custom-types.d.ts +1 -0
- package/editor.component.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 +205 -0
- package/{esm2020 → esm2022}/components/table-select/table-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/template/template.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/text/text.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar/toolbar.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar-dropdown/toolbar-dropdown.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar-group/toolbar-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar-item/toolbar-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/core/toolbar-item/base-toolbar-item.mjs +7 -7
- 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/image.mjs +3 -0
- package/{esm2020 → esm2022}/interfaces/view-base.mjs +4 -4
- package/{esm2020 → esm2022}/pipes.mjs +10 -10
- package/{esm2020 → esm2022}/plugins/autoformat/transforms/auto-format-block.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/blockquote/blockquote.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/code/code.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/color/toolbar-item.component.mjs +4 -4
- package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +59 -0
- package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +136 -0
- package/{esm2020 → esm2022}/plugins/hr/hr.component.mjs +6 -6
- package/esm2022/plugins/image/image.component.mjs +460 -0
- package/esm2022/plugins/image/image.editor.mjs +96 -0
- package/{esm2020 → esm2022}/plugins/inline-code/inline-code.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/link/edit/link-edit.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/link/hover/link-hover.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/link/link.component.mjs +9 -9
- package/{esm2020 → esm2022}/plugins/list/components/bulleted-list.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/list/components/list-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/list/components/numbered-list.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/mention/suggestion.component.mjs +4 -4
- package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +126 -0
- package/{esm2020 → esm2022}/plugins/table/components/insert-mark/insert-mark.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/components/row/row.component.mjs +6 -6
- package/esm2022/plugins/table/components/table.component.mjs +834 -0
- 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/{esm2020 → esm2022}/plugins/table/components/toolbar/table-toolbar.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/table.pipe.mjs +7 -7
- package/{esm2020 → esm2022}/plugins/table/table.service.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/table.store.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/toolbar-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/todo-item/todo-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/vertical-align/toolbar-item.component.mjs +4 -4
- 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}/transforms/on-keydown-reset-block-type.mjs +1 -1
- package/{fesm2020 → fesm2022}/worktile-theia.mjs +449 -406
- package/fesm2022/worktile-theia.mjs.map +1 -0
- package/interfaces/editor.d.ts +5 -3
- package/interfaces/image.d.ts +5 -4
- package/package.json +6 -15
- package/plugins/image/image.component.d.ts +5 -3
- package/plugins/image/image.editor.d.ts +7 -0
- package/plugins/link/edit/link-edit.component.d.ts +1 -1
- package/plugins/link/hover/link-hover.component.d.ts +1 -1
- package/plugins/mention/suggestion.component.d.ts +1 -1
- package/plugins/quick-insert/components/quick-insert.component.d.ts +2 -3
- package/plugins/table/components/insert-mark/insert-mark.component.d.ts +1 -1
- package/plugins/table/components/table.component.d.ts +7 -7
- package/plugins/table/components/toolbar/table-options.component.d.ts +1 -1
- package/plugins/table/components/toolbar/table-toolbar.component.d.ts +1 -1
- package/queries/is-range-across-blocks.d.ts +1 -1
- package/esm2020/components/listbox/listbox.mjs +0 -375
- package/esm2020/components/plugin-menu/plugin-menu.component.mjs +0 -204
- package/esm2020/custom-types.mjs +0 -2
- package/esm2020/editor.module.mjs +0 -254
- package/esm2020/interfaces/image.mjs +0 -3
- package/esm2020/plugins/deserialize/deserialize-html.plugin.mjs +0 -53
- package/esm2020/plugins/deserialize/deserialize-md.plugin.mjs +0 -130
- package/esm2020/plugins/image/image.component.mjs +0 -440
- package/esm2020/plugins/image/image.editor.mjs +0 -81
- package/esm2020/plugins/quick-insert/components/quick-insert.component.mjs +0 -130
- package/esm2020/plugins/table/components/table.component.mjs +0 -834
- package/fesm2015/worktile-theia.mjs +0 -16715
- 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/auto-format-rules.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/code.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/color-select.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/default.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/plugin-menu.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/combine-plugins.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/plugin-menu.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/auto-format.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/editor.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/element.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/plugin-menu.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/with-override.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/reset-block-type-plugin-options.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/toolbar.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/align/align.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/align/align.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/autoformat/autoformat.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/autoformat/transforms/auto-format-inline.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/blockquote/blockquote.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/blockquote/blockquote.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/code/code.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/code/code.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/color/color.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/color/color.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/block-card.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/common.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/get-fragment.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/history.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/insert-data-by-invalid-type.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/move-selection.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/remove-empty.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/remove-void.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/reset-type.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/transforms.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/font-size/font-size.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/heading/heading.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/heading/heading.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/hr/hr.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/hr/hr.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/image/image.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/indent/indent.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/indent/indent.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/indent/on-keydown-indent.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/inline-code/inline-code.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/inline-code/inline-code.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/list.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/list.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/normalizers/get-list-normalizer.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/normalizers/normalize-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/normalizers/normalize-no.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/on-key-down-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-entry.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/queries/get-start-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/has-list-in-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-in-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-list-nested.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-node-type-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-single-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/insert-list-data.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/insert-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-down.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-up.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/unwrap-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mark/mark.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mark/mark.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.type.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/node-id/node-id.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/normalizers/insert-paragraph-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/normalizers/remove-empty-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/normalizers/trailing-node.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/paint-format/paint-format.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/quick-insert/quick-insert.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/quick-insert/quick-insert.plugin.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/table.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/table.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/table.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/clear-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/clear-table-node.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/insert-column.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/insert-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/insert-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/remove-column.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/remove-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/remove-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/add-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/calc-anchor-position.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/cell-position.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-position.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/get-min-max-cell-index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/get-select-cell-node.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/handle-cell.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-range-in-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-selection-in-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-virtual-key.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/merge-cell.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-menu-cell-invisibility.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/set-node-options.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/split-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/table-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/table-position.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/todo-item/todo-item.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/todo-item/todo-item.plugin.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/anchor-block-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/anchor-block.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/anchor-inline-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-descendant.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-node.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-above-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-above.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-anchor-block-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-block-above.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-block-card-above.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-block-card-cursor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-container-blocks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-directly-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-insert-elements-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-last-child-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-last-node.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-next-sibling-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-node.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-nodes-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-plain-text.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-plugin-by-toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-point-before.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-point-from-location.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-previous-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-rang-from-block-start.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-range-before.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-selection-marks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-selection-nodes-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-text.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-toolbar-disabled.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-across-blocks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-ancestor-empty.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-ancestor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-above-empty.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-active.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-card-cursor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-text-empty-after-selection.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-collapsed.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-contain-nested-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-container-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-descendant.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-content-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-content.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-paragraph-by-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-first-child.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-global-collapsed.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-include-types.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-node-type-in.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-node-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-point-at-root.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-range-across-blocks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-range-at-root.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-start.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/some-node.mjs +0 -0
- /package/{esm2020 → esm2022}/shortcuts/index.mjs +0 -0
- /package/{esm2020 → esm2022}/shortcuts/mark.mjs +0 -0
- /package/{esm2020 → esm2022}/test/index.mjs +0 -0
- /package/{esm2020 → esm2022}/test/utils/with-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/apply-deep-to-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/clear-marks.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/close-conversion-hint.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/delete-element.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/handle-continual-delete-backward.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/handle-continual-insert-break.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/insert-elements.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/insert-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/merge-deep-to-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/move-children.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/set-end-selection.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/set-marks.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/set-node.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/un-hang-range.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/un-wrap.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/unwrap-nodes-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/auto-focus.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/copy-node.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/create-empty-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/data-transform.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dom.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/editor-uuid.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/fragment.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/get-editable-element-height.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/get-toolbar-class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/id-creator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/insert-data-by-invalid-type.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/is-clean-empty-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/is-inline.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/lodash.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/match.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/merge-element-options.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/refocus.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
- /package/{esm2020 → esm2022}/worktile-theia.mjs +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Element, Transforms } from 'slate';
|
|
2
|
-
import { TheiaConverter } from '@atinc/selene';
|
|
3
|
-
import { CLIPBOARD_FORMAT_KEY, ElementKinds } from '../../constants';
|
|
4
|
-
import { filterTextFormat, recursionNodes } from '../../utils/fragment';
|
|
5
|
-
import { createPluginFactory } from '../../core';
|
|
6
|
-
import { PluginKeys } from '../../interfaces';
|
|
7
|
-
import { ImageEditor } from '../image/image.editor';
|
|
8
|
-
import { isLogicEmptyParagraphElement } from '../../queries/is-empty-paragraph';
|
|
9
|
-
import { insertDataByInvalidType } from '../../utils';
|
|
10
|
-
export const withDeserializeHTML = (editor) => {
|
|
11
|
-
const { insertData } = editor;
|
|
12
|
-
editor.insertData = (data) => {
|
|
13
|
-
const html = data.getData(`text/html`);
|
|
14
|
-
const slateFragment = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);
|
|
15
|
-
if (html && !slateFragment) {
|
|
16
|
-
const htmlDom = new DOMParser().parseFromString(html, 'text/html');
|
|
17
|
-
const fragment = TheiaConverter.convertToTheia(Array.from(htmlDom.body.children));
|
|
18
|
-
// 无法识别HTML内容时后退一下:识别纯文本
|
|
19
|
-
if (fragment.every(block => block.type === ElementKinds.paragraph && isLogicEmptyParagraphElement(editor, block))) {
|
|
20
|
-
insertData(data);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
// 识出纯图片并且粘贴板中存在文件则不进行处理, hook 直接右键复制图片的场景,流转到上传图片流程
|
|
24
|
-
// 后续需要做识别html图片后自动上传处理
|
|
25
|
-
if (fragment.length === 1 && fragment[0].type === ElementKinds.image && data.files.length > 0) {
|
|
26
|
-
insertData(data);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
// 过滤 text 节点的 color/background-color 属性
|
|
30
|
-
fragment.forEach(node => filterTextFormat(node));
|
|
31
|
-
// base 64 图片处理
|
|
32
|
-
recursionNodes(fragment, (node) => {
|
|
33
|
-
const isImage = Element.isElement(node) && node.type === ElementKinds.image;
|
|
34
|
-
if (isImage) {
|
|
35
|
-
ImageEditor.handleBase64ImageElement(editor, node);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
const isContinue = insertDataByInvalidType(editor, fragment);
|
|
39
|
-
if (!isContinue) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
Transforms.insertFragment(editor, fragment);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
insertData(data);
|
|
46
|
-
};
|
|
47
|
-
return editor;
|
|
48
|
-
};
|
|
49
|
-
export const createDeserializeHTMLPlugin = createPluginFactory({
|
|
50
|
-
key: PluginKeys.deserializeHtml,
|
|
51
|
-
withOverrides: withDeserializeHTML
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUtaHRtbC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9kZXNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS1odG1sLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ2xFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFOUIsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQWtCLEVBQUUsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFFMUUsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFjLENBQUM7WUFDL0Ysd0JBQXdCO1lBQ3hCLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFNBQVMsSUFBSSw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDL0csVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixPQUFPO2FBQ1Y7WUFDRCxvREFBb0Q7WUFDcEQsdUJBQXVCO1lBQ3ZCLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0YsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixPQUFPO2FBQ1Y7WUFFRCx3Q0FBd0M7WUFDeEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFakQsZUFBZTtZQUNmLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFVLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUM7Z0JBQzVFLElBQUksT0FBTyxFQUFFO29CQUNULFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3REO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDYixPQUFPO2FBQ1Y7WUFDRCxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1QyxPQUFPO1NBQ1Y7UUFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsbUJBQW1CLENBQUM7SUFDM0QsR0FBRyxFQUFFLFVBQVUsQ0FBQyxlQUFlO0lBQy9CLGFBQWEsRUFBRSxtQkFBbUI7Q0FDckMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUcmFuc2Zvcm1zLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGhlaWFDb252ZXJ0ZXIgfSBmcm9tICdAYXRpbmMvc2VsZW5lJztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZmlsdGVyVGV4dEZvcm1hdCwgcmVjdXJzaW9uTm9kZXMgfSBmcm9tICcuLi8uLi91dGlscy9mcmFnbWVudCc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvciB9IGZyb20gJy4uL2ltYWdlL2ltYWdlLmVkaXRvcic7XG5pbXBvcnQgeyBpc0xvZ2ljRW1wdHlQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi4vLi4vcXVlcmllcy9pcy1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgaW5zZXJ0RGF0YUJ5SW52YWxpZFR5cGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoRGVzZXJpYWxpemVIVE1MID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0RGF0YSB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmluc2VydERhdGEgPSAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBkYXRhLmdldERhdGEoYHRleHQvaHRtbGApO1xuICAgICAgICBjb25zdCBzbGF0ZUZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuXG4gICAgICAgIGlmIChodG1sICYmICFzbGF0ZUZyYWdtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBodG1sRG9tID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhodG1sLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IFRoZWlhQ29udmVydGVyLmNvbnZlcnRUb1RoZWlhKEFycmF5LmZyb20oaHRtbERvbS5ib2R5LmNoaWxkcmVuKSkgYXMgRWxlbWVudFtdO1xuICAgICAgICAgICAgLy8g5peg5rOV6K+G5YirSFRNTOWGheWuueaXtuWQjumAgOS4gOS4i++8muivhuWIq+e6r+aWh+acrFxuICAgICAgICAgICAgaWYgKGZyYWdtZW50LmV2ZXJ5KGJsb2NrID0+IGJsb2NrLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGggJiYgaXNMb2dpY0VtcHR5UGFyYWdyYXBoRWxlbWVudChlZGl0b3IsIGJsb2NrKSkpIHtcbiAgICAgICAgICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIOivhuWHuue6r+WbvueJh+W5tuS4lOeymOi0tOadv+S4reWtmOWcqOaWh+S7tuWImeS4jei/m+ihjOWkhOeQhiwgaG9vayDnm7TmjqXlj7PplK7lpI3liLblm77niYfnmoTlnLrmma/vvIzmtYHovazliLDkuIrkvKDlm77niYfmtYHnqItcbiAgICAgICAgICAgIC8vIOWQjue7remcgOimgeWBmuivhuWIq2h0bWzlm77niYflkI7oh6rliqjkuIrkvKDlpITnkIZcbiAgICAgICAgICAgIGlmIChmcmFnbWVudC5sZW5ndGggPT09IDEgJiYgZnJhZ21lbnRbMF0udHlwZSA9PT0gRWxlbWVudEtpbmRzLmltYWdlICYmIGRhdGEuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGluc2VydERhdGEoZGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDov4fmu6QgdGV4dCDoioLngrnnmoQgY29sb3IvYmFja2dyb3VuZC1jb2xvciDlsZ7mgKdcbiAgICAgICAgICAgIGZyYWdtZW50LmZvckVhY2gobm9kZSA9PiBmaWx0ZXJUZXh0Rm9ybWF0KG5vZGUpKTtcblxuICAgICAgICAgICAgLy8gYmFzZSA2NCDlm77niYflpITnkIZcbiAgICAgICAgICAgIHJlY3Vyc2lvbk5vZGVzKGZyYWdtZW50LCAobm9kZTogTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2UgPSBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZTtcbiAgICAgICAgICAgICAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5oYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29udGludWUgPSBpbnNlcnREYXRhQnlJbnZhbGlkVHlwZShlZGl0b3IsIGZyYWdtZW50KTtcbiAgICAgICAgICAgIGlmICghaXNDb250aW51ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0RnJhZ21lbnQoZWRpdG9yLCBmcmFnbWVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgIH07XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXNlcmlhbGl6ZUhUTUxQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICBrZXk6IFBsdWdpbktleXMuZGVzZXJpYWxpemVIdG1sLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhEZXNlcmlhbGl6ZUhUTUxcbn0pO1xuIl19
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
3
|
-
import { ThyPopover } from 'ngx-tethys/popover';
|
|
4
|
-
import { Element, Text, Transforms } from 'slate';
|
|
5
|
-
import { AngularEditor } from 'slate-angular';
|
|
6
|
-
import marked from 'marked';
|
|
7
|
-
import { TheiaConverter } from '@atinc/selene';
|
|
8
|
-
import { CLIPBOARD_FORMAT_KEY, ElementKinds } from '../../constants';
|
|
9
|
-
import * as TheTransforms from '../../transforms';
|
|
10
|
-
import { TheConversionHintComponent } from '../../components/conversion-hint/conversion-hint.component';
|
|
11
|
-
import { THE_EDITOR_CONVERSION_HINT_REF, getToolbarClass, recursionNodes } from '../../utils';
|
|
12
|
-
import { createPluginFactory } from '../../core';
|
|
13
|
-
import { PluginKeys } from '../../interfaces';
|
|
14
|
-
import { ImageEditor } from '../image/image.editor';
|
|
15
|
-
export const withDeserializeMd = (editor) => {
|
|
16
|
-
const { insertData, onKeydown } = editor;
|
|
17
|
-
editor.onKeydown = (event) => {
|
|
18
|
-
TheTransforms.closeConversionHint(editor);
|
|
19
|
-
onKeydown(event);
|
|
20
|
-
};
|
|
21
|
-
editor.insertData = (data) => {
|
|
22
|
-
const popover = editor.injector.get(ThyPopover);
|
|
23
|
-
const viewContainerRef = editor.injector.get(ViewContainerRef);
|
|
24
|
-
const cdr = editor.injector.get(ChangeDetectorRef);
|
|
25
|
-
const plainFragment = data.getData('text/plain');
|
|
26
|
-
const slateFragment = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);
|
|
27
|
-
const oldRange = editor.selection;
|
|
28
|
-
TheTransforms.closeConversionHint(editor);
|
|
29
|
-
if (plainFragment && isMarkdownStynx(plainFragment) && !slateFragment) {
|
|
30
|
-
setTimeout(() => {
|
|
31
|
-
const overlay = editor.injector.get(Overlay);
|
|
32
|
-
const bodyElement = document.body;
|
|
33
|
-
const toolbarClass = getToolbarClass(editor);
|
|
34
|
-
const toolbarElement = document.querySelector(`.${toolbarClass}`);
|
|
35
|
-
const origin = toolbarElement ? toolbarElement : bodyElement;
|
|
36
|
-
const placement = toolbarElement ? 'top' : 'topRight';
|
|
37
|
-
const hintPopverRef = popover.open(TheConversionHintComponent, {
|
|
38
|
-
initialState: {
|
|
39
|
-
editor,
|
|
40
|
-
conversion: () => {
|
|
41
|
-
try {
|
|
42
|
-
const html = marked(plainFragment.replace(/\n```/g, '\n\n```'), { gfm: true });
|
|
43
|
-
const htmlDom = new DOMParser().parseFromString(html, 'text/html');
|
|
44
|
-
const fragment = TheiaConverter.convertToTheia(Array.from(htmlDom.body.children));
|
|
45
|
-
if (!isUnformatted(fragment)) {
|
|
46
|
-
TheTransforms.closeConversionHint(editor);
|
|
47
|
-
editor.undo();
|
|
48
|
-
setTimeout(() => {
|
|
49
|
-
Transforms.select(editor, oldRange);
|
|
50
|
-
// base 64 图片处理
|
|
51
|
-
recursionNodes(fragment, (node) => {
|
|
52
|
-
const isImage = Element.isElement(node) && node.type === ElementKinds.image;
|
|
53
|
-
if (isImage) {
|
|
54
|
-
ImageEditor.handleBase64ImageElement(editor, node);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
Transforms.insertFragment(editor, fragment);
|
|
58
|
-
AngularEditor.focus(editor);
|
|
59
|
-
});
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
TheTransforms.closeConversionHint(editor);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
TheTransforms.closeConversionHint(editor);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
origin,
|
|
72
|
-
viewContainerRef,
|
|
73
|
-
placement,
|
|
74
|
-
offset: -100,
|
|
75
|
-
minWidth: 0,
|
|
76
|
-
hasBackdrop: false,
|
|
77
|
-
backdropClosable: false,
|
|
78
|
-
closeOnNavigation: false,
|
|
79
|
-
scrollStrategy: overlay.scrollStrategies.reposition()
|
|
80
|
-
});
|
|
81
|
-
THE_EDITOR_CONVERSION_HINT_REF.set(editor, hintPopverRef);
|
|
82
|
-
cdr.markForCheck();
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
insertData(data);
|
|
86
|
-
};
|
|
87
|
-
return editor;
|
|
88
|
-
};
|
|
89
|
-
export const createDeserializeMdPlugin = createPluginFactory({
|
|
90
|
-
key: PluginKeys.deserializeMd,
|
|
91
|
-
withOverrides: withDeserializeMd
|
|
92
|
-
});
|
|
93
|
-
const isUnformatted = (elements) => {
|
|
94
|
-
return elements.every(element => element.type === ElementKinds.default &&
|
|
95
|
-
element.children.every((node) => {
|
|
96
|
-
return Text.isText(node) && Object.keys(node).length === 1;
|
|
97
|
-
}));
|
|
98
|
-
};
|
|
99
|
-
const isMarkdownStynx = content => {
|
|
100
|
-
// https://github.com/Chalarangelo/parse-md-js/blob/master/parsemd.js
|
|
101
|
-
const codeBlockRegex = /((\n\t)(.*))+/g;
|
|
102
|
-
const inlineCodeRegex = /(`)(.*?)\1/g;
|
|
103
|
-
const imageRegex = /!\[([^\[]+)\]\(([^\)]+)\)/g;
|
|
104
|
-
const linkRegex = /\[([^\[]+)\]\(([^\)]+)\)/g;
|
|
105
|
-
const headingRegex = /(#+\s*)(.*)/g;
|
|
106
|
-
const boldItalicsRegex = /(\*{1,2})(\S+)\1/g;
|
|
107
|
-
const strikethroughRegex = /(\~\~)(.*?)\1/g;
|
|
108
|
-
const blockquoteRegex = /\n(>|\>)(.*)/g;
|
|
109
|
-
const horizontalRuleRegex = /\n((\-{3,})|(={3,}))/g;
|
|
110
|
-
const unorderedListRegex = /(\n\s*(\-|\+)\s.*)+/g;
|
|
111
|
-
const orderedListRegex = /(\n\s*([0-9]+\.)\s.*)+/g;
|
|
112
|
-
const paragraphRegex = /\n+(?!<pre>)(?!<h)(?!<ul>)(?!<blockquote)(?!<hr)(?!\t)([^\n]+)\n/g;
|
|
113
|
-
// from marked
|
|
114
|
-
const table = /^\s*([^\s].*\|.*)\s{0,3}(?:\|\s*)?(:?-+:?\s*(?:\|\s*:?-+:?\s*)*)\|?(?:\s*((?:(?!|hr|heading|blockquote|code|fences|list|html).*(?:|$))*)*|$)/g;
|
|
115
|
-
const regexps = [
|
|
116
|
-
inlineCodeRegex,
|
|
117
|
-
imageRegex,
|
|
118
|
-
linkRegex,
|
|
119
|
-
headingRegex,
|
|
120
|
-
boldItalicsRegex,
|
|
121
|
-
strikethroughRegex,
|
|
122
|
-
blockquoteRegex,
|
|
123
|
-
horizontalRuleRegex,
|
|
124
|
-
unorderedListRegex,
|
|
125
|
-
orderedListRegex,
|
|
126
|
-
table
|
|
127
|
-
];
|
|
128
|
-
return regexps.some(regexp => regexp.test(content));
|
|
129
|
-
};
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUtbWQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvZGVzZXJpYWxpemUvZGVzZXJpYWxpemUtbWQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBVSxPQUFPLEVBQVEsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ2hFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FB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UUFDVixTQUFTO1FBQ1QsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLEtBQUs7S0FDUixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIE5vZGUsIFRleHQsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgbWFya2VkIGZyb20gJ21hcmtlZCc7XG5pbXBvcnQgeyBUaGVpYUNvbnZlcnRlciB9IGZyb20gJ0BhdGluYy9zZWxlbmUnO1xuaW1wb3J0IHsgQ0xJUEJPQVJEX0ZPUk1BVF9LRVksIEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgVGhlQ29udmVyc2lvbkhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRIRV9FRElUT1JfQ09OVkVSU0lPTl9ISU5UX1JFRiwgZ2V0VG9vbGJhckNsYXNzLCByZWN1cnNpb25Ob2RlcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlRWRpdG9yIH0gZnJvbSAnLi4vaW1hZ2UvaW1hZ2UuZWRpdG9yJztcblxuZXhwb3J0IGNvbnN0IHdpdGhEZXNlcmlhbGl6ZU1kID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0RGF0YSwgb25LZXlkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgY29uc3QgcG9wb3ZlciA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGh5UG9wb3Zlcik7XG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBjZHIgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgICAgICBjb25zdCBwbGFpbkZyYWdtZW50ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIGNvbnN0IHNsYXRlRnJhZ21lbnQgPSBkYXRhLmdldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCk7XG4gICAgICAgIGNvbnN0IG9sZFJhbmdlID0gZWRpdG9yLnNlbGVjdGlvbjtcbiAgICAgICAgVGhlVHJhbnNmb3Jtcy5jbG9zZUNvbnZlcnNpb25IaW50KGVkaXRvcik7XG5cbiAgICAgICAgaWYgKHBsYWluRnJhZ21lbnQgJiYgaXNNYXJrZG93blN0eW54KHBsYWluRnJhZ21lbnQpICYmICFzbGF0ZUZyYWdtZW50KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVybGF5ID0gZWRpdG9yLmluamVjdG9yLmdldChPdmVybGF5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckNsYXNzID0gZ2V0VG9vbGJhckNsYXNzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt0b29sYmFyQ2xhc3N9YCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdG9vbGJhckVsZW1lbnQgPyB0b29sYmFyRWxlbWVudCA6IGJvZHlFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IHRvb2xiYXJFbGVtZW50ID8gJ3RvcCcgOiAndG9wUmlnaHQnO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGludFBvcHZlclJlZiA9IHBvcG92ZXIub3BlbihUaGVDb252ZXJzaW9uSGludENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gbWFya2VkKHBsYWluRnJhZ21lbnQucmVwbGFjZSgvXFxuYGBgL2csICdcXG5cXG5gYGAnKSwgeyBnZm06IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxEb20gPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGh0bWwsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBUaGVpYUNvbnZlcnRlci5jb252ZXJ0VG9UaGVpYShBcnJheS5mcm9tKGh0bWxEb20uYm9keS5jaGlsZHJlbikpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNVbmZvcm1hdHRlZChmcmFnbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IudW5kbygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIG9sZFJhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIDY0IOWbvueJh+WkhOeQhlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Vyc2lvbk5vZGVzKGZyYWdtZW50LCAobm9kZTogTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5oYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0RnJhZ21lbnQoZWRpdG9yLCBmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmNsb3NlQ29udmVyc2lvbkhpbnQoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogLTEwMCxcbiAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYmFja2Ryb3BDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBUSEVfRURJVE9SX0NPTlZFUlNJT05fSElOVF9SRUYuc2V0KGVkaXRvciwgaGludFBvcHZlclJlZik7XG4gICAgICAgICAgICAgICAgY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgIH07XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXNlcmlhbGl6ZU1kUGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAga2V5OiBQbHVnaW5LZXlzLmRlc2VyaWFsaXplTWQsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aERlc2VyaWFsaXplTWRcbn0pO1xuXG5jb25zdCBpc1VuZm9ybWF0dGVkID0gKGVsZW1lbnRzOiBFbGVtZW50W10pID0+IHtcbiAgICByZXR1cm4gZWxlbWVudHMuZXZlcnkoXG4gICAgICAgIGVsZW1lbnQgPT5cbiAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmRlZmF1bHQgJiZcbiAgICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZXZlcnkoKG5vZGU6IE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGV4dC5pc1RleHQobm9kZSkgJiYgT2JqZWN0LmtleXMobm9kZSkubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgfSlcbiAgICApO1xufTtcblxuY29uc3QgaXNNYXJrZG93blN0eW54ID0gY29udGVudCA9PiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0NoYWxhcmFuZ2Vsby9wYXJzZS1tZC1qcy9ibG9iL21hc3Rlci9wYXJzZW1kLmpzXG4gICAgY29uc3QgY29kZUJsb2NrUmVnZXggPSAvKChcXG5cXHQpKC4qKSkrL2c7XG4gICAgY29uc3QgaW5saW5lQ29kZVJlZ2V4ID0gLyhgKSguKj8pXFwxL2c7XG4gICAgY29uc3QgaW1hZ2VSZWdleCA9IC8hXFxbKFteXFxbXSspXFxdXFwoKFteXFwpXSspXFwpL2c7XG4gICAgY29uc3QgbGlua1JlZ2V4ID0gL1xcWyhbXlxcW10rKVxcXVxcKChbXlxcKV0rKVxcKS9nO1xuICAgIGNvbnN0IGhlYWRpbmdSZWdleCA9IC8oIytcXHMqKSguKikvZztcbiAgICBjb25zdCBib2xkSXRhbGljc1JlZ2V4ID0gLyhcXCp7MSwyfSkoXFxTKylcXDEvZztcbiAgICBjb25zdCBzdHJpa2V0aHJvdWdoUmVnZXggPSAvKFxcflxcfikoLio/KVxcMS9nO1xuICAgIGNvbnN0IGJsb2NrcXVvdGVSZWdleCA9IC9cXG4oJmd0O3xcXD4pKC4qKS9nO1xuICAgIGNvbnN0IGhvcml6b250YWxSdWxlUmVnZXggPSAvXFxuKChcXC17Myx9KXwoPXszLH0pKS9nO1xuICAgIGNvbnN0IHVub3JkZXJlZExpc3RSZWdleCA9IC8oXFxuXFxzKihcXC18XFwrKVxccy4qKSsvZztcbiAgICBjb25zdCBvcmRlcmVkTGlzdFJlZ2V4ID0gLyhcXG5cXHMqKFswLTldK1xcLilcXHMuKikrL2c7XG4gICAgY29uc3QgcGFyYWdyYXBoUmVnZXggPSAvXFxuKyg/ITxwcmU+KSg/ITxoKSg/ITx1bD4pKD8hPGJsb2NrcXVvdGUpKD8hPGhyKSg/IVxcdCkoW15cXG5dKylcXG4vZztcbiAgICAvLyBmcm9tIG1hcmtlZFxuICAgIGNvbnN0IHRhYmxlID1cbiAgICAgICAgL15cXHMqKFteXFxzXS4qXFx8LiopXFxzezAsM30oPzpcXHxcXHMqKT8oOj8tKzo/XFxzKig/OlxcfFxccyo6Py0rOj9cXHMqKSopXFx8Pyg/OlxccyooKD86KD8hfGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzp8JCkpKikqfCQpL2c7XG4gICAgY29uc3QgcmVnZXhwcyA9IFtcbiAgICAgICAgaW5saW5lQ29kZVJlZ2V4LFxuICAgICAgICBpbWFnZVJlZ2V4LFxuICAgICAgICBsaW5rUmVnZXgsXG4gICAgICAgIGhlYWRpbmdSZWdleCxcbiAgICAgICAgYm9sZEl0YWxpY3NSZWdleCxcbiAgICAgICAgc3RyaWtldGhyb3VnaFJlZ2V4LFxuICAgICAgICBibG9ja3F1b3RlUmVnZXgsXG4gICAgICAgIGhvcml6b250YWxSdWxlUmVnZXgsXG4gICAgICAgIHVub3JkZXJlZExpc3RSZWdleCxcbiAgICAgICAgb3JkZXJlZExpc3RSZWdleCxcbiAgICAgICAgdGFibGVcbiAgICBdO1xuICAgIHJldHVybiByZWdleHBzLnNvbWUocmVnZXhwID0+IHJlZ2V4cC50ZXN0KGNvbnRlbnQpKTtcbn07XG4iXX0=
|