@worktile/theia 13.0.0-next.1 → 13.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/README.md +11 -11
- package/components/color-select/color-select.component.d.ts +32 -32
- package/components/color-select/color-select.component.scss +107 -107
- package/components/column-resize/column-resize-notifier.d.ts +35 -35
- package/components/column-resize/column-resize.directive.d.ts +26 -26
- package/components/column-resize/column-resize.module.d.ts +14 -14
- package/components/column-resize/event-dispatcher.d.ts +31 -31
- package/components/column-resize/overlay-handle.component.d.ts +33 -33
- package/components/column-resize/resize-ref.d.ts +25 -25
- package/components/column-resize/resizing.store.d.ts +28 -28
- package/components/column-resize/selectors.d.ts +3 -3
- package/components/contextmenu/contextmenu.component.d.ts +22 -22
- package/components/conversion-hint/conversion-hint.component.d.ts +18 -18
- package/components/conversion-hint/conversion-hint.component.scss +11 -11
- package/components/element/element.component.d.ts +7 -7
- package/components/inline-toolbar/inline-toolbar.component.d.ts +26 -26
- package/components/nav-split-line/nav-split-line.component.d.ts +13 -13
- package/components/table-select/table-select.component.d.ts +20 -20
- package/components/table-select/table-select.component.scss +35 -35
- package/components/template/template.component.d.ts +15 -15
- package/components/text/text.component.d.ts +14 -14
- package/components/toolbar/toolbar.component.d.ts +64 -64
- package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +33 -33
- package/components/toolbar-group/toolbar-group.component.d.ts +33 -33
- package/components/toolbar-group/toolbar-group.component.scss +17 -17
- package/components/toolbar-item/toolbar-item.component.d.ts +17 -17
- package/constants/auto-format-rules.d.ts +2 -2
- package/constants/code.d.ts +9 -9
- package/constants/color-select.d.ts +14 -14
- package/constants/default.d.ts +9 -9
- package/constants/error.d.ts +5 -5
- package/constants/index.d.ts +5 -5
- package/constants/node-types.d.ts +99 -99
- package/constants/selector.d.ts +2 -2
- package/constants/toolbar.d.ts +17 -17
- package/core/create-plugin.d.ts +2 -2
- package/core/create-toolbar.d.ts +5 -5
- package/core/index.d.ts +4 -4
- package/core/toolbar-item/base-toolbar-item.d.ts +29 -29
- package/core/utils/combine-plugins.d.ts +2 -2
- package/core/utils/flatten-deep-plugins.d.ts +6 -6
- package/core/utils/get-plugin-options.d.ts +2 -2
- package/core/utils/get-plugin.d.ts +2 -2
- package/core/utils/get-plugins.d.ts +2 -2
- package/core/utils/index.d.ts +10 -10
- package/core/utils/merge-array.d.ts +1 -1
- package/core/utils/merge-deep-plugins.d.ts +2 -2
- package/core/utils/merge-options.d.ts +2 -2
- package/core/utils/nested-structure-by-key.d.ts +2 -2
- package/core/utils/plugins-by-key.d.ts +2 -2
- package/core/with-theia.d.ts +4 -4
- package/custom-types.d.ts +131 -131
- package/editor.component.d.ts +92 -92
- package/editor.module.d.ts +100 -98
- package/esm2020/components/color-select/color-select.component.mjs +108 -108
- package/esm2020/components/column-resize/column-resize-notifier.mjs +31 -31
- package/esm2020/components/column-resize/column-resize.directive.mjs +98 -98
- package/esm2020/components/column-resize/column-resize.module.mjs +32 -32
- package/esm2020/components/column-resize/event-dispatcher.mjs +55 -55
- package/esm2020/components/column-resize/overlay-handle.component.mjs +139 -139
- package/esm2020/components/column-resize/resize-ref.mjs +25 -25
- package/esm2020/components/column-resize/resizing.store.mjs +154 -154
- package/esm2020/components/column-resize/selectors.mjs +4 -4
- package/esm2020/components/contextmenu/contextmenu.component.mjs +61 -61
- package/esm2020/components/conversion-hint/conversion-hint.component.mjs +54 -54
- package/esm2020/components/element/element.component.mjs +22 -22
- package/esm2020/components/inline-toolbar/inline-toolbar.component.mjs +125 -125
- package/esm2020/components/nav-split-line/nav-split-line.component.mjs +36 -36
- package/esm2020/components/table-select/table-select.component.mjs +49 -49
- package/esm2020/components/template/template.component.mjs +62 -62
- package/esm2020/components/text/text.component.mjs +57 -57
- package/esm2020/components/toolbar/toolbar.component.mjs +241 -241
- package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +128 -128
- package/esm2020/components/toolbar-group/toolbar-group.component.mjs +110 -110
- package/esm2020/components/toolbar-item/toolbar-item.component.mjs +60 -60
- package/esm2020/constants/auto-format-rules.mjs +166 -166
- package/esm2020/constants/code.mjs +88 -88
- package/esm2020/constants/color-select.mjs +61 -61
- package/esm2020/constants/default.mjs +9 -9
- package/esm2020/constants/error.mjs +7 -7
- package/esm2020/constants/index.mjs +5 -5
- package/esm2020/constants/node-types.mjs +132 -132
- package/esm2020/constants/selector.mjs +3 -3
- package/esm2020/constants/toolbar.mjs +69 -69
- package/esm2020/core/create-plugin.mjs +4 -4
- package/esm2020/core/create-toolbar.mjs +55 -55
- package/esm2020/core/index.mjs +4 -4
- package/esm2020/core/toolbar-item/base-toolbar-item.mjs +89 -89
- package/esm2020/core/utils/combine-plugins.mjs +9 -9
- package/esm2020/core/utils/flatten-deep-plugins.mjs +18 -18
- package/esm2020/core/utils/get-plugin-options.mjs +2 -2
- package/esm2020/core/utils/get-plugin.mjs +1 -1
- package/esm2020/core/utils/get-plugins.mjs +3 -3
- package/esm2020/core/utils/index.mjs +10 -10
- package/esm2020/core/utils/merge-array.mjs +17 -17
- package/esm2020/core/utils/merge-deep-plugins.mjs +13 -13
- package/esm2020/core/utils/merge-options.mjs +19 -19
- package/esm2020/core/utils/nested-structure-by-key.mjs +10 -10
- package/esm2020/core/utils/plugins-by-key.mjs +9 -9
- package/esm2020/core/with-theia.mjs +22 -22
- package/esm2020/custom-types.mjs +1 -1
- package/esm2020/editor.component.mjs +430 -430
- package/esm2020/editor.module.mjs +207 -201
- package/esm2020/interfaces/auto-format.mjs +1 -1
- package/esm2020/interfaces/editor.mjs +24 -24
- package/esm2020/interfaces/element.mjs +1 -1
- package/esm2020/interfaces/image.mjs +2 -2
- package/esm2020/interfaces/index.mjs +8 -8
- package/esm2020/interfaces/plugins/index.mjs +4 -4
- package/esm2020/interfaces/plugins/no-infer.mjs +1 -1
- package/esm2020/interfaces/plugins/plugin-key.mjs +39 -39
- package/esm2020/interfaces/plugins/plugins.mjs +1 -1
- package/esm2020/interfaces/plugins/with-override.mjs +1 -1
- package/esm2020/interfaces/reset-block-type-plugin-options.mjs +2 -2
- package/esm2020/interfaces/toolbar.mjs +11 -11
- package/esm2020/interfaces/upload.mjs +1 -1
- package/esm2020/interfaces/utility/index.mjs +3 -3
- package/esm2020/interfaces/utility/nested-structure-by-key.mjs +1 -1
- package/esm2020/interfaces/utility/override-by-key.mjs +1 -1
- package/esm2020/interfaces/utility/types.mjs +1 -1
- package/esm2020/interfaces/valid-children-types.mjs +35 -35
- package/esm2020/interfaces/view-base.mjs +21 -21
- package/esm2020/pipes.mjs +42 -42
- package/esm2020/plugins/align/align.editor.mjs +46 -46
- package/esm2020/plugins/align/align.plugin.mjs +63 -63
- package/esm2020/plugins/autoformat/autoformat.plugin.mjs +108 -108
- package/esm2020/plugins/autoformat/transforms/auto-format-block.mjs +14 -14
- package/esm2020/plugins/autoformat/transforms/auto-format-inline.mjs +77 -77
- package/esm2020/plugins/blockquote/blockquote.component.mjs +21 -21
- package/esm2020/plugins/blockquote/blockquote.editor.mjs +19 -19
- package/esm2020/plugins/blockquote/blockquote.plugin.mjs +70 -70
- package/esm2020/plugins/code/code.component.mjs +240 -240
- package/esm2020/plugins/code/code.editor.mjs +47 -47
- package/esm2020/plugins/code/code.plugin.mjs +41 -41
- package/esm2020/plugins/color/color.editor.mjs +43 -43
- package/esm2020/plugins/color/color.plugin.mjs +27 -27
- package/esm2020/plugins/color/toolbar-item.component.mjs +78 -78
- package/esm2020/plugins/common/auto-insert-data..mjs +76 -76
- package/esm2020/plugins/common/block-card.plugin.mjs +286 -286
- package/esm2020/plugins/common/get-fragment.plugin.mjs +23 -23
- package/esm2020/plugins/common/history.plugin.mjs +30 -30
- package/esm2020/plugins/common/move-selection.plugin.mjs +89 -89
- package/esm2020/plugins/common/remove-empty.plugin.mjs +59 -59
- package/esm2020/plugins/common/remove-void.plugin.mjs +56 -56
- package/esm2020/plugins/common/reset-type.plugin.mjs +34 -34
- package/esm2020/plugins/common/transforms.plugin.mjs +17 -17
- package/esm2020/plugins/deserializers/deserialize-html.plugin.mjs +38 -38
- package/esm2020/plugins/deserializers/deserialize-md.plugin.mjs +121 -121
- package/esm2020/plugins/font-size/font-size.editor.mjs +97 -97
- package/esm2020/plugins/heading/heading.editor.mjs +53 -53
- package/esm2020/plugins/heading/heading.plugin.mjs +84 -84
- package/esm2020/plugins/hr/hr.component.mjs +40 -40
- package/esm2020/plugins/hr/hr.editor.mjs +7 -7
- package/esm2020/plugins/hr/hr.plugin.mjs +41 -41
- package/esm2020/plugins/image/image.component.mjs +385 -365
- package/esm2020/plugins/image/image.editor.mjs +57 -57
- package/esm2020/plugins/image/image.plugin.mjs +56 -56
- package/esm2020/plugins/indent/indent.editor.mjs +70 -70
- package/esm2020/plugins/indent/indent.plugin.mjs +57 -57
- package/esm2020/plugins/indent/on-keydown-indent.mjs +53 -53
- package/esm2020/plugins/index.mjs +70 -70
- package/esm2020/plugins/inline-code/inline-code.component.mjs +21 -21
- package/esm2020/plugins/inline-code/inline-code.editor.mjs +47 -47
- package/esm2020/plugins/inline-code/inline-code.plugin.mjs +65 -65
- package/esm2020/plugins/link/edit/link-edit.component.mjs +105 -105
- package/esm2020/plugins/link/hover/link-hover.component.mjs +36 -36
- package/esm2020/plugins/link/link.component.mjs +162 -162
- package/esm2020/plugins/link/link.editor.mjs +66 -66
- package/esm2020/plugins/link/link.plugin.mjs +58 -58
- package/esm2020/plugins/link/link.types.mjs +12 -12
- package/esm2020/plugins/list/components/bulleted-list.component.mjs +32 -32
- package/esm2020/plugins/list/components/list-item.component.mjs +92 -92
- package/esm2020/plugins/list/components/numbered-list.component.mjs +38 -38
- package/esm2020/plugins/list/list.editor.mjs +125 -125
- package/esm2020/plugins/list/list.plugin.mjs +285 -285
- package/esm2020/plugins/list/normalizers/get-list-normalizer.mjs +39 -39
- package/esm2020/plugins/list/normalizers/normalize-list-item.mjs +18 -18
- package/esm2020/plugins/list/normalizers/normalize-no.mjs +42 -42
- package/esm2020/plugins/list/on-key-down-list.mjs +32 -32
- package/esm2020/plugins/list/queries/get-list-item-entry.mjs +27 -27
- package/esm2020/plugins/list/queries/get-list-item-sublist.mjs +12 -12
- package/esm2020/plugins/list/queries/get-list-types.mjs +5 -5
- package/esm2020/plugins/list/queries/get-start-list-item.mjs +26 -26
- package/esm2020/plugins/list/queries/has-list-in-list-item.mjs +27 -27
- package/esm2020/plugins/list/queries/is-in-list.mjs +5 -5
- package/esm2020/plugins/list/queries/is-list-nested.mjs +10 -10
- package/esm2020/plugins/list/queries/is-list.mjs +5 -5
- package/esm2020/plugins/list/queries/is-node-type-list.mjs +4 -4
- package/esm2020/plugins/list/queries/is-selection-at-list-item-start.mjs +12 -12
- package/esm2020/plugins/list/queries/is-selection-in-same-list-item.mjs +16 -16
- package/esm2020/plugins/list/queries/is-single-list-item.mjs +9 -9
- package/esm2020/plugins/list/transforms/insert-list-data.mjs +71 -71
- package/esm2020/plugins/list/transforms/insert-list-item.mjs +72 -72
- package/esm2020/plugins/list/transforms/move-list-item-down.mjs +41 -41
- package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +42 -42
- package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +29 -29
- package/esm2020/plugins/list/transforms/move-list-item-up.mjs +77 -77
- package/esm2020/plugins/list/transforms/unwrap-list.mjs +9 -9
- package/esm2020/plugins/list/types.mjs +2 -2
- package/esm2020/plugins/mark/mark.editor.mjs +27 -27
- package/esm2020/plugins/mark/mark.plugin.mjs +104 -104
- package/esm2020/plugins/node-id/node-id.plugin.mjs +77 -77
- package/esm2020/plugins/normalizers/insert-paragraph-nodes.mjs +27 -27
- package/esm2020/plugins/normalizers/remove-empty-nodes.mjs +17 -17
- package/esm2020/plugins/normalizers/trailing-node.plugin.mjs +32 -32
- package/esm2020/plugins/paint-format/paint-format.editor.mjs +122 -122
- package/esm2020/plugins/public-api.mjs +15 -15
- package/esm2020/plugins/quick-insert/components/quick-insert.component.mjs +95 -95
- package/esm2020/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.mjs +79 -79
- package/esm2020/plugins/quick-insert/quick-insert.editor.mjs +52 -52
- package/esm2020/plugins/quick-insert/quick-insert.plugin.mjs +73 -73
- package/esm2020/plugins/soft-break/soft-break.plugin.mjs +35 -35
- package/esm2020/plugins/soft-break/soft-break.types.mjs +1 -1
- package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +99 -99
- package/esm2020/plugins/table/components/row/row.component.mjs +46 -46
- package/esm2020/plugins/table/components/table.component.mjs +460 -460
- package/esm2020/plugins/table/components/td/td.component.mjs +696 -696
- package/esm2020/plugins/table/components/toolbar/table-options.component.mjs +70 -70
- package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +158 -158
- package/esm2020/plugins/table/table.editor.mjs +182 -182
- package/esm2020/plugins/table/table.plugin.mjs +426 -426
- package/esm2020/plugins/table/table.service.mjs +102 -102
- package/esm2020/plugins/table/table.store.mjs +483 -483
- package/esm2020/plugins/table/table.types.mjs +33 -33
- package/esm2020/plugins/table/toolbar-item.component.mjs +60 -60
- package/esm2020/plugins/table/transforms/clear-cell.mjs +14 -14
- package/esm2020/plugins/table/transforms/clear-table-node.mjs +27 -27
- package/esm2020/plugins/table/transforms/insert-column.mjs +57 -57
- package/esm2020/plugins/table/transforms/insert-row.mjs +42 -42
- package/esm2020/plugins/table/transforms/insert-table.mjs +14 -14
- package/esm2020/plugins/table/transforms/remove-column.mjs +51 -51
- package/esm2020/plugins/table/transforms/remove-row.mjs +50 -50
- package/esm2020/plugins/table/transforms/remove-table.mjs +49 -49
- package/esm2020/plugins/table/utils/add-columns.mjs +28 -28
- package/esm2020/plugins/table/utils/calc-anchor-position.mjs +24 -24
- package/esm2020/plugins/table/utils/calc-span.mjs +72 -72
- package/esm2020/plugins/table/utils/create-cell.mjs +19 -19
- package/esm2020/plugins/table/utils/create-row.mjs +12 -12
- package/esm2020/plugins/table/utils/create-table.mjs +13 -13
- package/esm2020/plugins/table/utils/get-base-height.mjs +22 -22
- package/esm2020/plugins/table/utils/get-select-cell-node.mjs +19 -19
- package/esm2020/plugins/table/utils/index.mjs +8 -8
- package/esm2020/plugins/table/utils/is-range-in-table.mjs +16 -16
- package/esm2020/plugins/table/utils/is-selection-in-table.mjs +11 -11
- package/esm2020/plugins/table/utils/is-virtual-key.mjs +12 -12
- package/esm2020/plugins/table/utils/merge-cell.mjs +90 -90
- package/esm2020/plugins/table/utils/next-path.mjs +5 -5
- package/esm2020/plugins/table/utils/normalize-table.mjs +30 -30
- package/esm2020/plugins/table/utils/remove-columns.mjs +23 -23
- package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +15 -15
- package/esm2020/plugins/table/utils/split-cell.mjs +31 -31
- package/esm2020/plugins/table/utils/table-position.mjs +242 -242
- package/esm2020/plugins/todo-item/todo-item.component.mjs +53 -53
- package/esm2020/plugins/todo-item/todo-item.editor.mjs +31 -31
- package/esm2020/plugins/todo-item/todo-item.plugin.mjs +78 -78
- package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +82 -82
- package/esm2020/plugins/vertical-align/vertical-align.editor.mjs +54 -54
- package/esm2020/public-api.mjs +23 -23
- package/esm2020/queries/anchor-block-entry.mjs +13 -13
- package/esm2020/queries/anchor-block.mjs +6 -6
- package/esm2020/queries/anchor-inline-entry.mjs +10 -10
- package/esm2020/queries/find-descendant.mjs +47 -47
- package/esm2020/queries/find-node.mjs +45 -45
- package/esm2020/queries/find-path.mjs +28 -28
- package/esm2020/queries/get-above-by-type.mjs +13 -13
- package/esm2020/queries/get-above.mjs +9 -9
- package/esm2020/queries/get-anchor-block-entry.mjs +8 -8
- package/esm2020/queries/get-block-above.mjs +10 -10
- package/esm2020/queries/get-block-card-above.mjs +10 -10
- package/esm2020/queries/get-block-card-cursor.mjs +5 -5
- package/esm2020/queries/get-container-blocks.mjs +11 -11
- package/esm2020/queries/get-directly-parent.mjs +11 -11
- package/esm2020/queries/get-insert-elements-path.mjs +43 -43
- package/esm2020/queries/get-last-child-path.mjs +9 -9
- package/esm2020/queries/get-last-node.mjs +17 -17
- package/esm2020/queries/get-next-sibling-nodes.mjs +17 -17
- package/esm2020/queries/get-node.mjs +10 -10
- package/esm2020/queries/get-nodes-by-type.mjs +15 -15
- package/esm2020/queries/get-nodes.mjs +7 -7
- package/esm2020/queries/get-parent.mjs +12 -12
- package/esm2020/queries/get-plain-text.mjs +16 -16
- package/esm2020/queries/get-plugin-by-toolbar.mjs +12 -12
- package/esm2020/queries/get-point-before.mjs +61 -61
- package/esm2020/queries/get-point-from-location.mjs +15 -15
- package/esm2020/queries/get-previous-path.mjs +9 -9
- package/esm2020/queries/get-rang-from-block-start.mjs +16 -16
- package/esm2020/queries/get-range-before.mjs +17 -17
- package/esm2020/queries/get-selection-marks.mjs +18 -18
- package/esm2020/queries/get-selection-nodes-by-type.mjs +29 -29
- package/esm2020/queries/get-text.mjs +9 -9
- package/esm2020/queries/get-toolbar-disabled.mjs +12 -12
- package/esm2020/queries/index.mjs +58 -58
- package/esm2020/queries/is-across-blocks.mjs +7 -7
- package/esm2020/queries/is-ancestor-empty.mjs +6 -6
- package/esm2020/queries/is-ancestor.mjs +3 -3
- package/esm2020/queries/is-block-above-empty.mjs +11 -11
- package/esm2020/queries/is-block-active.mjs +7 -7
- package/esm2020/queries/is-block-card-cursor.mjs +4 -4
- package/esm2020/queries/is-block-text-empty-after-selection.mjs +31 -31
- package/esm2020/queries/is-collapsed.mjs +7 -7
- package/esm2020/queries/is-contain-nested-type.mjs +28 -28
- package/esm2020/queries/is-container-type.mjs +2 -2
- package/esm2020/queries/is-descendant.mjs +3 -3
- package/esm2020/queries/is-empty-content.mjs +14 -14
- package/esm2020/queries/is-empty-paragraph-by-path.mjs +7 -7
- package/esm2020/queries/is-empty-paragraph.mjs +11 -11
- package/esm2020/queries/is-first-child.mjs +5 -5
- package/esm2020/queries/is-include-types.mjs +11 -11
- package/esm2020/queries/is-node-type-in.mjs +9 -9
- package/esm2020/queries/is-node-type.mjs +15 -15
- package/esm2020/queries/is-paragraph.mjs +9 -9
- package/esm2020/queries/is-point-at-root.mjs +2 -2
- package/esm2020/queries/is-range-across-blocks.mjs +22 -22
- package/esm2020/queries/is-range-at-root.mjs +3 -3
- package/esm2020/queries/is-start.mjs +6 -6
- package/esm2020/queries/some-node.mjs +9 -9
- package/esm2020/services/color-select.service.mjs +49 -49
- package/esm2020/services/context.service.mjs +58 -58
- package/esm2020/services/table-contextmenu.service.mjs +189 -189
- package/esm2020/services/toolbar.service.mjs +47 -47
- package/esm2020/shortcuts/index.mjs +5 -5
- package/esm2020/shortcuts/mark.mjs +24 -24
- package/esm2020/transforms/apply-deep-to-nodes.mjs +21 -21
- package/esm2020/transforms/clear-marks.mjs +23 -23
- package/esm2020/transforms/close-conversion-hint.mjs +8 -8
- package/esm2020/transforms/delete-element.mjs +11 -11
- package/esm2020/transforms/handle-continual-delete-backward.mjs +17 -17
- package/esm2020/transforms/handle-continual-insert-break.mjs +19 -19
- package/esm2020/transforms/index.mjs +18 -18
- package/esm2020/transforms/insert-elements.mjs +33 -33
- package/esm2020/transforms/insert-paragraph.mjs +6 -6
- package/esm2020/transforms/merge-deep-to-nodes.mjs +8 -8
- package/esm2020/transforms/move-children.mjs +21 -21
- package/esm2020/transforms/on-keydown-reset-block-type.mjs +22 -22
- package/esm2020/transforms/set-end-selection.mjs +10 -10
- package/esm2020/transforms/set-marks.mjs +9 -9
- package/esm2020/transforms/set-node.mjs +5 -5
- package/esm2020/transforms/split-node.mjs +31 -31
- package/esm2020/transforms/un-hang-range.mjs +11 -11
- package/esm2020/transforms/un-wrap.mjs +11 -11
- package/esm2020/transforms/unwrap-nodes-by-type.mjs +14 -14
- package/esm2020/utils/auto-focus.mjs +13 -13
- package/esm2020/utils/auto-scroll-view.mjs +24 -24
- package/esm2020/utils/cast-array.mjs +7 -7
- package/esm2020/utils/common.mjs +2 -2
- package/esm2020/utils/create-empty-paragraph.mjs +14 -14
- package/esm2020/utils/data-transform.mjs +48 -48
- package/esm2020/utils/dom.mjs +46 -46
- package/esm2020/utils/editor-uuid.mjs +8 -8
- package/esm2020/utils/fragment.mjs +65 -65
- package/esm2020/utils/get-all-nodes-by-type.mjs +5 -0
- package/esm2020/utils/get-editable-element-height.mjs +6 -6
- package/esm2020/utils/get-toolbar-class.mjs +6 -6
- package/esm2020/utils/id-creator.mjs +11 -11
- package/esm2020/utils/index.mjs +13 -13
- package/esm2020/utils/is-clean-empty-paragraph.mjs +36 -36
- package/esm2020/utils/is-inline.mjs +8 -8
- package/esm2020/utils/lodash.mjs +2 -2
- package/esm2020/utils/match.mjs +32 -32
- package/esm2020/utils/merge-element-options.mjs +19 -19
- package/esm2020/utils/weak-maps.mjs +3 -3
- package/esm2020/worktile-theia.mjs +4 -4
- package/fesm2015/worktile-theia.mjs +13131 -13097
- package/fesm2015/worktile-theia.mjs.map +1 -1
- package/fesm2020/worktile-theia.mjs +13150 -13120
- package/fesm2020/worktile-theia.mjs.map +1 -1
- package/interfaces/auto-format.d.ts +64 -64
- package/interfaces/editor.d.ts +146 -146
- package/interfaces/element.d.ts +9 -9
- package/interfaces/image.d.ts +25 -25
- package/interfaces/index.d.ts +8 -8
- package/interfaces/plugins/index.d.ts +4 -4
- package/interfaces/plugins/no-infer.d.ts +1 -1
- package/interfaces/plugins/plugin-key.d.ts +48 -48
- package/interfaces/plugins/plugins.d.ts +45 -45
- package/interfaces/plugins/with-override.d.ts +7 -7
- package/interfaces/reset-block-type-plugin-options.d.ts +23 -23
- package/interfaces/toolbar.d.ts +64 -64
- package/interfaces/upload.d.ts +11 -11
- package/interfaces/utility/index.d.ts +3 -3
- package/interfaces/utility/nested-structure-by-key.d.ts +3 -3
- package/interfaces/utility/override-by-key.d.ts +3 -3
- package/interfaces/utility/types.d.ts +1 -1
- package/interfaces/valid-children-types.d.ts +9 -9
- package/interfaces/view-base.d.ts +9 -9
- package/package.json +5 -4
- package/pipes.d.ts +16 -16
- package/plugins/align/align.editor.d.ts +7 -7
- package/plugins/align/align.plugin.d.ts +2 -2
- package/plugins/autoformat/autoformat.plugin.d.ts +6 -6
- package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -5
- package/plugins/autoformat/transforms/auto-format-inline.d.ts +9 -9
- package/plugins/blockquote/blockquote.component.d.ts +11 -11
- package/plugins/blockquote/blockquote.editor.d.ts +4 -4
- package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
- package/plugins/code/code.component.d.ts +65 -65
- package/plugins/code/code.editor.d.ts +8 -8
- package/plugins/code/code.plugin.d.ts +2 -2
- package/plugins/color/color.editor.d.ts +8 -8
- package/plugins/color/color.plugin.d.ts +1 -1
- package/plugins/color/toolbar-item.component.d.ts +16 -16
- package/plugins/common/auto-insert-data..d.ts +2 -2
- package/plugins/common/block-card.plugin.d.ts +2 -2
- package/plugins/common/get-fragment.plugin.d.ts +6 -6
- package/plugins/common/history.plugin.d.ts +9 -9
- package/plugins/common/move-selection.plugin.d.ts +2 -2
- package/plugins/common/remove-empty.plugin.d.ts +2 -2
- package/plugins/common/remove-void.plugin.d.ts +2 -2
- package/plugins/common/reset-type.plugin.d.ts +2 -2
- package/plugins/common/transforms.plugin.d.ts +8 -8
- package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
- package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
- package/plugins/font-size/font-size.editor.d.ts +10 -10
- package/plugins/heading/heading.editor.d.ts +9 -9
- package/plugins/heading/heading.plugin.d.ts +7 -7
- package/plugins/hr/hr.component.d.ts +12 -12
- package/plugins/hr/hr.editor.d.ts +4 -4
- package/plugins/hr/hr.plugin.d.ts +2 -2
- package/plugins/image/image.component.d.ts +77 -74
- package/plugins/image/image.editor.d.ts +12 -12
- package/plugins/image/image.plugin.d.ts +7 -7
- package/plugins/indent/indent.editor.d.ts +10 -10
- package/plugins/indent/indent.plugin.d.ts +8 -8
- package/plugins/indent/on-keydown-indent.d.ts +3 -3
- package/plugins/index.d.ts +1 -1
- package/plugins/inline-code/inline-code.component.d.ts +9 -9
- package/plugins/inline-code/inline-code.editor.d.ts +7 -7
- package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
- package/plugins/link/edit/link-edit.component.d.ts +36 -36
- package/plugins/link/hover/link-hover.component.d.ts +15 -15
- package/plugins/link/link.component.d.ts +39 -39
- package/plugins/link/link.editor.d.ts +7 -7
- package/plugins/link/link.plugin.d.ts +2 -2
- package/plugins/link/link.types.d.ts +9 -9
- package/plugins/list/components/bulleted-list.component.d.ts +15 -15
- package/plugins/list/components/list-item.component.d.ts +20 -20
- package/plugins/list/components/numbered-list.component.d.ts +16 -16
- package/plugins/list/list.editor.d.ts +12 -12
- package/plugins/list/list.plugin.d.ts +3 -3
- package/plugins/list/normalizers/get-list-normalizer.d.ts +6 -6
- package/plugins/list/normalizers/normalize-list-item.d.ts +5 -5
- package/plugins/list/normalizers/normalize-no.d.ts +2 -2
- package/plugins/list/on-key-down-list.d.ts +2 -2
- package/plugins/list/queries/get-list-item-entry.d.ts +10 -10
- package/plugins/list/queries/get-list-item-sublist.d.ts +6 -6
- package/plugins/list/queries/get-list-types.d.ts +2 -2
- package/plugins/list/queries/get-start-list-item.d.ts +8 -8
- package/plugins/list/queries/has-list-in-list-item.d.ts +15 -15
- package/plugins/list/queries/is-in-list.d.ts +2 -2
- package/plugins/list/queries/is-list-nested.d.ts +5 -5
- package/plugins/list/queries/is-list.d.ts +2 -2
- package/plugins/list/queries/is-node-type-list.d.ts +2 -2
- package/plugins/list/queries/is-selection-at-list-item-start.d.ts +5 -5
- package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -5
- package/plugins/list/queries/is-single-list-item.d.ts +5 -5
- package/plugins/list/transforms/insert-list-data.d.ts +12 -12
- package/plugins/list/transforms/insert-list-item.d.ts +5 -5
- package/plugins/list/transforms/move-list-item-down.d.ts +6 -6
- package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +20 -20
- package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +19 -19
- package/plugins/list/transforms/move-list-item-up.d.ts +10 -10
- package/plugins/list/transforms/unwrap-list.d.ts +2 -2
- package/plugins/list/types.d.ts +7 -7
- package/plugins/mark/mark.editor.d.ts +8 -8
- package/plugins/mark/mark.plugin.d.ts +3 -3
- package/plugins/node-id/node-id.plugin.d.ts +8 -8
- package/plugins/normalizers/insert-paragraph-nodes.d.ts +7 -7
- package/plugins/normalizers/remove-empty-nodes.d.ts +7 -7
- package/plugins/normalizers/trailing-node.plugin.d.ts +9 -9
- package/plugins/paint-format/paint-format.editor.d.ts +8 -8
- package/plugins/public-api.d.ts +15 -15
- package/plugins/quick-insert/components/quick-insert.component.d.ts +28 -28
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +28 -28
- package/plugins/quick-insert/quick-insert.editor.d.ts +7 -7
- package/plugins/quick-insert/quick-insert.plugin.d.ts +10 -10
- package/plugins/soft-break/soft-break.plugin.d.ts +5 -5
- package/plugins/soft-break/soft-break.types.d.ts +8 -8
- package/plugins/table/components/insert-mark/insert-mark.component.d.ts +24 -24
- package/plugins/table/components/row/row.component.d.ts +14 -14
- package/plugins/table/components/table.component.d.ts +79 -79
- package/plugins/table/components/td/td.component.d.ts +95 -95
- package/plugins/table/components/toolbar/table-options.component.d.ts +20 -20
- package/plugins/table/components/toolbar/table-toolbar.component.d.ts +38 -38
- package/plugins/table/table.editor.d.ts +25 -25
- package/plugins/table/table.plugin.d.ts +3 -3
- package/plugins/table/table.service.d.ts +30 -30
- package/plugins/table/table.store.d.ts +71 -71
- package/plugins/table/table.types.d.ts +67 -67
- package/plugins/table/toolbar-item.component.d.ts +17 -17
- package/plugins/table/transforms/clear-cell.d.ts +6 -6
- package/plugins/table/transforms/clear-table-node.d.ts +6 -6
- package/plugins/table/transforms/insert-column.d.ts +12 -12
- package/plugins/table/transforms/insert-row.d.ts +6 -6
- package/plugins/table/transforms/insert-table.d.ts +6 -6
- package/plugins/table/transforms/remove-column.d.ts +3 -3
- package/plugins/table/transforms/remove-row.d.ts +3 -3
- package/plugins/table/transforms/remove-table.d.ts +3 -3
- package/plugins/table/utils/add-columns.d.ts +2 -2
- package/plugins/table/utils/calc-anchor-position.d.ts +6 -6
- package/plugins/table/utils/calc-span.d.ts +11 -11
- package/plugins/table/utils/create-cell.d.ts +16 -16
- package/plugins/table/utils/create-row.d.ts +7 -7
- package/plugins/table/utils/create-table.d.ts +7 -7
- package/plugins/table/utils/get-base-height.d.ts +9 -9
- package/plugins/table/utils/get-select-cell-node.d.ts +7 -7
- package/plugins/table/utils/index.d.ts +7 -7
- package/plugins/table/utils/is-range-in-table.d.ts +6 -6
- package/plugins/table/utils/is-selection-in-table.d.ts +6 -6
- package/plugins/table/utils/is-virtual-key.d.ts +1 -1
- package/plugins/table/utils/merge-cell.d.ts +21 -21
- package/plugins/table/utils/next-path.d.ts +2 -2
- package/plugins/table/utils/normalize-table.d.ts +2 -2
- package/plugins/table/utils/remove-columns.d.ts +2 -2
- package/plugins/table/utils/set-menu-cell-invisibility.d.ts +3 -3
- package/plugins/table/utils/split-cell.d.ts +4 -4
- package/plugins/table/utils/table-position.d.ts +97 -97
- package/plugins/todo-item/todo-item.component.d.ts +21 -21
- package/plugins/todo-item/todo-item.editor.d.ts +5 -5
- package/plugins/todo-item/todo-item.plugin.d.ts +5 -5
- package/plugins/vertical-align/toolbar-item.component.d.ts +25 -25
- package/plugins/vertical-align/vertical-align.editor.d.ts +7 -7
- package/public-api.d.ts +20 -20
- package/queries/anchor-block-entry.d.ts +2 -2
- package/queries/anchor-block.d.ts +2 -2
- package/queries/anchor-inline-entry.d.ts +2 -2
- package/queries/find-descendant.d.ts +10 -10
- package/queries/find-node.d.ts +15 -15
- package/queries/find-path.d.ts +6 -6
- package/queries/get-above-by-type.d.ts +6 -6
- package/queries/get-above.d.ts +6 -6
- package/queries/get-anchor-block-entry.d.ts +2 -2
- package/queries/get-block-above.d.ts +7 -7
- package/queries/get-block-card-above.d.ts +7 -7
- package/queries/get-block-card-cursor.d.ts +2 -2
- package/queries/get-container-blocks.d.ts +2 -2
- package/queries/get-directly-parent.d.ts +2 -2
- package/queries/get-insert-elements-path.d.ts +7 -7
- package/queries/get-last-child-path.d.ts +6 -6
- package/queries/get-last-node.d.ts +2 -2
- package/queries/get-next-sibling-nodes.d.ts +7 -7
- package/queries/get-node.d.ts +2 -2
- package/queries/get-nodes-by-type.d.ts +6 -6
- package/queries/get-nodes.d.ts +4 -4
- package/queries/get-parent.d.ts +7 -7
- package/queries/get-plain-text.d.ts +6 -6
- package/queries/get-plugin-by-toolbar.d.ts +3 -3
- package/queries/get-point-before.d.ts +38 -38
- package/queries/get-point-from-location.d.ts +5 -5
- package/queries/get-previous-path.d.ts +2 -2
- package/queries/get-rang-from-block-start.d.ts +9 -9
- package/queries/get-range-before.d.ts +7 -7
- package/queries/get-selection-marks.d.ts +12 -12
- package/queries/get-selection-nodes-by-type.d.ts +3 -3
- package/queries/get-text.d.ts +6 -6
- package/queries/get-toolbar-disabled.d.ts +4 -4
- package/queries/index.d.ts +58 -58
- package/queries/is-across-blocks.d.ts +2 -2
- package/queries/is-ancestor-empty.d.ts +5 -5
- package/queries/is-ancestor.d.ts +2 -2
- package/queries/is-block-above-empty.d.ts +5 -5
- package/queries/is-block-active.d.ts +3 -3
- package/queries/is-block-card-cursor.d.ts +2 -2
- package/queries/is-block-text-empty-after-selection.d.ts +7 -7
- package/queries/is-collapsed.d.ts +6 -6
- package/queries/is-contain-nested-type.d.ts +2 -2
- package/queries/is-container-type.d.ts +2 -2
- package/queries/is-descendant.d.ts +2 -2
- package/queries/is-empty-content.d.ts +2 -2
- package/queries/is-empty-paragraph-by-path.d.ts +2 -2
- package/queries/is-empty-paragraph.d.ts +2 -2
- package/queries/is-first-child.d.ts +5 -5
- package/queries/is-include-types.d.ts +3 -3
- package/queries/is-node-type-in.d.ts +6 -6
- package/queries/is-node-type.d.ts +6 -6
- package/queries/is-paragraph.d.ts +2 -2
- package/queries/is-point-at-root.d.ts +2 -2
- package/queries/is-range-across-blocks.d.ts +8 -8
- package/queries/is-range-at-root.d.ts +2 -2
- package/queries/is-start.d.ts +5 -5
- package/queries/some-node.d.ts +7 -7
- package/services/color-select.service.d.ts +20 -20
- package/services/context.service.d.ts +49 -49
- package/services/table-contextmenu.service.d.ts +25 -25
- package/services/toolbar.service.d.ts +9 -9
- package/shortcuts/index.d.ts +2 -2
- package/shortcuts/mark.d.ts +2 -2
- package/transforms/apply-deep-to-nodes.d.ts +12 -12
- package/transforms/clear-marks.d.ts +2 -2
- package/transforms/close-conversion-hint.d.ts +2 -2
- package/transforms/delete-element.d.ts +2 -2
- package/transforms/handle-continual-delete-backward.d.ts +3 -3
- package/transforms/handle-continual-insert-break.d.ts +3 -3
- package/transforms/index.d.ts +18 -18
- package/transforms/insert-elements.d.ts +2 -2
- package/transforms/insert-paragraph.d.ts +2 -2
- package/transforms/merge-deep-to-nodes.d.ts +5 -5
- package/transforms/move-children.d.ts +24 -24
- package/transforms/on-keydown-reset-block-type.d.ts +3 -3
- package/transforms/set-end-selection.d.ts +2 -2
- package/transforms/set-marks.d.ts +12 -12
- package/transforms/set-node.d.ts +2 -2
- package/transforms/split-node.d.ts +3 -3
- package/transforms/un-hang-range.d.ts +10 -10
- package/transforms/un-wrap.d.ts +3 -3
- package/transforms/unwrap-nodes-by-type.d.ts +6 -6
- package/utils/auto-focus.d.ts +2 -2
- package/utils/auto-scroll-view.d.ts +6 -6
- package/utils/cast-array.d.ts +1 -1
- package/utils/common.d.ts +2 -2
- package/utils/create-empty-paragraph.d.ts +2 -2
- package/utils/data-transform.d.ts +6 -6
- package/utils/dom.d.ts +10 -10
- package/utils/editor-uuid.d.ts +3 -3
- package/utils/fragment.d.ts +10 -10
- package/utils/get-all-nodes-by-type.d.ts +3 -0
- package/utils/get-editable-element-height.d.ts +2 -2
- package/utils/get-toolbar-class.d.ts +2 -2
- package/utils/id-creator.d.ts +1 -1
- package/utils/index.d.ts +13 -13
- package/utils/is-clean-empty-paragraph.d.ts +9 -9
- package/utils/is-inline.d.ts +2 -2
- package/utils/lodash.d.ts +2 -2
- package/utils/match.d.ts +18 -18
- package/utils/merge-element-options.d.ts +2 -2
- package/utils/weak-maps.d.ts +5 -5
- package/worktile-theia.d.ts +5 -5
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostListener, Input } from '@angular/core';
|
|
2
|
-
import * as TheTransforms from '../../transforms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "ngx-tethys/alert";
|
|
5
|
-
export class TheConversionHintComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.duration = 10000;
|
|
8
|
-
this.pauseOnHover = true;
|
|
9
|
-
}
|
|
10
|
-
mouseenter() {
|
|
11
|
-
if (this.pauseOnHover) {
|
|
12
|
-
this.clearCloseTimer();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
mouseleave() {
|
|
16
|
-
if (this.pauseOnHover) {
|
|
17
|
-
this.creatCloseTimer();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.creatCloseTimer();
|
|
22
|
-
}
|
|
23
|
-
ngOnDestroy() {
|
|
24
|
-
this.clearCloseTimer();
|
|
25
|
-
}
|
|
26
|
-
creatCloseTimer() {
|
|
27
|
-
this.closeTimer = setInterval(() => {
|
|
28
|
-
clearInterval(this.closeTimer);
|
|
29
|
-
TheTransforms.closeConversionHint(this.editor);
|
|
30
|
-
}, this.duration);
|
|
31
|
-
}
|
|
32
|
-
clearCloseTimer() {
|
|
33
|
-
clearInterval(this.closeTimer);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
TheConversionHintComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheConversionHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
TheConversionHintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheConversionHintComponent, selector: "the-conversion-hint", inputs: { editor: "editor", conversion: "conversion" }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, classAttribute: "the-conversion-hint" }, ngImport: i0, template: "<ng-container>\
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheConversionHintComponent, decorators: [{
|
|
39
|
-
type: Component,
|
|
40
|
-
args: [{ selector: 'the-conversion-hint', host: {
|
|
41
|
-
class: 'the-conversion-hint'
|
|
42
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\
|
|
43
|
-
}], propDecorators: { editor: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], conversion: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], mouseenter: [{
|
|
48
|
-
type: HostListener,
|
|
49
|
-
args: ['mouseenter']
|
|
50
|
-
}], mouseleave: [{
|
|
51
|
-
type: HostListener,
|
|
52
|
-
args: ['mouseleave']
|
|
53
|
-
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as TheTransforms from '../../transforms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-tethys/alert";
|
|
5
|
+
export class TheConversionHintComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.duration = 10000;
|
|
8
|
+
this.pauseOnHover = true;
|
|
9
|
+
}
|
|
10
|
+
mouseenter() {
|
|
11
|
+
if (this.pauseOnHover) {
|
|
12
|
+
this.clearCloseTimer();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
mouseleave() {
|
|
16
|
+
if (this.pauseOnHover) {
|
|
17
|
+
this.creatCloseTimer();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.creatCloseTimer();
|
|
22
|
+
}
|
|
23
|
+
ngOnDestroy() {
|
|
24
|
+
this.clearCloseTimer();
|
|
25
|
+
}
|
|
26
|
+
creatCloseTimer() {
|
|
27
|
+
this.closeTimer = setInterval(() => {
|
|
28
|
+
clearInterval(this.closeTimer);
|
|
29
|
+
TheTransforms.closeConversionHint(this.editor);
|
|
30
|
+
}, this.duration);
|
|
31
|
+
}
|
|
32
|
+
clearCloseTimer() {
|
|
33
|
+
clearInterval(this.closeTimer);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
TheConversionHintComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheConversionHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
TheConversionHintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheConversionHintComponent, selector: "the-conversion-hint", inputs: { editor: "editor", conversion: "conversion" }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, classAttribute: "the-conversion-hint" }, ngImport: i0, template: "<ng-container>\n <thy-alert\n thyType=\"primary-weak\"\n thyIcon=\"info-circle-fill\"\n thyCloseable=\"true\"\n thyMessage=\"\u68C0\u6D4B\u5230\u7C98\u8D34\u5185\u5BB9\u7B26\u5408Markdown\u8BED\u6CD5\"\n >\n <ng-template #operation>\n <a href=\"javascript:;\" thyAlertActionItem (click)=\"conversion()\">\n \u7ACB\u5373\u8F6C\u6362\n </a>\n </ng-template>\n </thy-alert>\n</ng-container>\n", components: [{ type: i1.ThyAlertComponent, selector: "thy-alert", inputs: ["thyType", "thyMessage", "thyIcon", "thyCloseable"] }], directives: [{ type: i1.ThyAlertActionItemDirective, selector: "[thyAlertActionItem]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheConversionHintComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'the-conversion-hint', host: {
|
|
41
|
+
class: 'the-conversion-hint'
|
|
42
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <thy-alert\n thyType=\"primary-weak\"\n thyIcon=\"info-circle-fill\"\n thyCloseable=\"true\"\n thyMessage=\"\u68C0\u6D4B\u5230\u7C98\u8D34\u5185\u5BB9\u7B26\u5408Markdown\u8BED\u6CD5\"\n >\n <ng-template #operation>\n <a href=\"javascript:;\" thyAlertActionItem (click)=\"conversion()\">\n \u7ACB\u5373\u8F6C\u6362\n </a>\n </ng-template>\n </thy-alert>\n</ng-container>\n" }]
|
|
43
|
+
}], propDecorators: { editor: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], conversion: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], mouseenter: [{
|
|
48
|
+
type: HostListener,
|
|
49
|
+
args: ['mouseenter']
|
|
50
|
+
}], mouseleave: [{
|
|
51
|
+
type: HostListener,
|
|
52
|
+
args: ['mouseleave']
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi1oaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udmVyc2lvbi1oaW50L2NvbnZlcnNpb24taGludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7OztBQVVsRCxNQUFNLE9BQU8sMEJBQTBCO0lBUnZDO1FBYUksYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksQ0FBQztLQWlDdkI7SUE5QitCLFVBQVU7UUFDbEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFMkIsVUFBVTtRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWU7UUFDWCxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O3VIQXRDUSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwrT0NadkMsK2RBY0E7MkZERmEsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNJLHFCQUFxQixRQUV6Qjt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3FCQUMvQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTXNCLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWTtnQkFNRSxVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtY29udmVyc2lvbi1oaW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvbnZlcnNpb24taGludC5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoZS1jb252ZXJzaW9uLWhpbnQnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaGVDb252ZXJzaW9uSGludENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBlZGl0b3I6IEVkaXRvcjtcblxuICAgIEBJbnB1dCgpIGNvbnZlcnNpb246ICgpID0+IHZvaWQ7XG5cbiAgICBkdXJhdGlvbiA9IDEwMDAwO1xuICAgIHBhdXNlT25Ib3ZlciA9IHRydWU7XG4gICAgY2xvc2VUaW1lcjogYW55O1xuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG1vdXNlZW50ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhdXNlT25Ib3Zlcikge1xuICAgICAgICAgICAgdGhpcy5jbGVhckNsb3NlVGltZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBtb3VzZWxlYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5wYXVzZU9uSG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRDbG9zZVRpbWVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jcmVhdENsb3NlVGltZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhckNsb3NlVGltZXIoKTtcbiAgICB9XG5cbiAgICBjcmVhdENsb3NlVGltZXIoKSB7XG4gICAgICAgIHRoaXMuY2xvc2VUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jbG9zZVRpbWVyKTtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludCh0aGlzLmVkaXRvcik7XG4gICAgICAgIH0sIHRoaXMuZHVyYXRpb24pO1xuICAgIH1cblxuICAgIGNsZWFyQ2xvc2VUaW1lcigpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmNsb3NlVGltZXIpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gICAgPHRoeS1hbGVydFxuICAgICAgICB0aHlUeXBlPVwicHJpbWFyeS13ZWFrXCJcbiAgICAgICAgdGh5SWNvbj1cImluZm8tY2lyY2xlLWZpbGxcIlxuICAgICAgICB0aHlDbG9zZWFibGU9XCJ0cnVlXCJcbiAgICAgICAgdGh5TWVzc2FnZT1cIuajgOa1i+WIsOeymOi0tOWGheWuueespuWQiE1hcmtkb3du6K+t5rOVXCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb3BlcmF0aW9uPlxuICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIHRoeUFsZXJ0QWN0aW9uSXRlbSAoY2xpY2spPVwiY29udmVyc2lvbigpXCI+XG4gICAgICAgICAgICAgICAg56uL5Y2z6L2s5o2iXG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC90aHktYWxlcnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';
|
|
2
|
-
import { TheBaseElementComponent } from '../../interfaces/view-base';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "slate-angular";
|
|
5
|
-
export class TheDefaultElementComponent extends TheBaseElementComponent {
|
|
6
|
-
get indent() {
|
|
7
|
-
return this.element?.indent;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
TheDefaultElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheDefaultElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
-
TheDefaultElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheDefaultElementComponent, selector: "[theDefaultElement]", host: { properties: { "attr.the-indent": "this.indent" } }, usesInheritance: true, ngImport: i0, template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>', isInline: true, components: [{ type: i1.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheDefaultElementComponent, decorators: [{
|
|
13
|
-
type: Component,
|
|
14
|
-
args: [{
|
|
15
|
-
selector: '[theDefaultElement]',
|
|
16
|
-
template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>',
|
|
17
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
18
|
-
}]
|
|
19
|
-
}], propDecorators: { indent: [{
|
|
20
|
-
type: HostBinding,
|
|
21
|
-
args: ['attr.the-indent']
|
|
22
|
-
}] } });
|
|
1
|
+
import { Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';
|
|
2
|
+
import { TheBaseElementComponent } from '../../interfaces/view-base';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "slate-angular";
|
|
5
|
+
export class TheDefaultElementComponent extends TheBaseElementComponent {
|
|
6
|
+
get indent() {
|
|
7
|
+
return this.element?.indent;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
TheDefaultElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheDefaultElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
TheDefaultElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheDefaultElementComponent, selector: "[theDefaultElement]", host: { properties: { "attr.the-indent": "this.indent" } }, usesInheritance: true, ngImport: i0, template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>', isInline: true, components: [{ type: i1.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheDefaultElementComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{
|
|
15
|
+
selector: '[theDefaultElement]',
|
|
16
|
+
template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>',
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
18
|
+
}]
|
|
19
|
+
}], propDecorators: { indent: [{
|
|
20
|
+
type: HostBinding,
|
|
21
|
+
args: ['attr.the-indent']
|
|
22
|
+
}] } });
|
|
23
23
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFPckUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQUNuRSxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hDLENBQUM7O3VIQUpRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDhJQUh6QixpSEFBaUg7MkZBR2xILDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsaUhBQWlIO29CQUMzSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBR08sTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVCYXNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdmlldy1iYXNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbdGhlRGVmYXVsdEVsZW1lbnRdJyxcbiAgICB0ZW1wbGF0ZTogJzxzbGF0ZS1jaGlsZHJlbiBbY2hpbGRyZW5dPVwiY2hpbGRyZW5cIiBbY29udGV4dF09XCJjaGlsZHJlbkNvbnRleHRcIiBbdmlld0NvbnRleHRdPVwidmlld0NvbnRleHRcIj48L3NsYXRlLWNoaWxkcmVuPicsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGhlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudENvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRoZS1pbmRlbnQnKVxuICAgIGdldCBpbmRlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQ/LmluZGVudDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,138 +1,138 @@
|
|
|
1
|
-
import { Component, Input, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
2
|
-
import { merge, fromEvent, Subject } from 'rxjs';
|
|
3
|
-
import { takeUntil, filter, debounceTime } from 'rxjs/operators';
|
|
4
|
-
import { Range as slateRange, Editor } from 'slate';
|
|
5
|
-
import { AngularEditor } from 'slate-angular';
|
|
6
|
-
import * as TheQueries from '../../queries';
|
|
7
|
-
import { THE_INLINE_TOOLBAR_TYPES } from '../../constants';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
10
|
-
import * as i2 from "../../services/context.service";
|
|
11
|
-
import * as i3 from "../toolbar/toolbar.component";
|
|
12
|
-
export class TheInlineToolbarComponent {
|
|
13
|
-
constructor(elementRef, scrollDispatcher, cdr, ngZone, contextService) {
|
|
14
|
-
this.elementRef = elementRef;
|
|
15
|
-
this.scrollDispatcher = scrollDispatcher;
|
|
16
|
-
this.cdr = cdr;
|
|
17
|
-
this.ngZone = ngZone;
|
|
18
|
-
this.contextService = contextService;
|
|
19
|
-
this.destroy$ = new Subject();
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
this.scrollDispatcher
|
|
23
|
-
.scrolled()
|
|
24
|
-
.pipe(takeUntil(this.destroy$))
|
|
25
|
-
.subscribe(() => {
|
|
26
|
-
this.updateInlineToolbar();
|
|
27
|
-
this.cdr.detectChanges();
|
|
28
|
-
});
|
|
29
|
-
this.ngZone.runOutsideAngular(() => {
|
|
30
|
-
merge(fromEvent(document, 'mouseup').pipe(filter((e) => e.button !== 2)), fromEvent(document, 'keyup').pipe(filter((e) => !e.shiftKey)))
|
|
31
|
-
.pipe(debounceTime(200), takeUntil(this.destroy$))
|
|
32
|
-
.subscribe(() => {
|
|
33
|
-
this.updateInlineToolbar();
|
|
34
|
-
this.inlineToolbar?.selectionChange(this.editor);
|
|
35
|
-
this.cdr.detectChanges();
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
updateInlineToolbar() {
|
|
40
|
-
const inlineToolbar = this.elementRef.nativeElement.firstElementChild;
|
|
41
|
-
if (!this.editor.selection) {
|
|
42
|
-
inlineToolbar.removeAttribute('style');
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const anchorBlock = TheQueries.anchorBlock(this.editor);
|
|
46
|
-
if (!inlineToolbar || !anchorBlock) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const { editor } = this;
|
|
50
|
-
const { selection } = editor;
|
|
51
|
-
if (!selection ||
|
|
52
|
-
!AngularEditor.isFocused(editor) ||
|
|
53
|
-
slateRange.isCollapsed(selection) ||
|
|
54
|
-
Editor.string(editor, selection) === '') {
|
|
55
|
-
inlineToolbar.removeAttribute('style');
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (!THE_INLINE_TOOLBAR_TYPES.includes(anchorBlock.type)) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
const native = window.getSelection();
|
|
62
|
-
if (native.type !== 'None') {
|
|
63
|
-
const range = native.getRangeAt(0);
|
|
64
|
-
this.updatePosition(inlineToolbar, range);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
updatePosition(toolbarElement, range) {
|
|
68
|
-
let boundary = range.getBoundingClientRect();
|
|
69
|
-
if (!boundary || (boundary.height === 0 && boundary.width === 0 && range.startContainer === range.endContainer)) {
|
|
70
|
-
if (range.startContainer.nodeType === 1 && range.startContainer.querySelector('img')) {
|
|
71
|
-
boundary = range.startContainer.querySelector('img').getBoundingClientRect();
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
boundary = range.startContainer.getBoundingClientRect();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const editableElement = this.contextService.getEditableElement();
|
|
78
|
-
const editableRect = editableElement.getBoundingClientRect();
|
|
79
|
-
const toolbarHeight = toolbarElement.offsetHeight;
|
|
80
|
-
const toolbarWidth = toolbarElement.offsetWidth;
|
|
81
|
-
const halfOffsetWidth = toolbarWidth / 2;
|
|
82
|
-
const defaultLeft = -halfOffsetWidth;
|
|
83
|
-
const offsetLeft = boundary.left - editableRect.left;
|
|
84
|
-
const isTopLeft = offsetLeft - 30 > halfOffsetWidth; // 30: editable padding left
|
|
85
|
-
const isTopRight = editableRect.width - offsetLeft - boundary.width / 2 < halfOffsetWidth;
|
|
86
|
-
const positions = {};
|
|
87
|
-
positions.top = boundary.top - toolbarHeight;
|
|
88
|
-
positions.right = 'initial';
|
|
89
|
-
positions.left = boundary.left;
|
|
90
|
-
if (isTopLeft) {
|
|
91
|
-
positions.left = boundary.left + boundary.width / 2 + defaultLeft;
|
|
92
|
-
}
|
|
93
|
-
if (isTopRight) {
|
|
94
|
-
positions.left = boundary.right - toolbarWidth;
|
|
95
|
-
}
|
|
96
|
-
for (let key of Object.keys(positions)) {
|
|
97
|
-
toolbarElement.style[key] = positions[key] + (isNaN(positions[key]) ? '' : 'px');
|
|
98
|
-
}
|
|
99
|
-
toolbarElement.style.opacity = '1';
|
|
100
|
-
}
|
|
101
|
-
ngOnDestroy() {
|
|
102
|
-
this.destroy$.next();
|
|
103
|
-
this.destroy$.complete();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
TheInlineToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheInlineToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.TheContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
2
|
+
import { merge, fromEvent, Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil, filter, debounceTime } from 'rxjs/operators';
|
|
4
|
+
import { Range as slateRange, Editor } from 'slate';
|
|
5
|
+
import { AngularEditor } from 'slate-angular';
|
|
6
|
+
import * as TheQueries from '../../queries';
|
|
7
|
+
import { THE_INLINE_TOOLBAR_TYPES } from '../../constants';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
10
|
+
import * as i2 from "../../services/context.service";
|
|
11
|
+
import * as i3 from "../toolbar/toolbar.component";
|
|
12
|
+
export class TheInlineToolbarComponent {
|
|
13
|
+
constructor(elementRef, scrollDispatcher, cdr, ngZone, contextService) {
|
|
14
|
+
this.elementRef = elementRef;
|
|
15
|
+
this.scrollDispatcher = scrollDispatcher;
|
|
16
|
+
this.cdr = cdr;
|
|
17
|
+
this.ngZone = ngZone;
|
|
18
|
+
this.contextService = contextService;
|
|
19
|
+
this.destroy$ = new Subject();
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.scrollDispatcher
|
|
23
|
+
.scrolled()
|
|
24
|
+
.pipe(takeUntil(this.destroy$))
|
|
25
|
+
.subscribe(() => {
|
|
26
|
+
this.updateInlineToolbar();
|
|
27
|
+
this.cdr.detectChanges();
|
|
28
|
+
});
|
|
29
|
+
this.ngZone.runOutsideAngular(() => {
|
|
30
|
+
merge(fromEvent(document, 'mouseup').pipe(filter((e) => e.button !== 2)), fromEvent(document, 'keyup').pipe(filter((e) => !e.shiftKey)))
|
|
31
|
+
.pipe(debounceTime(200), takeUntil(this.destroy$))
|
|
32
|
+
.subscribe(() => {
|
|
33
|
+
this.updateInlineToolbar();
|
|
34
|
+
this.inlineToolbar?.selectionChange(this.editor);
|
|
35
|
+
this.cdr.detectChanges();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
updateInlineToolbar() {
|
|
40
|
+
const inlineToolbar = this.elementRef.nativeElement.firstElementChild;
|
|
41
|
+
if (!this.editor.selection) {
|
|
42
|
+
inlineToolbar.removeAttribute('style');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const anchorBlock = TheQueries.anchorBlock(this.editor);
|
|
46
|
+
if (!inlineToolbar || !anchorBlock) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const { editor } = this;
|
|
50
|
+
const { selection } = editor;
|
|
51
|
+
if (!selection ||
|
|
52
|
+
!AngularEditor.isFocused(editor) ||
|
|
53
|
+
slateRange.isCollapsed(selection) ||
|
|
54
|
+
Editor.string(editor, selection) === '') {
|
|
55
|
+
inlineToolbar.removeAttribute('style');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!THE_INLINE_TOOLBAR_TYPES.includes(anchorBlock.type)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const native = window.getSelection();
|
|
62
|
+
if (native.type !== 'None') {
|
|
63
|
+
const range = native.getRangeAt(0);
|
|
64
|
+
this.updatePosition(inlineToolbar, range);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
updatePosition(toolbarElement, range) {
|
|
68
|
+
let boundary = range.getBoundingClientRect();
|
|
69
|
+
if (!boundary || (boundary.height === 0 && boundary.width === 0 && range.startContainer === range.endContainer)) {
|
|
70
|
+
if (range.startContainer.nodeType === 1 && range.startContainer.querySelector('img')) {
|
|
71
|
+
boundary = range.startContainer.querySelector('img').getBoundingClientRect();
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
boundary = range.startContainer.getBoundingClientRect();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const editableElement = this.contextService.getEditableElement();
|
|
78
|
+
const editableRect = editableElement.getBoundingClientRect();
|
|
79
|
+
const toolbarHeight = toolbarElement.offsetHeight;
|
|
80
|
+
const toolbarWidth = toolbarElement.offsetWidth;
|
|
81
|
+
const halfOffsetWidth = toolbarWidth / 2;
|
|
82
|
+
const defaultLeft = -halfOffsetWidth;
|
|
83
|
+
const offsetLeft = boundary.left - editableRect.left;
|
|
84
|
+
const isTopLeft = offsetLeft - 30 > halfOffsetWidth; // 30: editable padding left
|
|
85
|
+
const isTopRight = editableRect.width - offsetLeft - boundary.width / 2 < halfOffsetWidth;
|
|
86
|
+
const positions = {};
|
|
87
|
+
positions.top = boundary.top - toolbarHeight;
|
|
88
|
+
positions.right = 'initial';
|
|
89
|
+
positions.left = boundary.left;
|
|
90
|
+
if (isTopLeft) {
|
|
91
|
+
positions.left = boundary.left + boundary.width / 2 + defaultLeft;
|
|
92
|
+
}
|
|
93
|
+
if (isTopRight) {
|
|
94
|
+
positions.left = boundary.right - toolbarWidth;
|
|
95
|
+
}
|
|
96
|
+
for (let key of Object.keys(positions)) {
|
|
97
|
+
toolbarElement.style[key] = positions[key] + (isNaN(positions[key]) ? '' : 'px');
|
|
98
|
+
}
|
|
99
|
+
toolbarElement.style.opacity = '1';
|
|
100
|
+
}
|
|
101
|
+
ngOnDestroy() {
|
|
102
|
+
this.destroy$.next();
|
|
103
|
+
this.destroy$.complete();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
TheInlineToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheInlineToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.TheContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
107
|
TheInlineToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: { editor: "editor", toolbarItems: "toolbarItems" }, host: { properties: { "class.hide": "toolbarItems.length === 0" } }, viewQueries: [{ propertyName: "inlineToolbar", first: true, predicate: ["inlineToolbar"], descendants: true }], ngImport: i0, template: `<the-toolbar
|
|
108
108
|
#inlineToolbar
|
|
109
109
|
class="the-inline-toolbar"
|
|
110
110
|
[editor]="editor"
|
|
111
111
|
[toolbarItems]="toolbarItems"
|
|
112
112
|
[isMore]="false"
|
|
113
|
-
></the-toolbar> `, isInline: true, components: [{ type: i3.TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheInlineToolbarComponent, decorators: [{
|
|
115
|
-
type: Component,
|
|
116
|
-
args: [{
|
|
117
|
-
selector: 'the-inline-toolbar',
|
|
113
|
+
></the-toolbar> `, isInline: true, components: [{ type: i3.TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheInlineToolbarComponent, decorators: [{
|
|
115
|
+
type: Component,
|
|
116
|
+
args: [{
|
|
117
|
+
selector: 'the-inline-toolbar',
|
|
118
118
|
template: `<the-toolbar
|
|
119
119
|
#inlineToolbar
|
|
120
120
|
class="the-inline-toolbar"
|
|
121
121
|
[editor]="editor"
|
|
122
122
|
[toolbarItems]="toolbarItems"
|
|
123
123
|
[isMore]="false"
|
|
124
|
-
></the-toolbar> `,
|
|
125
|
-
host: {
|
|
126
|
-
'[class.hide]': 'toolbarItems.length === 0'
|
|
127
|
-
},
|
|
128
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
129
|
-
}]
|
|
130
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ScrollDispatcher }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.TheContextService }]; }, propDecorators: { editor: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], toolbarItems: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], inlineToolbar: [{
|
|
135
|
-
type: ViewChild,
|
|
136
|
-
args: ['inlineToolbar']
|
|
137
|
-
}] } });
|
|
124
|
+
></the-toolbar> `,
|
|
125
|
+
host: {
|
|
126
|
+
'[class.hide]': 'toolbarItems.length === 0'
|
|
127
|
+
},
|
|
128
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
129
|
+
}]
|
|
130
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ScrollDispatcher }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.TheContextService }]; }, propDecorators: { editor: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], toolbarItems: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], inlineToolbar: [{
|
|
135
|
+
type: ViewChild,
|
|
136
|
+
args: ['inlineToolbar']
|
|
137
|
+
}] } });
|
|
138
138
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvaW5saW5lLXRvb2xiYXIvaW5saW5lLXRvb2xiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBSVQsS0FBSyxFQUdMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLElBQUksVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQW1CM0QsTUFBTSxPQUFPLHlCQUF5QjtJQU9sQyxZQUNZLFVBQTJCLEVBQzNCLGdCQUFrQyxFQUNsQyxHQUFzQixFQUN0QixNQUFjLEVBQ2QsY0FBaUM7UUFKakMsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBUDdDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBUXRCLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQjthQUNoQixRQUFRLEVBQUU7YUFDVixJQUFJ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QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjcm9sbERpc3BhdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBtZXJnZSwgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIGZpbHRlciwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmFuZ2UgYXMgc2xhdGVSYW5nZSwgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IFRIRV9JTkxJTkVfVE9PTEJBUl9UWVBFUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUb29sYmFySXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1pbmxpbmUtdG9vbGJhcicsXG4gICAgdGVtcGxhdGU6IGA8dGhlLXRvb2xiYXJcbiAgICAgICAgI2lubGluZVRvb2xiYXJcbiAgICAgICAgY2xhc3M9XCJ0aGUtaW5saW5lLXRvb2xiYXJcIlxuICAgICAgICBbZWRpdG9yXT1cImVkaXRvclwiXG4gICAgICAgIFt0b29sYmFySXRlbXNdPVwidG9vbGJhckl0ZW1zXCJcbiAgICAgICAgW2lzTW9yZV09XCJmYWxzZVwiXG4gICAgPjwvdGhlLXRvb2xiYXI+IGAsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmhpZGVdJzogJ3Rvb2xiYXJJdGVtcy5sZW5ndGggPT09IDAnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaGVJbmxpbmVUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXTtcbiAgICBAVmlld0NoaWxkKCdpbmxpbmVUb29sYmFyJykgaW5saW5lVG9vbGJhcjogVGhlVG9vbGJhckNvbXBvbmVudDtcblxuICAgIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclxuICAgICAgICAgICAgLnNjcm9sbGVkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5saW5lVG9vbGJhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJykucGlwZShmaWx0ZXIoKGU6IE1vdXNlRXZlbnQpID0+IGUuYnV0dG9uICE9PSAyKSksXG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKS5waXBlKGZpbHRlcigoZTogS2V5Ym9hcmRFdmVudCkgPT4gIWUuc2hpZnRLZXkpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5saW5lVG9vbGJhcigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlubGluZVRvb2xiYXI/LnNlbGVjdGlvbkNoYW5nZSh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlSW5saW5lVG9vbGJhcigpIHtcbiAgICAgICAgY29uc3QgaW5saW5lVG9vbGJhciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuXG4gICAgICAgIGlmICghdGhpcy5lZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpbmxpbmVUb29sYmFyLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNob3JCbG9jayA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2sodGhpcy5lZGl0b3IpO1xuICAgICAgICBpZiAoIWlubGluZVRvb2xiYXIgfHwgIWFuY2hvckJsb2NrKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXNlbGVjdGlvbiB8fFxuICAgICAgICAgICAgIUFuZ3VsYXJFZGl0b3IuaXNGb2N1c2VkKGVkaXRvcikgfHxcbiAgICAgICAgICAgIHNsYXRlUmFuZ2UuaXNDb2xsYXBzZWQoc2VsZWN0aW9uKSB8fFxuICAgICAgICAgICAgRWRpdG9yLnN0cmluZyhlZGl0b3IsIHNlbGVjdGlvbikgPT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgICAgaW5saW5lVG9vbGJhci5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVRIRV9JTkxJTkVfVE9PTEJBUl9UWVBFUy5pbmNsdWRlcyhhbmNob3JCbG9jay50eXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hdGl2ZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKG5hdGl2ZS50eXBlICE9PSAnTm9uZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gbmF0aXZlLmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKGlubGluZVRvb2xiYXIsIHJhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVBvc2l0aW9uKHRvb2xiYXJFbGVtZW50OiBIVE1MRWxlbWVudCwgcmFuZ2UpIHtcbiAgICAgICAgbGV0IGJvdW5kYXJ5ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgaWYgKCFib3VuZGFyeSB8fCAoYm91bmRhcnkuaGVpZ2h0ID09PSAwICYmIGJvdW5kYXJ5LndpZHRoID09PSAwICYmIHJhbmdlLnN0YXJ0Q29udGFpbmVyID09PSByYW5nZS5lbmRDb250YWluZXIpKSB7XG4gICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnRDb250YWluZXIubm9kZVR5cGUgPT09IDEgJiYgcmFuZ2Uuc3RhcnRDb250YWluZXIucXVlcnlTZWxlY3RvcignaW1nJykpIHtcbiAgICAgICAgICAgICAgICBib3VuZGFyeSA9IHJhbmdlLnN0YXJ0Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBib3VuZGFyeSA9IHJhbmdlLnN0YXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0RWRpdGFibGVFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlUmVjdCA9IGVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdG9vbGJhckhlaWdodCA9IHRvb2xiYXJFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgdG9vbGJhcldpZHRoID0gdG9vbGJhckVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IGhhbGZPZmZzZXRXaWR0aCA9IHRvb2xiYXJXaWR0aCAvIDI7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMZWZ0ID0gLWhhbGZPZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0TGVmdCA9IGJvdW5kYXJ5LmxlZnQgLSBlZGl0YWJsZVJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgaXNUb3BMZWZ0ID0gb2Zmc2V0TGVmdCAtIDMwID4gaGFsZk9mZnNldFdpZHRoOyAvLyAzMDogZWRpdGFibGUgcGFkZGluZyBsZWZ0XG4gICAgICAgIGNvbnN0IGlzVG9wUmlnaHQgPSBlZGl0YWJsZVJlY3Qud2lkdGggLSBvZmZzZXRMZWZ0IC0gYm91bmRhcnkud2lkdGggLyAyIDwgaGFsZk9mZnNldFdpZHRoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbnM6IGFueSA9IHt9O1xuXG4gICAgICAgIHBvc2l0aW9ucy50b3AgPSBib3VuZGFyeS50b3AgLSB0b29sYmFySGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbnMucmlnaHQgPSAnaW5pdGlhbCc7XG4gICAgICAgIHBvc2l0aW9ucy5sZWZ0ID0gYm91bmRhcnkubGVmdDtcblxuICAgICAgICBpZiAoaXNUb3BMZWZ0KSB7XG4gICAgICAgICAgICBwb3NpdGlvbnMubGVmdCA9IGJvdW5kYXJ5LmxlZnQgKyBib3VuZGFyeS53aWR0aCAvIDIgKyBkZWZhdWx0TGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc1RvcFJpZ2h0KSB7XG4gICAgICAgICAgICBwb3NpdGlvbnMubGVmdCA9IGJvdW5kYXJ5LnJpZ2h0IC0gdG9vbGJhcldpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKHBvc2l0aW9ucykpIHtcbiAgICAgICAgICAgIHRvb2xiYXJFbGVtZW50LnN0eWxlW2tleV0gPSBwb3NpdGlvbnNba2V5XSArIChpc05hTihwb3NpdGlvbnNba2V5XSkgPyAnJyA6ICdweCcpO1xuICAgICAgICB9XG4gICAgICAgIHRvb2xiYXJFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import { ToolbarItemMode } from '../../constants/toolbar';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class NavSplitLineComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.mode = ToolbarItemMode.vertical;
|
|
7
|
-
this.theNavSplitLine = true;
|
|
8
|
-
}
|
|
9
|
-
get horizontal() {
|
|
10
|
-
return this.mode === ToolbarItemMode.horizontal;
|
|
11
|
-
}
|
|
12
|
-
get vertical() {
|
|
13
|
-
return this.mode === ToolbarItemMode.vertical;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() { }
|
|
16
|
-
}
|
|
17
|
-
NavSplitLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NavSplitLineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
NavSplitLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: NavSplitLineComponent, selector: "nav-split-line", inputs: { mode: "mode" }, host: { properties: { "class.the-nav-split-line": "this.theNavSplitLine", "class.horizontal": "this.horizontal", "class.vertical": "this.vertical" } }, ngImport: i0, template: '', isInline: true });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NavSplitLineComponent, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{
|
|
22
|
-
selector: 'nav-split-line',
|
|
23
|
-
template: ''
|
|
24
|
-
}]
|
|
25
|
-
}], ctorParameters: function () { return []; }, propDecorators: { mode: [{
|
|
26
|
-
type: Input
|
|
27
|
-
}], theNavSplitLine: [{
|
|
28
|
-
type: HostBinding,
|
|
29
|
-
args: ['class.the-nav-split-line']
|
|
30
|
-
}], horizontal: [{
|
|
31
|
-
type: HostBinding,
|
|
32
|
-
args: ['class.horizontal']
|
|
33
|
-
}], vertical: [{
|
|
34
|
-
type: HostBinding,
|
|
35
|
-
args: ['class.vertical']
|
|
36
|
-
}] } });
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { ToolbarItemMode } from '../../constants/toolbar';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NavSplitLineComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.mode = ToolbarItemMode.vertical;
|
|
7
|
+
this.theNavSplitLine = true;
|
|
8
|
+
}
|
|
9
|
+
get horizontal() {
|
|
10
|
+
return this.mode === ToolbarItemMode.horizontal;
|
|
11
|
+
}
|
|
12
|
+
get vertical() {
|
|
13
|
+
return this.mode === ToolbarItemMode.vertical;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() { }
|
|
16
|
+
}
|
|
17
|
+
NavSplitLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NavSplitLineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
NavSplitLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: NavSplitLineComponent, selector: "nav-split-line", inputs: { mode: "mode" }, host: { properties: { "class.the-nav-split-line": "this.theNavSplitLine", "class.horizontal": "this.horizontal", "class.vertical": "this.vertical" } }, ngImport: i0, template: '', isInline: true });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NavSplitLineComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
selector: 'nav-split-line',
|
|
23
|
+
template: ''
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return []; }, propDecorators: { mode: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], theNavSplitLine: [{
|
|
28
|
+
type: HostBinding,
|
|
29
|
+
args: ['class.the-nav-split-line']
|
|
30
|
+
}], horizontal: [{
|
|
31
|
+
type: HostBinding,
|
|
32
|
+
args: ['class.horizontal']
|
|
33
|
+
}], vertical: [{
|
|
34
|
+
type: HostBinding,
|
|
35
|
+
args: ['class.vertical']
|
|
36
|
+
}] } });
|
|
37
37
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNwbGl0LWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvbmF2LXNwbGl0LWxpbmUvbmF2LXNwbGl0LWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTTFELE1BQU0sT0FBTyxxQkFBcUI7SUFjOUI7UUFiUyxTQUFJLEdBQW9CLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFHMUQsb0JBQWUsR0FBRyxJQUFJLENBQUM7SUFVUixDQUFDO0lBUmhCLElBQXFDLFVBQVU7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQW1DLFFBQVE7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUlELFFBQVEsS0FBVSxDQUFDOztrSEFoQlYscUJBQXFCO3NHQUFyQixxQkFBcUIsd09BRnBCLEVBQUU7MkZBRUgscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzBFQUVZLElBQUk7c0JBQVosS0FBSztnQkFHTixlQUFlO3NCQURkLFdBQVc7dUJBQUMsMEJBQTBCO2dCQUdGLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUlJLFFBQVE7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW1Nb2RlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rvb2xiYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdi1zcGxpdC1saW5lJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgTmF2U3BsaXRMaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBtb2RlOiBUb29sYmFySXRlbU1vZGUgPSBUb29sYmFySXRlbU1vZGUudmVydGljYWw7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZS1uYXYtc3BsaXQtbGluZScpXG4gICAgdGhlTmF2U3BsaXRMaW5lID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaG9yaXpvbnRhbCcpIGdldCBob3Jpem9udGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBUb29sYmFySXRlbU1vZGUuaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZlcnRpY2FsJykgZ2V0IHZlcnRpY2FsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBUb29sYmFySXRlbU1vZGUudmVydGljYWw7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuIl19
|