@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,189 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { splitCell } from '../../utils/split-cell';
|
|
3
|
+
import { setCellMenuVisibility } from '../../utils/set-menu-cell-invisibility';
|
|
4
|
+
import { TheTableOptionsComponent } from './table-options.component';
|
|
5
|
+
import { PluginKeys, TheEditor } from '../../../../interfaces';
|
|
6
|
+
import { getPluginOptions } from '../../../../core';
|
|
7
|
+
import { isRectangularInTableCells } from '../../utils/is-selection-in-table';
|
|
8
|
+
import * as TheTransforms from '../../../../transforms';
|
|
9
|
+
import * as TheQueries from '../../../../queries';
|
|
10
|
+
import { copyNode } from '../../../../utils';
|
|
11
|
+
import { createTablePosition } from '../../utils/create-table-position';
|
|
12
|
+
import { mergeCell } from '../../utils/merge-cell';
|
|
13
|
+
import { getSelectedCell } from '../../utils/table-entry';
|
|
14
|
+
import { setSelectedCellsBackgroundColor } from '../../utils/set-cells-background-color';
|
|
15
|
+
import { removeColumnOrRows } from '../../utils/remove-row-column';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
import * as i1 from "ngx-tethys/popover";
|
|
18
|
+
import * as i2 from "ngx-tethys/notify";
|
|
19
|
+
import * as i3 from "@angular/common";
|
|
20
|
+
import * as i4 from "@angular/forms";
|
|
21
|
+
import * as i5 from "ngx-tethys/icon";
|
|
22
|
+
import * as i6 from "ngx-tethys/tooltip";
|
|
23
|
+
import * as i7 from "ngx-tethys/action";
|
|
24
|
+
import * as i8 from "ngx-tethys/divider";
|
|
25
|
+
import * as i9 from "ngx-tethys/color-picker";
|
|
26
|
+
export class TheTableToolbarComponent {
|
|
27
|
+
get editor() {
|
|
28
|
+
return this.tableStore && this.tableStore.editor;
|
|
29
|
+
}
|
|
30
|
+
get hasDivider() {
|
|
31
|
+
return this.cellMenuList.filter(item => item.visibility).length > 1;
|
|
32
|
+
}
|
|
33
|
+
get tableOptions() {
|
|
34
|
+
return getPluginOptions(this.editor, PluginKeys.table);
|
|
35
|
+
}
|
|
36
|
+
constructor(thyPopover, popoverRef, thyNotifyService) {
|
|
37
|
+
this.thyPopover = thyPopover;
|
|
38
|
+
this.popoverRef = popoverRef;
|
|
39
|
+
this.thyNotifyService = thyNotifyService;
|
|
40
|
+
this.cellMenuList = [
|
|
41
|
+
{
|
|
42
|
+
key: 'merge-cells',
|
|
43
|
+
name: '合并单元格',
|
|
44
|
+
visibility: false,
|
|
45
|
+
icon: 'table-merge-cells',
|
|
46
|
+
actionHandle: () => {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
mergeCell(this.editor, this.tableStore.getSelectedCellPositions());
|
|
50
|
+
this.popoverRef.close();
|
|
51
|
+
this.tableStore.clearSelectedCells();
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: 'split-cells',
|
|
56
|
+
name: '拆分单元格',
|
|
57
|
+
visibility: false,
|
|
58
|
+
icon: 'table-unmerge-cells',
|
|
59
|
+
actionHandle: () => {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
event.stopPropagation();
|
|
62
|
+
splitCell(this.editor);
|
|
63
|
+
this.popoverRef.close();
|
|
64
|
+
this.tableStore.clearSelectedCells();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
ngOnInit() {
|
|
70
|
+
this.isColumnEqual = this.tableElement?.columns?.every(col => this.tableElement.columns[0].width === col.width) ?? true;
|
|
71
|
+
const selectedCellPositions = this.tableStore.getSelectedCellPositions();
|
|
72
|
+
const tableInfo = { selectedCellPositions, isSelectedTable: this.tableStore.isSelectedTable };
|
|
73
|
+
this.isRectangle = isRectangularInTableCells(this.editor, selectedCellPositions);
|
|
74
|
+
this.setDeleteIcon();
|
|
75
|
+
setCellMenuVisibility(this.editor, this.cellMenuList, tableInfo);
|
|
76
|
+
const cell = getSelectedCell(this.editor);
|
|
77
|
+
this.selectedColor = cell ? cell.backgroundColor : '';
|
|
78
|
+
const path = TheEditor.findPath(this.editor, this.tableElement);
|
|
79
|
+
this.tableChangeSubscriber = this.tableStore.tableChange().subscribe(() => {
|
|
80
|
+
const columns = TheQueries.getNode(this.editor, path).columns;
|
|
81
|
+
this.isColumnEqual = columns?.every(col => columns[0].width === col.width) ?? true;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
ngOnDestroy() {
|
|
85
|
+
this.tableChangeSubscriber?.unsubscribe();
|
|
86
|
+
}
|
|
87
|
+
setDeleteIcon() {
|
|
88
|
+
const { selectedRowsIndex, selectedColumnsIndex } = this.tableStore;
|
|
89
|
+
const selectedCellPositions = this.tableStore.getSelectedCellPositions();
|
|
90
|
+
const pos = createTablePosition(this.editor);
|
|
91
|
+
if (this.tableStore.selectedRowsIndex.length > 0) {
|
|
92
|
+
this.deleteIcon = DeleteIcon['table-delete-rows'];
|
|
93
|
+
this.iconName = '删除整行';
|
|
94
|
+
}
|
|
95
|
+
if (this.tableStore.selectedColumnsIndex.length > 0) {
|
|
96
|
+
this.deleteIcon = DeleteIcon['table-delete-columns'];
|
|
97
|
+
this.iconName = '删除整列';
|
|
98
|
+
}
|
|
99
|
+
if (this.tableStore.isSelectedTable) {
|
|
100
|
+
this.deleteIcon = DeleteIcon.trash;
|
|
101
|
+
this.iconName = '删除表格';
|
|
102
|
+
}
|
|
103
|
+
// 满足已选中整行或者整列
|
|
104
|
+
const isSelectedWholeRowOrColumnCell = selectedRowsIndex.length * pos.getWidth() === selectedCellPositions.length ||
|
|
105
|
+
selectedColumnsIndex.length * pos.getHeight() === selectedCellPositions.length;
|
|
106
|
+
if (!isSelectedWholeRowOrColumnCell) {
|
|
107
|
+
this.deleteIcon = null;
|
|
108
|
+
this.iconName = null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
onDelete(event) {
|
|
112
|
+
event.preventDefault();
|
|
113
|
+
removeColumnOrRows(this.editor, this.tableStore);
|
|
114
|
+
this.tableStore.clearDangerousCells();
|
|
115
|
+
this.tableStore.clearSelectedCells();
|
|
116
|
+
this.popoverRef.close();
|
|
117
|
+
}
|
|
118
|
+
onEnterDelete(event) {
|
|
119
|
+
this.tableStore.setDangerousCells();
|
|
120
|
+
}
|
|
121
|
+
onLeaveDelete(event) {
|
|
122
|
+
this.tableStore.clearDangerousCells();
|
|
123
|
+
}
|
|
124
|
+
openColorPanel(e) {
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
e.stopPropagation();
|
|
127
|
+
}
|
|
128
|
+
changeColor(newColor) {
|
|
129
|
+
setSelectedCellsBackgroundColor(this.editor, newColor, this.tableStore);
|
|
130
|
+
this.selectedColor = newColor;
|
|
131
|
+
}
|
|
132
|
+
setFullscreen(event) {
|
|
133
|
+
this.tableOptions.setFullscreen(this.editor, event, this.tableElement);
|
|
134
|
+
}
|
|
135
|
+
mousedown(event) {
|
|
136
|
+
event.preventDefault();
|
|
137
|
+
event.stopPropagation();
|
|
138
|
+
}
|
|
139
|
+
onCopy(e) {
|
|
140
|
+
e?.preventDefault();
|
|
141
|
+
copyNode(this.editor, this.tableElement, this.thyNotifyService);
|
|
142
|
+
}
|
|
143
|
+
setEquallyColumnHandle(event) {
|
|
144
|
+
event.preventDefault();
|
|
145
|
+
event.stopPropagation();
|
|
146
|
+
const columns = this.tableElement.columns;
|
|
147
|
+
const sumWidth = columns.reduce((previousValue, currentValue) => {
|
|
148
|
+
return previousValue + currentValue.width;
|
|
149
|
+
}, 0);
|
|
150
|
+
const equalColumns = columns.map(() => {
|
|
151
|
+
return { width: sumWidth / columns.length };
|
|
152
|
+
});
|
|
153
|
+
TheTransforms.setNode(this.editor, { columns: equalColumns }, this.tableElement);
|
|
154
|
+
}
|
|
155
|
+
openTableOptionMenu(event) {
|
|
156
|
+
event.preventDefault();
|
|
157
|
+
event.stopPropagation();
|
|
158
|
+
this.thyPopover.open(TheTableOptionsComponent, {
|
|
159
|
+
origin: event.currentTarget,
|
|
160
|
+
initialState: {
|
|
161
|
+
editor: this.editor
|
|
162
|
+
},
|
|
163
|
+
minWidth: 0,
|
|
164
|
+
insideClosable: true,
|
|
165
|
+
outsideClosable: true,
|
|
166
|
+
hasBackdrop: false,
|
|
167
|
+
placement: 'bottomLeft',
|
|
168
|
+
originActiveClass: 'active',
|
|
169
|
+
panelClass: 'table-options-pannel'
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheTableToolbarComponent, deps: [{ token: i1.ThyPopover }, { token: i1.ThyPopoverRef }, { token: i2.ThyNotifyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
173
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: TheTableToolbarComponent, selector: "the-table-toolbar", inputs: { tableStore: "tableStore", tableElement: "tableElement" }, ngImport: i0, template: "<thy-actions thySize=\"xxs\">\n <ng-container *ngFor=\"let item of cellMenuList\">\n <a\n *ngIf=\"item.visibility\"\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n (mousedown)=\"item.actionHandle()\"\n ></a>\n </ng-container>\n <thy-divider *ngIf=\"hasDivider\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\"> </thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyTooltip=\"\u5355\u5143\u683C\u80CC\u666F\"\n thyColorPicker\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"openColorPanel($event)\"\n thyPlacement=\"bottomLeft\"\n [thyHasBackdrop]=\"false\"\n >\n <thy-icon thyIconName=\"background-tt\" thyIconType=\"twotone\" [thyTwotoneColor]=\"selectedColor\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && !isColumnEqual\"\n thyAction\n thyTooltip=\"\u5217\u7B49\u5BBD\"\n (mousedown)=\"setEquallyColumnHandle($event)\"\n >\n <thy-icon thyIconName=\"table-column-equal-width\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && tableOptions?.showFullscreen\"\n thyAction\n thyTooltip=\"\u5168\u5C4F\"\n (mousedown)=\"setFullscreen($event)\"\n >\n <thy-icon thyIconName=\"arrows-alt\"></thy-icon>\n </a>\n <a\n *ngIf=\"tableStore.isSelectedTable && !tableStore?.isFullscreen\"\n class=\"fullscreen-hidden\"\n href=\"javascript:;\"\n thyAction\n thyActionIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n (mousedown)=\"onCopy($event)\"\n ></a>\n <ng-container *ngIf=\"tableStore.isSelectedTable\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\"></thy-divider>\n <a href=\"javascript:;\" class=\"link-with-down\" thyAction (mousedown)=\"mousedown($event)\" (click)=\"openTableOptionMenu($event)\">\n <span>\u8868\u683C\u9009\u9879</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"tableStore?.isFullscreen ? deleteIcon && !tableStore.isSelectedTable : deleteIcon\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n [thyActionIcon]=\"deleteIcon\"\n [thyTooltip]=\"iconName\"\n (mousedown)=\"onDelete($event)\"\n (mouseenter)=\"onEnterDelete($event)\"\n (mouseleave)=\"onLeaveDelete($event)\"\n ></a>\n </ng-container>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i6.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i7.ThyActionsComponent, selector: "thy-actions", inputs: ["thySize"] }, { kind: "component", type: i8.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: i9.ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay"], outputs: ["thyPanelOpen", "thyPanelClose"] }] }); }
|
|
174
|
+
}
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheTableToolbarComponent, decorators: [{
|
|
176
|
+
type: Component,
|
|
177
|
+
args: [{ selector: 'the-table-toolbar', template: "<thy-actions thySize=\"xxs\">\n <ng-container *ngFor=\"let item of cellMenuList\">\n <a\n *ngIf=\"item.visibility\"\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n (mousedown)=\"item.actionHandle()\"\n ></a>\n </ng-container>\n <thy-divider *ngIf=\"hasDivider\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\"> </thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyTooltip=\"\u5355\u5143\u683C\u80CC\u666F\"\n thyColorPicker\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"openColorPanel($event)\"\n thyPlacement=\"bottomLeft\"\n [thyHasBackdrop]=\"false\"\n >\n <thy-icon thyIconName=\"background-tt\" thyIconType=\"twotone\" [thyTwotoneColor]=\"selectedColor\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && !isColumnEqual\"\n thyAction\n thyTooltip=\"\u5217\u7B49\u5BBD\"\n (mousedown)=\"setEquallyColumnHandle($event)\"\n >\n <thy-icon thyIconName=\"table-column-equal-width\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && tableOptions?.showFullscreen\"\n thyAction\n thyTooltip=\"\u5168\u5C4F\"\n (mousedown)=\"setFullscreen($event)\"\n >\n <thy-icon thyIconName=\"arrows-alt\"></thy-icon>\n </a>\n <a\n *ngIf=\"tableStore.isSelectedTable && !tableStore?.isFullscreen\"\n class=\"fullscreen-hidden\"\n href=\"javascript:;\"\n thyAction\n thyActionIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n (mousedown)=\"onCopy($event)\"\n ></a>\n <ng-container *ngIf=\"tableStore.isSelectedTable\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\"></thy-divider>\n <a href=\"javascript:;\" class=\"link-with-down\" thyAction (mousedown)=\"mousedown($event)\" (click)=\"openTableOptionMenu($event)\">\n <span>\u8868\u683C\u9009\u9879</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"tableStore?.isFullscreen ? deleteIcon && !tableStore.isSelectedTable : deleteIcon\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n [thyActionIcon]=\"deleteIcon\"\n [thyTooltip]=\"iconName\"\n (mousedown)=\"onDelete($event)\"\n (mouseenter)=\"onEnterDelete($event)\"\n (mouseleave)=\"onLeaveDelete($event)\"\n ></a>\n </ng-container>\n</thy-actions>\n" }]
|
|
178
|
+
}], ctorParameters: function () { return [{ type: i1.ThyPopover }, { type: i1.ThyPopoverRef }, { type: i2.ThyNotifyService }]; }, propDecorators: { tableStore: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], tableElement: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}] } });
|
|
183
|
+
export var DeleteIcon;
|
|
184
|
+
(function (DeleteIcon) {
|
|
185
|
+
DeleteIcon["table-delete-rows"] = "table-delete-rows";
|
|
186
|
+
DeleteIcon["table-delete-columns"] = "table-delete-columns";
|
|
187
|
+
DeleteIcon["trash"] = "trash";
|
|
188
|
+
})(DeleteIcon || (DeleteIcon = {}));
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3Rvb2xiYXIvdGFibGUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3Rvb2xiYXIvdGFibGUtdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RSxPQUFPLEtBQUssYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFHbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7O0FBTW5FLE1BQU0sT0FBTyx3QkFBd0I7SUFpQmpDLElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNyRCxDQUFDO0lBK0JELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN0QixVQUFtRCxFQUNuRCxnQkFBa0M7UUFGbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUF5QztRQUNuRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEM5QyxpQkFBWSxHQUFpQjtZQUN6QjtnQkFDSSxHQUFHLEVBQUUsYUFBYTtnQkFDbEIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLFlBQVksRUFBRSxHQUFHLEVBQUU7b0JBQ2YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO29CQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3pDLENBQUM7YUFDSjtZQUNEO2dCQUNJLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUUsS0FBSztnQkFDakIsSUFBSSxFQUFFLHFCQUFxQjtnQkFDM0IsWUFBWSxFQUFFLEdBQUcsRUFBRTtvQkFDZixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUN6QyxDQUFDO2FBQ0o7U0FDSixDQUFDO0lBY0MsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRSxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFdEQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RFLE1BQU0sT0FBTyxHQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQWtCLENBQUMsT0FBTyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxhQUFhO1FBQ1QsTUFBTSxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNwRSxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUN6RSxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztTQUMxQjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7U0FDMUI7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztTQUMxQjtRQUNELGNBQWM7UUFDZCxNQUFNLDhCQUE4QixHQUNoQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLHFCQUFxQixDQUFDLE1BQU07WUFDMUUsb0JBQW9CLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbkYsSUFBSSxDQUFDLDhCQUE4QixFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFpQjtRQUN0QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjLENBQUMsQ0FBYTtRQUN4QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0I7UUFDeEIsK0JBQStCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBaUI7UUFDdkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQVE7UUFDWCxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFFcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBaUI7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQzVELE9BQU8sYUFBYSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDOUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ04sTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBWTtRQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzNDLE1BQU0sRUFBRSxLQUFLLENBQUMsYUFBNEI7WUFDMUMsWUFBWSxFQUFFO2dCQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUN0QjtZQUNELFFBQVEsRUFBRSxDQUFDO1lBQ1gsY0FBYyxFQUFFLElBQUk7WUFDcEIsZUFBZSxFQUFFLElBQUk7WUFDckIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsU0FBUyxFQUFFLFlBQVk7WUFDdkIsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixVQUFVLEVBQUUsc0JBQXNCO1NBQ3JDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBeExRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDZIQzFCckMsdW1GQXlFQTs7MkZEL0NhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDSSxtQkFBbUI7NEpBZ0JwQixVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7O0FBNEtWLE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDbEIscURBQXlDLENBQUE7SUFDekMsMkRBQStDLENBQUE7SUFDL0MsNkJBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL3RhYmxlLnN0b3JlJztcbmltcG9ydCB7IHNwbGl0Q2VsbCB9IGZyb20gJy4uLy4uL3V0aWxzL3NwbGl0LWNlbGwnO1xuaW1wb3J0IHsgc2V0Q2VsbE1lbnVWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0LW1lbnUtY2VsbC1pbnZpc2liaWxpdHknO1xuaW1wb3J0IHsgTWVudUVudGl0eSB9IGZyb20gJy4uLy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IFRoZVRhYmxlT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtb3B0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBUYWJsZUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IGlzUmVjdGFuZ3VsYXJJblRhYmxlQ2VsbHMgfSBmcm9tICcuLi8uLi91dGlscy9pcy1zZWxlY3Rpb24taW4tdGFibGUnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi8uLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRoeU5vdGlmeVNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL25vdGlmeSc7XG5pbXBvcnQgeyBjb3B5Tm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9jcmVhdGUtdGFibGUtcG9zaXRpb24nO1xuaW1wb3J0IHsgbWVyZ2VDZWxsIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVyZ2UtY2VsbCc7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZENlbGwgfSBmcm9tICcuLi8uLi91dGlscy90YWJsZS1lbnRyeSc7XG5pbXBvcnQgeyBzZXRTZWxlY3RlZENlbGxzQmFja2dyb3VuZENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0LWNlbGxzLWJhY2tncm91bmQtY29sb3InO1xuaW1wb3J0IHsgcmVtb3ZlQ29sdW1uT3JSb3dzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVtb3ZlLXJvdy1jb2x1bW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS10YWJsZS10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RhYmxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRoZVRhYmxlVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBzZWxlY3RlZENvbG9yOiBzdHJpbmc7XG5cbiAgICBkZWxldGVJY29uOiBEZWxldGVJY29uO1xuXG4gICAgaWNvbk5hbWU6IHN0cmluZztcblxuICAgIGlzUmVjdGFuZ2xlOiBib29sZWFuO1xuXG4gICAgaXNDb2x1bW5FcXVhbDogYm9vbGVhbjtcblxuICAgIHRhYmxlQ2hhbmdlU3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uO1xuXG4gICAgQElucHV0KCkgdGFibGVTdG9yZTogVGFibGVTdG9yZTtcblxuICAgIEBJbnB1dCgpIHRhYmxlRWxlbWVudDogVGFibGVFbGVtZW50O1xuXG4gICAgZ2V0IGVkaXRvcigpOiBUaGVFZGl0b3Ige1xuICAgICAgICByZXR1cm4gdGhpcy50YWJsZVN0b3JlICYmIHRoaXMudGFibGVTdG9yZS5lZGl0b3I7XG4gICAgfVxuXG4gICAgY2VsbE1lbnVMaXN0OiBNZW51RW50aXR5W10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ21lcmdlLWNlbGxzJyxcbiAgICAgICAgICAgIG5hbWU6ICflkIjlubbljZXlhYPmoLwnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtbWVyZ2UtY2VsbHMnLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBtZXJnZUNlbGwodGhpcy5lZGl0b3IsIHRoaXMudGFibGVTdG9yZS5nZXRTZWxlY3RlZENlbGxQb3NpdGlvbnMoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxscygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdzcGxpdC1jZWxscycsXG4gICAgICAgICAgICBuYW1lOiAn5ouG5YiG5Y2V5YWD5qC8JyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLXVubWVyZ2UtY2VsbHMnLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBzcGxpdENlbGwodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhclNlbGVjdGVkQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBnZXQgaGFzRGl2aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbE1lbnVMaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0udmlzaWJpbGl0eSkubGVuZ3RoID4gMTtcbiAgICB9XG5cbiAgICBnZXQgdGFibGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gZ2V0UGx1Z2luT3B0aW9ucyh0aGlzLmVkaXRvciwgUGx1Z2luS2V5cy50YWJsZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3ZlcixcbiAgICAgICAgcHJpdmF0ZSBwb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPFRoZVRhYmxlVG9vbGJhckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgdGh5Tm90aWZ5U2VydmljZTogVGh5Tm90aWZ5U2VydmljZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmlzQ29sdW1uRXF1YWwgPSB0aGlzLnRhYmxlRWxlbWVudD8uY29sdW1ucz8uZXZlcnkoY29sID0+IHRoaXMudGFibGVFbGVtZW50LmNvbHVtbnNbMF0ud2lkdGggPT09IGNvbC53aWR0aCkgPz8gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsUG9zaXRpb25zID0gdGhpcy50YWJsZVN0b3JlLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCB0YWJsZUluZm8gPSB7IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucywgaXNTZWxlY3RlZFRhYmxlOiB0aGlzLnRhYmxlU3RvcmUuaXNTZWxlY3RlZFRhYmxlIH07XG4gICAgICAgIHRoaXMuaXNSZWN0YW5nbGUgPSBpc1JlY3Rhbmd1bGFySW5UYWJsZUNlbGxzKHRoaXMuZWRpdG9yLCBzZWxlY3RlZENlbGxQb3NpdGlvbnMpO1xuICAgICAgICB0aGlzLnNldERlbGV0ZUljb24oKTtcbiAgICAgICAgc2V0Q2VsbE1lbnVWaXNpYmlsaXR5KHRoaXMuZWRpdG9yLCB0aGlzLmNlbGxNZW51TGlzdCwgdGFibGVJbmZvKTtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdldFNlbGVjdGVkQ2VsbCh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IGNlbGwgPyBjZWxsLmJhY2tncm91bmRDb2xvciA6ICcnO1xuXG4gICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgodGhpcy5lZGl0b3IsIHRoaXMudGFibGVFbGVtZW50KTtcbiAgICAgICAgdGhpcy50YWJsZUNoYW5nZVN1YnNjcmliZXIgPSB0aGlzLnRhYmxlU3RvcmUudGFibGVDaGFuZ2UoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IChUaGVRdWVyaWVzLmdldE5vZGUodGhpcy5lZGl0b3IsIHBhdGgpIGFzIFRhYmxlRWxlbWVudCkuY29sdW1ucztcbiAgICAgICAgICAgIHRoaXMuaXNDb2x1bW5FcXVhbCA9IGNvbHVtbnM/LmV2ZXJ5KGNvbCA9PiBjb2x1bW5zWzBdLndpZHRoID09PSBjb2wud2lkdGgpID8/IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnRhYmxlQ2hhbmdlU3Vic2NyaWJlcj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBzZXREZWxldGVJY29uKCkge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGVkUm93c0luZGV4LCBzZWxlY3RlZENvbHVtbnNJbmRleCB9ID0gdGhpcy50YWJsZVN0b3JlO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0aGlzLnRhYmxlU3RvcmUuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24odGhpcy5lZGl0b3IpO1xuXG4gICAgICAgIGlmICh0aGlzLnRhYmxlU3RvcmUuc2VsZWN0ZWRSb3dzSW5kZXgubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGVJY29uID0gRGVsZXRlSWNvblsndGFibGUtZGVsZXRlLXJvd3MnXTtcbiAgICAgICAgICAgIHRoaXMuaWNvbk5hbWUgPSAn5Yig6Zmk5pW06KGMJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50YWJsZVN0b3JlLnNlbGVjdGVkQ29sdW1uc0luZGV4Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlSWNvbiA9IERlbGV0ZUljb25bJ3RhYmxlLWRlbGV0ZS1jb2x1bW5zJ107XG4gICAgICAgICAgICB0aGlzLmljb25OYW1lID0gJ+WIoOmZpOaVtOWIlyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGFibGVTdG9yZS5pc1NlbGVjdGVkVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlSWNvbiA9IERlbGV0ZUljb24udHJhc2g7XG4gICAgICAgICAgICB0aGlzLmljb25OYW1lID0gJ+WIoOmZpOihqOagvCc7XG4gICAgICAgIH1cbiAgICAgICAgLy8g5ruh6Laz5bey6YCJ5Lit5pW06KGM5oiW6ICF5pW05YiXXG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRXaG9sZVJvd09yQ29sdW1uQ2VsbCA9XG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NJbmRleC5sZW5ndGggKiBwb3MuZ2V0V2lkdGgoKSA9PT0gc2VsZWN0ZWRDZWxsUG9zaXRpb25zLmxlbmd0aCB8fFxuICAgICAgICAgICAgc2VsZWN0ZWRDb2x1bW5zSW5kZXgubGVuZ3RoICogcG9zLmdldEhlaWdodCgpID09PSBzZWxlY3RlZENlbGxQb3NpdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAoIWlzU2VsZWN0ZWRXaG9sZVJvd09yQ29sdW1uQ2VsbCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGVJY29uID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaWNvbk5hbWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EZWxldGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmVtb3ZlQ29sdW1uT3JSb3dzKHRoaXMuZWRpdG9yLCB0aGlzLnRhYmxlU3RvcmUpO1xuICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2xlYXJEYW5nZXJvdXNDZWxscygpO1xuICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2xlYXJTZWxlY3RlZENlbGxzKCk7XG4gICAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uRW50ZXJEZWxldGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy50YWJsZVN0b3JlLnNldERhbmdlcm91c0NlbGxzKCk7XG4gICAgfVxuXG4gICAgb25MZWF2ZURlbGV0ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2xlYXJEYW5nZXJvdXNDZWxscygpO1xuICAgIH1cblxuICAgIG9wZW5Db2xvclBhbmVsKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGNoYW5nZUNvbG9yKG5ld0NvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRDZWxsc0JhY2tncm91bmRDb2xvcih0aGlzLmVkaXRvciwgbmV3Q29sb3IsIHRoaXMudGFibGVTdG9yZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IG5ld0NvbG9yO1xuICAgIH1cblxuICAgIHNldEZ1bGxzY3JlZW4oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy50YWJsZU9wdGlvbnMuc2V0RnVsbHNjcmVlbih0aGlzLmVkaXRvciwgZXZlbnQsIHRoaXMudGFibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBtb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25Db3B5KGU6IEV2ZW50KSB7XG4gICAgICAgIGU/LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29weU5vZGUodGhpcy5lZGl0b3IsIHRoaXMudGFibGVFbGVtZW50LCB0aGlzLnRoeU5vdGlmeVNlcnZpY2UpO1xuICAgIH1cblxuICAgIHNldEVxdWFsbHlDb2x1bW5IYW5kbGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMudGFibGVFbGVtZW50LmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IHN1bVdpZHRoID0gY29sdW1ucy5yZWR1Y2UoKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFsdWUud2lkdGg7XG4gICAgICAgIH0sIDApO1xuICAgICAgICBjb25zdCBlcXVhbENvbHVtbnMgPSBjb2x1bW5zLm1hcCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyB3aWR0aDogc3VtV2lkdGggLyBjb2x1bW5zLmxlbmd0aCB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBUaGVUcmFuc2Zvcm1zLnNldE5vZGUodGhpcy5lZGl0b3IsIHsgY29sdW1uczogZXF1YWxDb2x1bW5zIH0sIHRoaXMudGFibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvcGVuVGFibGVPcHRpb25NZW51KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyLm9wZW4oVGhlVGFibGVPcHRpb25zQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBvcmlnaW46IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBlZGl0b3I6IHRoaXMuZWRpdG9yXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICBpbnNpZGVDbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIG91dHNpZGVDbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbUxlZnQnLFxuICAgICAgICAgICAgb3JpZ2luQWN0aXZlQ2xhc3M6ICdhY3RpdmUnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ3RhYmxlLW9wdGlvbnMtcGFubmVsJ1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIERlbGV0ZUljb24ge1xuICAgICd0YWJsZS1kZWxldGUtcm93cycgPSAndGFibGUtZGVsZXRlLXJvd3MnLFxuICAgICd0YWJsZS1kZWxldGUtY29sdW1ucycgPSAndGFibGUtZGVsZXRlLWNvbHVtbnMnLFxuICAgICd0cmFzaCcgPSAndHJhc2gnXG59XG4iLCI8dGh5LWFjdGlvbnMgdGh5U2l6ZT1cInh4c1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNlbGxNZW51TGlzdFwiPlxuICAgIDxhXG4gICAgICAqbmdJZj1cIml0ZW0udmlzaWJpbGl0eVwiXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgIHRoeUFjdGlvblxuICAgICAgW3RoeUFjdGlvbkljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgIFt0aHlUb29sdGlwXT1cIml0ZW0ubmFtZVwiXG4gICAgICAobW91c2Vkb3duKT1cIml0ZW0uYWN0aW9uSGFuZGxlKClcIlxuICAgID48L2E+XG4gIDwvbmctY29udGFpbmVyPlxuICA8dGh5LWRpdmlkZXIgKm5nSWY9XCJoYXNEaXZpZGVyXCIgY2xhc3M9XCJtci0yIG1sLTEgYWxpZ24tc2VsZi1jZW50ZXJcIiBbdGh5VmVydGljYWxdPVwidHJ1ZVwiPiA8L3RoeS1kaXZpZGVyPlxuICA8YVxuICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgIHRoeUFjdGlvblxuICAgIHRoeVRvb2x0aXA9XCLljZXlhYPmoLzog4zmma9cIlxuICAgIHRoeUNvbG9yUGlja2VyXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbG9yXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvcigkZXZlbnQpXCJcbiAgICAobW91c2Vkb3duKT1cIm9wZW5Db2xvclBhbmVsKCRldmVudClcIlxuICAgIHRoeVBsYWNlbWVudD1cImJvdHRvbUxlZnRcIlxuICAgIFt0aHlIYXNCYWNrZHJvcF09XCJmYWxzZVwiXG4gID5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJiYWNrZ3JvdW5kLXR0XCIgdGh5SWNvblR5cGU9XCJ0d290b25lXCIgW3RoeVR3b3RvbmVDb2xvcl09XCJzZWxlY3RlZENvbG9yXCI+PC90aHktaWNvbj5cbiAgPC9hPlxuICA8YVxuICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICpuZ0lmPVwidGFibGVTdG9yZS5pc1NlbGVjdGVkVGFibGUgJiYgIWlzQ29sdW1uRXF1YWxcIlxuICAgIHRoeUFjdGlvblxuICAgIHRoeVRvb2x0aXA9XCLliJfnrYnlrr1cIlxuICAgIChtb3VzZWRvd24pPVwic2V0RXF1YWxseUNvbHVtbkhhbmRsZSgkZXZlbnQpXCJcbiAgPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInRhYmxlLWNvbHVtbi1lcXVhbC13aWR0aFwiPjwvdGh5LWljb24+XG4gIDwvYT5cbiAgPGFcbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAqbmdJZj1cInRhYmxlU3RvcmUuaXNTZWxlY3RlZFRhYmxlICYmIHRhYmxlT3B0aW9ucz8uc2hvd0Z1bGxzY3JlZW5cIlxuICAgIHRoeUFjdGlvblxuICAgIHRoeVRvb2x0aXA9XCLlhajlsY9cIlxuICAgIChtb3VzZWRvd24pPVwic2V0RnVsbHNjcmVlbigkZXZlbnQpXCJcbiAgPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFycm93cy1hbHRcIj48L3RoeS1pY29uPlxuICA8L2E+XG4gIDxhXG4gICAgKm5nSWY9XCJ0YWJsZVN0b3JlLmlzU2VsZWN0ZWRUYWJsZSAmJiAhdGFibGVTdG9yZT8uaXNGdWxsc2NyZWVuXCJcbiAgICBjbGFzcz1cImZ1bGxzY3JlZW4taGlkZGVuXCJcbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICB0aHlBY3Rpb25cbiAgICB0aHlBY3Rpb25JY29uPVwiY29weVwiXG4gICAgdGh5VG9vbHRpcD1cIuWkjeWItlwiXG4gICAgKG1vdXNlZG93bik9XCJvbkNvcHkoJGV2ZW50KVwiXG4gID48L2E+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZVN0b3JlLmlzU2VsZWN0ZWRUYWJsZVwiPlxuICAgIDx0aHktZGl2aWRlciBjbGFzcz1cIm1yLTIgbWwtMSBhbGlnbi1zZWxmLWNlbnRlclwiIFt0aHlWZXJ0aWNhbF09XCJ0cnVlXCI+PC90aHktZGl2aWRlcj5cbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJsaW5rLXdpdGgtZG93blwiIHRoeUFjdGlvbiAobW91c2Vkb3duKT1cIm1vdXNlZG93bigkZXZlbnQpXCIgKGNsaWNrKT1cIm9wZW5UYWJsZU9wdGlvbk1lbnUoJGV2ZW50KVwiPlxuICAgICAgPHNwYW4+6KGo5qC86YCJ6aG5PC9zcGFuPlxuICAgICAgPHRoeS1pY29uIGNsYXNzPVwiZm9udC1zaXplLXNtIHRleHQtZGVzYyBtbC0xXCIgdGh5SWNvbk5hbWU9XCJjYXJldC1kb3duXCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVTdG9yZT8uaXNGdWxsc2NyZWVuID8gZGVsZXRlSWNvbiAmJiAhdGFibGVTdG9yZS5pc1NlbGVjdGVkVGFibGUgOiBkZWxldGVJY29uXCI+XG4gICAgPHRoeS1kaXZpZGVyIGNsYXNzPVwibXItMiBtbC0xIGFsaWduLXNlbGYtY2VudGVyXCIgW3RoeVZlcnRpY2FsXT1cInRydWVcIj48L3RoeS1kaXZpZGVyPlxuICAgIDxhXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgIHRoeUFjdGlvblxuICAgICAgdGh5VHlwZT1cImRhbmdlclwiXG4gICAgICBbdGh5QWN0aW9uSWNvbl09XCJkZWxldGVJY29uXCJcbiAgICAgIFt0aHlUb29sdGlwXT1cImljb25OYW1lXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAobW91c2VlbnRlcik9XCJvbkVudGVyRGVsZXRlKCRldmVudClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwib25MZWF2ZURlbGV0ZSgkZXZlbnQpXCJcbiAgICA+PC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvdGh5LWFjdGlvbnM+XG4iXX0=
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { Editor, Element, Transforms, Text, Node } from 'slate';
|
|
2
|
+
import { AngularEditor, ELEMENT_TO_COMPONENT } from 'slate-angular';
|
|
3
|
+
import { TableOptions } from './table.types';
|
|
4
|
+
import { ALIGN_BLOCK_TYPES, ElementKinds, MarkProps, VerticalAlignment } from '../../constants';
|
|
5
|
+
import { insertTable, insertColumn, insertRow, removeColumn, removeRow, removeTable } from './transforms';
|
|
6
|
+
import { clearCell } from './transforms/clear-cell';
|
|
7
|
+
import { getOriginCell } from './utils';
|
|
8
|
+
import * as TheTransforms from '../../transforms';
|
|
9
|
+
import * as TheQueries from '../../queries';
|
|
10
|
+
import { setCellIndent, sortCell } from './utils/handle-cell';
|
|
11
|
+
import { createTablePosition } from './utils/create-table-position';
|
|
12
|
+
export const TableEditor = {
|
|
13
|
+
insertTable(editor, optionsParam) {
|
|
14
|
+
const opts = new TableOptions(optionsParam);
|
|
15
|
+
insertTable(opts, editor);
|
|
16
|
+
},
|
|
17
|
+
insertColumn(editor, count = 1, at, optionsParam) {
|
|
18
|
+
const opts = new TableOptions(optionsParam);
|
|
19
|
+
insertColumn(opts, editor, count, at);
|
|
20
|
+
},
|
|
21
|
+
insertRow(editor, count = 1, at, optionsParam) {
|
|
22
|
+
const opts = new TableOptions(optionsParam);
|
|
23
|
+
insertRow(opts, editor, count, at);
|
|
24
|
+
},
|
|
25
|
+
removeTable(editor, optionsParam) {
|
|
26
|
+
const opts = new TableOptions(optionsParam);
|
|
27
|
+
removeTable(opts, editor);
|
|
28
|
+
},
|
|
29
|
+
removeRow(editor, rowIndex, optionsParam) {
|
|
30
|
+
const opts = new TableOptions(optionsParam);
|
|
31
|
+
removeRow(opts, editor, rowIndex);
|
|
32
|
+
},
|
|
33
|
+
removeColumn(editor, colIndex, optionsParam) {
|
|
34
|
+
const opts = new TableOptions(optionsParam);
|
|
35
|
+
removeColumn(opts, editor, colIndex);
|
|
36
|
+
},
|
|
37
|
+
clearCell(editor, nodeEntry, optionsParam) {
|
|
38
|
+
const opts = new TableOptions(optionsParam);
|
|
39
|
+
clearCell(opts, editor, nodeEntry);
|
|
40
|
+
},
|
|
41
|
+
isActive(editor) {
|
|
42
|
+
const [table] = Editor.nodes(editor, { match: (n) => Element.isElement(n) && n.type === ElementKinds.table });
|
|
43
|
+
return !!table;
|
|
44
|
+
},
|
|
45
|
+
getSelectedCells(editor) {
|
|
46
|
+
const tableNode = TheQueries.getAboveByType(editor, ElementKinds.table);
|
|
47
|
+
if (tableNode) {
|
|
48
|
+
const tableComponent = ELEMENT_TO_COMPONENT.get(tableNode[0]);
|
|
49
|
+
const selectedCellPositions = tableComponent.tableStore.getSelectedCellPositions();
|
|
50
|
+
if (selectedCellPositions.length > 0) {
|
|
51
|
+
return selectedCellPositions;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
},
|
|
56
|
+
setAlign(editor, alignment) {
|
|
57
|
+
return TableEditor.handleSelectedCells(editor, (_, cellRange) => {
|
|
58
|
+
Transforms.setNodes(editor, { align: alignment }, {
|
|
59
|
+
at: cellRange,
|
|
60
|
+
match: (n) => ALIGN_BLOCK_TYPES.includes(n.type)
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
setVerticalAlign(editor, alignment) {
|
|
65
|
+
const isSelected = TableEditor.handleSelectedCells(editor, cellPath => {
|
|
66
|
+
Transforms.setNodes(editor, { verticalAlign: alignment }, { at: cellPath });
|
|
67
|
+
});
|
|
68
|
+
if (!isSelected) {
|
|
69
|
+
const cellEntry = TheQueries.getAboveByType(editor, ElementKinds.tableCell);
|
|
70
|
+
if (cellEntry) {
|
|
71
|
+
const [, cellPath] = cellEntry;
|
|
72
|
+
Transforms.setNodes(editor, { verticalAlign: alignment }, {
|
|
73
|
+
at: cellPath,
|
|
74
|
+
match: (n) => n.type === ElementKinds.tableCell
|
|
75
|
+
});
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
},
|
|
82
|
+
isVerticalAlignActive(editor, alignment) {
|
|
83
|
+
const cells = TableEditor.getSelectedCells(editor);
|
|
84
|
+
if (cells) {
|
|
85
|
+
const lastCell = cells[cells.length - 1];
|
|
86
|
+
const tableNode = TheQueries.getAboveByType(editor, ElementKinds.table);
|
|
87
|
+
const cellPath = [...tableNode[1], lastCell.row, lastCell.col];
|
|
88
|
+
const cell = Node.get(editor, cellPath);
|
|
89
|
+
const { verticalAlign } = cell;
|
|
90
|
+
if (!verticalAlign && alignment === VerticalAlignment.top) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
return verticalAlign === alignment;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const cellElement = TheQueries.getAboveByType(editor, ElementKinds.tableCell);
|
|
97
|
+
if (cellElement) {
|
|
98
|
+
const { verticalAlign } = cellElement[0];
|
|
99
|
+
if (!verticalAlign && alignment === VerticalAlignment.top) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return verticalAlign === alignment;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
},
|
|
107
|
+
toggleMark(editor, isActive, format, value = true) {
|
|
108
|
+
return TableEditor.handleSelectedCells(editor, at => {
|
|
109
|
+
if (isActive) {
|
|
110
|
+
Transforms.unsetNodes(editor, format, {
|
|
111
|
+
at,
|
|
112
|
+
match: Text.isText,
|
|
113
|
+
split: true
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
Transforms.setNodes(editor, { [format]: value }, {
|
|
118
|
+
at,
|
|
119
|
+
match: Text.isText,
|
|
120
|
+
split: true
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
clearMark(editor) {
|
|
126
|
+
return TableEditor.handleSelectedCells(editor, (cellPath, cellRange) => {
|
|
127
|
+
const unsetMarks = {};
|
|
128
|
+
MarkProps.forEach(key => {
|
|
129
|
+
unsetMarks[key] = null;
|
|
130
|
+
});
|
|
131
|
+
TheTransforms.setMarks(editor, unsetMarks, cellRange);
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
handleSelectedCells(editor, handle) {
|
|
135
|
+
const cells = TableEditor.getSelectedCells(editor);
|
|
136
|
+
if (cells) {
|
|
137
|
+
const tableNode = TheQueries.getAboveByType(editor, ElementKinds.table);
|
|
138
|
+
Editor.withoutNormalizing(editor, () => {
|
|
139
|
+
for (const cell of cells) {
|
|
140
|
+
const { row, col } = cell;
|
|
141
|
+
const cellPath = [...tableNode[1], row, col];
|
|
142
|
+
const cellRange = { anchor: Editor.start(editor, cellPath), focus: Editor.end(editor, cellPath) };
|
|
143
|
+
handle(cellPath, cellRange);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
return false;
|
|
149
|
+
},
|
|
150
|
+
hasHeaderRow(editor, location) {
|
|
151
|
+
const [tableEntry] = Editor.nodes(editor, { at: location, match: (n) => n.type === ElementKinds.table });
|
|
152
|
+
const tableComponent = ELEMENT_TO_COMPONENT.get(tableEntry[0]);
|
|
153
|
+
return tableComponent.headerRow;
|
|
154
|
+
},
|
|
155
|
+
hasHeaderColumn(editor, location) {
|
|
156
|
+
const [tableEntry] = Editor.nodes(editor, { at: location, match: (n) => n.type === ElementKinds.table });
|
|
157
|
+
return tableEntry && tableEntry[0]?.options?.headerColumn;
|
|
158
|
+
},
|
|
159
|
+
isActiveHeader(editor, location) {
|
|
160
|
+
location = location || editor.selection;
|
|
161
|
+
if (!TableEditor.hasHeaderRow(editor, location) && !TableEditor.hasHeaderColumn(editor, location)) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
const position = createTablePosition(editor, location.path);
|
|
165
|
+
if (TableEditor.hasHeaderRow(editor, location) && position.getRowIndex() === 0) {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
if (TableEditor.hasHeaderColumn(editor, location) && position.getColumnIndex() === 0) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
return false;
|
|
172
|
+
},
|
|
173
|
+
hasHeaderRowCell(editor) {
|
|
174
|
+
const isHeaderRow = Editor.nodes(editor, {
|
|
175
|
+
match: (n) => Element.isElement(n) &&
|
|
176
|
+
((n.type === ElementKinds.tableRow && n.header) || (n.type === ElementKinds.table && n.options?.headerRow))
|
|
177
|
+
});
|
|
178
|
+
const selectedCells = TableEditor.getSelectedCells(editor) ?? [];
|
|
179
|
+
sortCell(selectedCells);
|
|
180
|
+
const isContainHeaderRow = !!selectedCells && selectedCells[0].row === 0;
|
|
181
|
+
return isHeaderRow && isContainHeaderRow;
|
|
182
|
+
},
|
|
183
|
+
hasHeaderColumnCell(editor) {
|
|
184
|
+
const table = TheQueries.getAboveByType(editor, ElementKinds.table);
|
|
185
|
+
const selectedCells = TableEditor.getSelectedCells(editor) ?? [];
|
|
186
|
+
sortCell(selectedCells);
|
|
187
|
+
const isContainHeaderColumn = !!selectedCells && selectedCells[0].col === 0;
|
|
188
|
+
const isHeaderColumn = table && table[0] && table[0]?.options?.headerColumn;
|
|
189
|
+
return isHeaderColumn && isContainHeaderColumn;
|
|
190
|
+
},
|
|
191
|
+
selectOriginCell(editor, table, rowIndex, columnIndex, isStart) {
|
|
192
|
+
const origin = getOriginCell(table, rowIndex, columnIndex);
|
|
193
|
+
if (origin) {
|
|
194
|
+
const path = AngularEditor.findPath(editor, origin);
|
|
195
|
+
Transforms.select(editor, isStart ? Editor.start(editor, path) : Editor.end(editor, path));
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
handleIndent(editor, indentType) {
|
|
199
|
+
return TableEditor.handleSelectedCells(editor, (cellPath, cellRange) => {
|
|
200
|
+
const children = TheQueries.getNode(editor, cellPath).children;
|
|
201
|
+
if (children.length) {
|
|
202
|
+
children.forEach((child, index) => {
|
|
203
|
+
setCellIndent(editor, indentType, child, [...cellPath, index]);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdGFibGUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFhLFVBQVUsRUFBRSxJQUFJLEVBQWUsSUFBSSxFQUFtQixNQUFNLE9BQU8sQ0FBQztBQUN6RyxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFhLGlCQUFpQixFQUFFLFlBQVksRUFBVyxTQUFTLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixXQUFXLENBQUMsTUFBaUIsRUFBRSxZQUEyQjtRQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxD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LENBQUMsQ0FBQztRQUMzRCxJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDOUY7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLE1BQWlCLEVBQUUsVUFBbUI7UUFDL0MsT0FBTyxXQUFXLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ25FLE1BQU0sUUFBUSxHQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBbUIsQ0FBQyxRQUEyQixDQUFDO1lBRXJHLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDakIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW9CLEVBQUUsS0FBYSxFQUFFLEVBQUU7b0JBQ3JELGFBQWEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBOb2RlRW50cnksIFRyYW5zZm9ybXMsIFRleHQsIFBhdGgsIFJhbmdlLCBOb2RlLCBMb2NhdGlvbiwgUG9pbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBFTEVNRU5UX1RPX0NPTVBPTkVOVCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGFibGVPcHRpb25zIH0gZnJvbSAnLi90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIEFMSUdOX0JMT0NLX1RZUEVTLCBFbGVtZW50S2luZHMsIEluZGVudHMsIE1hcmtQcm9wcywgTWFya1R5cGVzLCBWZXJ0aWNhbEFsaWdubWVudCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQsIFRhYmxlQ2VsbEVsZW1lbnQsIFRhYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBpbnNlcnRUYWJsZSwgaW5zZXJ0Q29sdW1uLCBpbnNlcnRSb3csIHJlbW92ZUNvbHVtbiwgcmVtb3ZlUm93LCByZW1vdmVUYWJsZSB9IGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBjbGVhckNlbGwgfSBmcm9tICcuL3RyYW5zZm9ybXMvY2xlYXItY2VsbCc7XG5pbXBvcnQgdHlwZSB7IFRoZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRPcmlnaW5DZWxsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IHNldENlbGxJbmRlbnQsIHNvcnRDZWxsIH0gZnJvbSAnLi91dGlscy9oYW5kbGUtY2VsbCc7XG5pbXBvcnQgeyBjcmVhdGVUYWJsZVBvc2l0aW9uIH0gZnJvbSAnLi91dGlscy9jcmVhdGUtdGFibGUtcG9zaXRpb24nO1xuXG5leHBvcnQgY29uc3QgVGFibGVFZGl0b3IgPSB7XG4gICAgaW5zZXJ0VGFibGUoZWRpdG9yOiBUaGVFZGl0b3IsIG9wdGlvbnNQYXJhbT86IFRhYmxlT3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucyhvcHRpb25zUGFyYW0pO1xuICAgICAgICBpbnNlcnRUYWJsZShvcHRzLCBlZGl0b3IpO1xuICAgIH0sXG4gICAgaW5zZXJ0Q29sdW1uKGVkaXRvcjogVGhlRWRpdG9yLCBjb3VudDogbnVtYmVyID0gMSwgYXQ/OiBudW1iZXIsIG9wdGlvbnNQYXJhbT86IFRhYmxlT3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucyhvcHRpb25zUGFyYW0pO1xuICAgICAgICBpbnNlcnRDb2x1bW4ob3B0cywgZWRpdG9yLCBjb3VudCwgYXQpO1xuICAgIH0sXG4gICAgaW5zZXJ0Um93KGVkaXRvcjogVGhlRWRpdG9yLCBjb3VudDogbnVtYmVyID0gMSwgYXQ/OiBudW1iZXIsIG9wdGlvbnNQYXJhbT86IFRhYmxlT3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucyhvcHRpb25zUGFyYW0pO1xuICAgICAgICBpbnNlcnRSb3cob3B0cywgZWRpdG9yLCBjb3VudCwgYXQpO1xuICAgIH0sXG4gICAgcmVtb3ZlVGFibGUoZWRpdG9yOiBUaGVFZGl0b3IsIG9wdGlvbnNQYXJhbT86IFRhYmxlT3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucyhvcHRpb25zUGFyYW0pO1xuICAgICAgICByZW1vdmVUYWJsZShvcHRzLCBlZGl0b3IpO1xuICAgIH0sXG4gICAgcmVtb3ZlUm93KGVkaXRvcjogVGhlRWRpdG9yLCByb3dJbmRleD86IG51bWJlciwgb3B0aW9uc1BhcmFtPzogVGFibGVPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKG9wdGlvbnNQYXJhbSk7XG4gICAgICAgIHJlbW92ZVJvdyhvcHRzLCBlZGl0b3IsIHJvd0luZGV4KTtcbiAgICB9LFxuICAgIHJlbW92ZUNvbHVtbihlZGl0b3I6IFRoZUVkaXRvciwgY29sSW5kZXg/OiBudW1iZXIsIG9wdGlvbnNQYXJhbT86IFRhYmxlT3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucyhvcHRpb25zUGFyYW0pO1xuICAgICAgICByZW1vdmVDb2x1bW4ob3B0cywgZWRpdG9yLCBjb2xJbmRleCk7XG4gICAgfSxcbiAgICBjbGVhckNlbGwoZWRpdG9yOiBUaGVFZGl0b3IsIG5vZGVFbnRyeT86IE5vZGVFbnRyeTxFbGVtZW50Piwgb3B0aW9uc1BhcmFtPzogVGFibGVPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKG9wdGlvbnNQYXJhbSk7XG4gICAgICAgIGNsZWFyQ2VsbChvcHRzLCBlZGl0b3IsIG5vZGVFbnRyeSk7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBbdGFibGVdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwgeyBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlIH0pO1xuICAgICAgICByZXR1cm4gISF0YWJsZTtcbiAgICB9LFxuICAgIGdldFNlbGVjdGVkQ2VsbHMoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgdGFibGVOb2RlID0gVGhlUXVlcmllcy5nZXRBYm92ZUJ5VHlwZShlZGl0b3IsIEVsZW1lbnRLaW5kcy50YWJsZSk7XG4gICAgICAgIGlmICh0YWJsZU5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlQ29tcG9uZW50ID0gRUxFTUVOVF9UT19DT01QT05FTlQuZ2V0KHRhYmxlTm9kZVswXSkgYXMgVGhlVGFibGVDb21wb25lbnQ7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRDZWxsUG9zaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRDZWxsUG9zaXRpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gICAgc2V0QWxpZ24oZWRpdG9yOiBUaGVFZGl0b3IsIGFsaWdubWVudDogQWxpZ25tZW50KSB7XG4gICAgICAgIHJldHVybiBUYWJsZUVkaXRvci5oYW5kbGVTZWxlY3RlZENlbGxzKGVkaXRvciwgKF8sIGNlbGxSYW5nZSkgPT4ge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgeyBhbGlnbjogYWxpZ25tZW50IH0gYXMgQ3VzdG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiBjZWxsUmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gQUxJR05fQkxPQ0tfVFlQRVMuaW5jbHVkZXMobi50eXBlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgc2V0VmVydGljYWxBbGlnbihlZGl0b3I6IFRoZUVkaXRvciwgYWxpZ25tZW50OiBWZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gVGFibGVFZGl0b3IuaGFuZGxlU2VsZWN0ZWRDZWxscyhlZGl0b3IsIGNlbGxQYXRoID0+IHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7IHZlcnRpY2FsQWxpZ246IGFsaWdubWVudCB9IGFzIEN1c3RvbUVsZW1lbnQsIHsgYXQ6IGNlbGxQYXRoIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zdCBjZWxsRW50cnkgPSBUaGVRdWVyaWVzLmdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLnRhYmxlQ2VsbCk7XG4gICAgICAgICAgICBpZiAoY2VsbEVudHJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgWywgY2VsbFBhdGhdID0gY2VsbEVudHJ5O1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgeyB2ZXJ0aWNhbEFsaWduOiBhbGlnbm1lbnQgfSBhcyBDdXN0b21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdDogY2VsbFBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlQ2VsbFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIGlzVmVydGljYWxBbGlnbkFjdGl2ZShlZGl0b3I6IFRoZUVkaXRvciwgYWxpZ25tZW50OiBWZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICBjb25zdCBjZWxscyA9IFRhYmxlRWRpdG9yLmdldFNlbGVjdGVkQ2VsbHMoZWRpdG9yKTtcbiAgICAgICAgaWYgKGNlbGxzKSB7XG4gICAgICAgICAgICBjb25zdCBsYXN0Q2VsbCA9IGNlbGxzW2NlbGxzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgY29uc3QgdGFibGVOb2RlID0gVGhlUXVlcmllcy5nZXRBYm92ZUJ5VHlwZShlZGl0b3IsIEVsZW1lbnRLaW5kcy50YWJsZSk7XG4gICAgICAgICAgICBjb25zdCBjZWxsUGF0aCA9IFsuLi50YWJsZU5vZGVbMV0sIGxhc3RDZWxsLnJvdywgbGFzdENlbGwuY29sXTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBOb2RlLmdldChlZGl0b3IsIGNlbGxQYXRoKSBhcyBUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgeyB2ZXJ0aWNhbEFsaWduIH0gPSBjZWxsO1xuICAgICAgICAgICAgaWYgKCF2ZXJ0aWNhbEFsaWduICYmIGFsaWdubWVudCA9PT0gVmVydGljYWxBbGlnbm1lbnQudG9wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmVydGljYWxBbGlnbiA9PT0gYWxpZ25tZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2VsbEVsZW1lbnQgPSBUaGVRdWVyaWVzLmdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLnRhYmxlQ2VsbCk7XG4gICAgICAgICAgICBpZiAoY2VsbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHZlcnRpY2FsQWxpZ24gfSA9IGNlbGxFbGVtZW50WzBdIGFzIFRhYmxlQ2VsbEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKCF2ZXJ0aWNhbEFsaWduICYmIGFsaWdubWVudCA9PT0gVmVydGljYWxBbGlnbm1lbnQudG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmVydGljYWxBbGlnbiA9PT0gYWxpZ25tZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gICAgdG9nZ2xlTWFyayhlZGl0b3I6IFRoZUVkaXRvciwgaXNBY3RpdmU6IGJvb2xlYW4sIGZvcm1hdDogc3RyaW5nIHwgc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gVGFibGVFZGl0b3IuaGFuZGxlU2VsZWN0ZWRDZWxscyhlZGl0b3IsIGF0ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMudW5zZXROb2RlcyhlZGl0b3IsIGZvcm1hdCwge1xuICAgICAgICAgICAgICAgICAgICBhdCxcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IFRleHQuaXNUZXh0LFxuICAgICAgICAgICAgICAgICAgICBzcGxpdDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgIHsgW2Zvcm1hdCBhcyBzdHJpbmddOiB2YWx1ZSB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBUZXh0LmlzVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwbGl0OiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGNsZWFyTWFyayhlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICByZXR1cm4gVGFibGVFZGl0b3IuaGFuZGxlU2VsZWN0ZWRDZWxscyhlZGl0b3IsIChjZWxsUGF0aCwgY2VsbFJhbmdlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bnNldE1hcmtzOiB7IFtrZXkgaW4gTWFya1R5cGVzXT86IG51bGwgfCBzdHJpbmcgfSA9IHt9O1xuICAgICAgICAgICAgTWFya1Byb3BzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICB1bnNldE1hcmtzW2tleV0gPSBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnNldE1hcmtzKGVkaXRvciwgdW5zZXRNYXJrcywgY2VsbFJhbmdlKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBoYW5kbGVTZWxlY3RlZENlbGxzKGVkaXRvcjogVGhlRWRpdG9yLCBoYW5kbGU6IChjZWxsUGF0aDogUGF0aCwgY2VsbFJhbmdlOiBSYW5nZSkgPT4gdm9pZCkge1xuICAgICAgICBjb25zdCBjZWxscyA9IFRhYmxlRWRpdG9yLmdldFNlbGVjdGVkQ2VsbHMoZWRpdG9yKTtcbiAgICAgICAgaWYgKGNlbGxzKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZU5vZGUgPSBUaGVRdWVyaWVzLmdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLnRhYmxlKTtcbiAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjZWxsIG9mIGNlbGxzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcm93LCBjb2wgfSA9IGNlbGw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQYXRoID0gWy4uLnRhYmxlTm9kZVsxXSwgcm93LCBjb2xdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmFuZ2UgPSB7IGFuY2hvcjogRWRpdG9yLnN0YXJ0KGVkaXRvciwgY2VsbFBhdGgpLCBmb2N1czogRWRpdG9yLmVuZChlZGl0b3IsIGNlbGxQYXRoKSB9O1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGUoY2VsbFBhdGgsIGNlbGxSYW5nZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcblxuICAgIGhhc0hlYWRlclJvdyhlZGl0b3I6IFRoZUVkaXRvciwgbG9jYXRpb24/OiBMb2NhdGlvbikge1xuICAgICAgICBjb25zdCBbdGFibGVFbnRyeV0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7IGF0OiBsb2NhdGlvbiwgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZSB9KTtcbiAgICAgICAgY29uc3QgdGFibGVDb21wb25lbnQgPSBFTEVNRU5UX1RPX0NPTVBPTkVOVC5nZXQodGFibGVFbnRyeVswXSkgYXMgVGhlVGFibGVDb21wb25lbnQ7XG4gICAgICAgIHJldHVybiB0YWJsZUNvbXBvbmVudC5oZWFkZXJSb3c7XG4gICAgfSxcblxuICAgIGhhc0hlYWRlckNvbHVtbihlZGl0b3I6IFRoZUVkaXRvciwgbG9jYXRpb24/OiBMb2NhdGlvbikge1xuICAgICAgICBjb25zdCBbdGFibGVFbnRyeV0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7IGF0OiBsb2NhdGlvbiwgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZSB9KTtcbiAgICAgICAgcmV0dXJuIHRhYmxlRW50cnkgJiYgKHRhYmxlRW50cnlbMF0gYXMgVGFibGVFbGVtZW50KT8ub3B0aW9ucz8uaGVhZGVyQ29sdW1uO1xuICAgIH0sXG5cbiAgICBpc0FjdGl2ZUhlYWRlcihlZGl0b3I6IFRoZUVkaXRvciwgbG9jYXRpb24/OiBMb2NhdGlvbikge1xuICAgICAgICBsb2NhdGlvbiA9IGxvY2F0aW9uIHx8IGVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgIGlmICghVGFibGVFZGl0b3IuaGFzSGVhZGVyUm93KGVkaXRvciwgbG9jYXRpb24pICYmICFUYWJsZUVkaXRvci5oYXNIZWFkZXJDb2x1bW4oZWRpdG9yLCBsb2NhdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGNyZWF0ZVRhYmxlUG9zaXRpb24oZWRpdG9yLCAobG9jYXRpb24gYXMgUG9pbnQpLnBhdGgpO1xuICAgICAgICBpZiAoVGFibGVFZGl0b3IuaGFzSGVhZGVyUm93KGVkaXRvciwgbG9jYXRpb24pICYmIHBvc2l0aW9uLmdldFJvd0luZGV4KCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChUYWJsZUVkaXRvci5oYXNIZWFkZXJDb2x1bW4oZWRpdG9yLCBsb2NhdGlvbikgJiYgcG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcblxuICAgIGhhc0hlYWRlclJvd0NlbGwoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgaXNIZWFkZXJSb3cgPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+XG4gICAgICAgICAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQobikgJiZcbiAgICAgICAgICAgICAgICAoKG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlUm93ICYmIG4uaGVhZGVyKSB8fCAobi50eXBlID09PSBFbGVtZW50S2luZHMudGFibGUgJiYgbi5vcHRpb25zPy5oZWFkZXJSb3cpKVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxscyA9IFRhYmxlRWRpdG9yLmdldFNlbGVjdGVkQ2VsbHMoZWRpdG9yKSA/PyBbXTtcbiAgICAgICAgc29ydENlbGwoc2VsZWN0ZWRDZWxscyk7XG4gICAgICAgIGNvbnN0IGlzQ29udGFpbkhlYWRlclJvdyA9ICEhc2VsZWN0ZWRDZWxscyAmJiBzZWxlY3RlZENlbGxzWzBdLnJvdyA9PT0gMDtcblxuICAgICAgICByZXR1cm4gaXNIZWFkZXJSb3cgJiYgaXNDb250YWluSGVhZGVyUm93O1xuICAgIH0sXG4gICAgaGFzSGVhZGVyQ29sdW1uQ2VsbChlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCB0YWJsZSA9IFRoZVF1ZXJpZXMuZ2V0QWJvdmVCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMudGFibGUpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gVGFibGVFZGl0b3IuZ2V0U2VsZWN0ZWRDZWxscyhlZGl0b3IpID8/IFtdO1xuICAgICAgICBzb3J0Q2VsbChzZWxlY3RlZENlbGxzKTtcbiAgICAgICAgY29uc3QgaXNDb250YWluSGVhZGVyQ29sdW1uID0gISFzZWxlY3RlZENlbGxzICYmIHNlbGVjdGVkQ2VsbHNbMF0uY29sID09PSAwO1xuICAgICAgICBjb25zdCBpc0hlYWRlckNvbHVtbiA9IHRhYmxlICYmIHRhYmxlWzBdICYmICh0YWJsZVswXSBhcyBUYWJsZUVsZW1lbnQpPy5vcHRpb25zPy5oZWFkZXJDb2x1bW47XG5cbiAgICAgICAgcmV0dXJuIGlzSGVhZGVyQ29sdW1uICYmIGlzQ29udGFpbkhlYWRlckNvbHVtbjtcbiAgICB9LFxuICAgIHNlbGVjdE9yaWdpbkNlbGwoZWRpdG9yOiBUaGVFZGl0b3IsIHRhYmxlOiBUYWJsZUVsZW1lbnQsIHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIsIGlzU3RhcnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luID0gZ2V0T3JpZ2luQ2VsbCh0YWJsZSwgcm93SW5kZXgsIGNvbHVtbkluZGV4KTtcbiAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBvcmlnaW4pO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBpc1N0YXJ0ID8gRWRpdG9yLnN0YXJ0KGVkaXRvciwgcGF0aCkgOiBFZGl0b3IuZW5kKGVkaXRvciwgcGF0aCkpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBoYW5kbGVJbmRlbnQoZWRpdG9yOiBUaGVFZGl0b3IsIGluZGVudFR5cGU6IEluZGVudHMpIHtcbiAgICAgICAgcmV0dXJuIFRhYmxlRWRpdG9yLmhhbmRsZVNlbGVjdGVkQ2VsbHMoZWRpdG9yLCAoY2VsbFBhdGgsIGNlbGxSYW5nZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSAoVGhlUXVlcmllcy5nZXROb2RlKGVkaXRvciwgY2VsbFBhdGgpIGFzIEN1c3RvbUVsZW1lbnQpLmNoaWxkcmVuIGFzIEN1c3RvbUVsZW1lbnRbXTtcblxuICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBDdXN0b21FbGVtZW50LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldENlbGxJbmRlbnQoZWRpdG9yLCBpbmRlbnRUeXBlLCBjaGlsZCwgWy4uLmNlbGxQYXRoLCBpbmRleF0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59O1xuIl19
|
|
@@ -21,10 +21,10 @@ export class TableFreezeColumnPipe {
|
|
|
21
21
|
const mergeColumnCells = rows && rows.map(cells => cells[0]).filter(item => item.colspan && item.colspan !== 1);
|
|
22
22
|
return !!(tablePluginOptions?.freezeColumnHeader && table.options?.headerColumn && !mergeColumnCells.length && stickyColumn);
|
|
23
23
|
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TableFreezeColumnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
25
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: TableFreezeColumnPipe, name: "freezeColumn" }); }
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
TableFreezeColumnPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TableFreezeColumnPipe, name: "freezeColumn" });
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableFreezeColumnPipe, decorators: [{
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TableFreezeColumnPipe, decorators: [{
|
|
28
28
|
type: Pipe,
|
|
29
29
|
args: [{ name: 'freezeColumn' }]
|
|
30
30
|
}] });
|
|
@@ -37,11 +37,11 @@ export class TableFreezeRowPipe {
|
|
|
37
37
|
}
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TableFreezeRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
41
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: TableFreezeRowPipe, name: "freezeRow" }); }
|
|
40
42
|
}
|
|
41
|
-
|
|
42
|
-
TableFreezeRowPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TableFreezeRowPipe, name: "freezeRow" });
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableFreezeRowPipe, decorators: [{
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TableFreezeRowPipe, decorators: [{
|
|
44
44
|
type: Pipe,
|
|
45
45
|
args: [{ name: 'freezeRow' }]
|
|
46
46
|
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL3RhYmxlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRzlDLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsU0FBUyxDQUFDLEtBQW1CLEVBQUUsa0JBQXdDO1FBQ25FLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsRSxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFO1lBQy9CLE1BQU0sR0FBRyxtQkFBbUIsR0FBRyxhQUFhLENBQUM7U0FDaEQ7UUFDRCxJQUFJLGNBQWMsRUFBRTtZQUNoQixNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1RSxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQztTQUMxRDtRQUNELGtCQUFrQjtRQUNsQixNQUFNLGdCQUFnQixHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hILE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLENBQUM7SUFDakksQ0FBQzs4R0FqQlEscUJBQXFCOzRHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFOztBQXNCOUIsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixTQUFTLENBQUMsS0FBbUIsRUFBRSxTQUFrQixFQUFFLGtCQUF3QztRQUN2RixrQkFBa0I7UUFDbEIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUM7U0FDcEY7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQVJRLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRBQkxFX0NPTlRST0wsIFRBQkxFX05VTUJFUl9DT0xVTU4sIFRoZVBsdWdpblRhYmxlT3B0aW9uIH0gZnJvbSAnLi90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBUYWJsZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19DT01QT05FTlQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IGdldEVsZW1lbnRXaWR0aCB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQFBpcGUoeyBuYW1lOiAnZnJlZXplQ29sdW1uJyB9KVxuZXhwb3J0IGNsYXNzIFRhYmxlRnJlZXplQ29sdW1uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh0YWJsZTogVGFibGVFbGVtZW50LCB0YWJsZVBsdWdpbk9wdGlvbnM6IFRoZVBsdWdpblRhYmxlT3B0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5jaGlsZHJlbj8ubWFwKGl0ZW0gPT4gaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIGNvbnN0IGhlYWRlckNvbHVtbldpZHRoID0gdGFibGUuY29sdW1ucyAmJiB0YWJsZS5jb2x1bW5zWzBdLndpZHRoO1xuICAgICAgICBjb25zdCB0YWJsZUNvbXBvbmVudCA9IEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldCh0YWJsZSk7XG4gICAgICAgIGxldCBzdGlja3lDb2x1bW4gPSB0cnVlO1xuICAgICAgICBsZXQgYnVmZmVyID0gVEFCTEVfQ09OVFJPTDtcbiAgICAgICAgaWYgKHRhYmxlLm9wdGlvbnM/Lm51bWJlcmVkQ29sdW1uKSB7XG4gICAgICAgICAgICBidWZmZXIgPSBUQUJMRV9OVU1CRVJfQ09MVU1OICsgVEFCTEVfQ09OVFJPTDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFibGVDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlV2lkdGggPSBnZXRFbGVtZW50V2lkdGgodGFibGVDb21wb25lbnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHN0aWNreUNvbHVtbiA9IGhlYWRlckNvbHVtbldpZHRoICsgYnVmZmVyIDwgdGFibGVXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICAvLyDmoIfpopjliJflrZjlnKjlkIjlubbnmoTliJfml7bvvIzlj5bmtojlhrvnu5NcbiAgICAgICAgY29uc3QgbWVyZ2VDb2x1bW5DZWxscyA9IHJvd3MgJiYgcm93cy5tYXAoY2VsbHMgPT4gY2VsbHNbMF0pLmZpbHRlcihpdGVtID0+IGl0ZW0uY29sc3BhbiAmJiBpdGVtLmNvbHNwYW4gIT09IDEpO1xuICAgICAgICByZXR1cm4gISEodGFibGVQbHVnaW5PcHRpb25zPy5mcmVlemVDb2x1bW5IZWFkZXIgJiYgdGFibGUub3B0aW9ucz8uaGVhZGVyQ29sdW1uICYmICFtZXJnZUNvbHVtbkNlbGxzLmxlbmd0aCAmJiBzdGlja3lDb2x1bW4pO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAnZnJlZXplUm93JyB9KVxuZXhwb3J0IGNsYXNzIFRhYmxlRnJlZXplUm93UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh0YWJsZTogVGFibGVFbGVtZW50LCBoZWFkZXJSb3c6IGJvb2xlYW4sIHRhYmxlUGx1Z2luT3B0aW9uczogVGhlUGx1Z2luVGFibGVPcHRpb24pIHtcbiAgICAgICAgLy8g5qCH6aKY6KGM5a2Y5Zyo5ZCI5bm255qE6KGM5pe277yM5Y+W5raI5Ya757uTXG4gICAgICAgIGlmICh0YWJsZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VSb3dzID0gdGFibGUuY2hpbGRyZW5bMF0/LmNoaWxkcmVuLmZpbHRlcihpdGVtID0+IGl0ZW0ucm93c3BhbiAmJiBpdGVtLnJvd3NwYW4gIT09IDEpO1xuICAgICAgICAgICAgcmV0dXJuICEhKGhlYWRlclJvdyAmJiAhbWVyZ2VSb3dzLmxlbmd0aCAmJiB0YWJsZVBsdWdpbk9wdGlvbnM/LmZyZWV6ZVJvd0hlYWRlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
|