@worktile/theia 3.0.9 → 3.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/bundles/worktile-theia.umd.js +14420 -14386
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/color-select/color-select.component.d.ts +32 -32
- package/components/color-select/color-select.component.scss +107 -107
- package/components/column-resize/column-resize-notifier.d.ts +35 -35
- package/components/column-resize/column-resize.directive.d.ts +26 -26
- package/components/column-resize/column-resize.module.d.ts +14 -14
- package/components/column-resize/event-dispatcher.d.ts +31 -31
- package/components/column-resize/overlay-handle.component.d.ts +33 -33
- package/components/column-resize/resize-ref.d.ts +25 -25
- package/components/column-resize/resizing.store.d.ts +28 -28
- package/components/column-resize/selectors.d.ts +3 -3
- package/components/contextmenu/contextmenu.component.d.ts +22 -22
- package/components/conversion-hint/conversion-hint.component.d.ts +18 -18
- package/components/conversion-hint/conversion-hint.component.scss +11 -11
- package/components/element/element.component.d.ts +7 -7
- package/components/inline-toolbar/inline-toolbar.component.d.ts +26 -26
- package/components/nav-split-line/nav-split-line.component.d.ts +13 -13
- package/components/table-select/table-select.component.d.ts +20 -20
- package/components/table-select/table-select.component.scss +35 -35
- package/components/template/template.component.d.ts +15 -15
- package/components/text/text.component.d.ts +14 -14
- package/components/toolbar/toolbar.component.d.ts +65 -65
- package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +33 -33
- package/components/toolbar-group/toolbar-group.component.d.ts +33 -33
- package/components/toolbar-group/toolbar-group.component.scss +17 -17
- package/components/toolbar-item/toolbar-item.component.d.ts +18 -18
- package/constants/auto-format-rules.d.ts +2 -2
- package/constants/code.d.ts +9 -9
- package/constants/color-select.d.ts +14 -14
- package/constants/default.d.ts +9 -9
- package/constants/error.d.ts +5 -5
- package/constants/index.d.ts +5 -5
- package/constants/node-types.d.ts +99 -99
- package/constants/selector.d.ts +2 -2
- package/constants/toolbar.d.ts +17 -17
- package/core/create-plugin.d.ts +2 -2
- package/core/create-toolbar.d.ts +5 -5
- package/core/index.d.ts +4 -4
- package/core/toolbar-item/base-toolbar-item.d.ts +29 -29
- package/core/utils/combine-plugins.d.ts +2 -2
- package/core/utils/flatten-deep-plugins.d.ts +6 -6
- package/core/utils/get-plugin-options.d.ts +2 -2
- package/core/utils/get-plugin.d.ts +2 -2
- package/core/utils/get-plugins.d.ts +2 -2
- package/core/utils/index.d.ts +10 -10
- package/core/utils/merge-array.d.ts +1 -1
- package/core/utils/merge-deep-plugins.d.ts +2 -2
- package/core/utils/merge-options.d.ts +2 -2
- package/core/utils/nested-structure-by-key.d.ts +2 -2
- package/core/utils/plugins-by-key.d.ts +2 -2
- package/core/with-theia.d.ts +4 -4
- package/custom-types.d.ts +131 -131
- package/editor.component.d.ts +92 -92
- package/editor.module.d.ts +100 -98
- package/esm2015/components/color-select/color-select.component.js +112 -112
- package/esm2015/components/column-resize/column-resize-notifier.js +31 -31
- package/esm2015/components/column-resize/column-resize.directive.js +98 -98
- package/esm2015/components/column-resize/column-resize.module.js +34 -34
- package/esm2015/components/column-resize/event-dispatcher.js +55 -55
- package/esm2015/components/column-resize/overlay-handle.component.js +139 -139
- package/esm2015/components/column-resize/resize-ref.js +25 -25
- package/esm2015/components/column-resize/resizing.store.js +154 -154
- package/esm2015/components/column-resize/selectors.js +4 -4
- package/esm2015/components/contextmenu/contextmenu.component.js +64 -64
- package/esm2015/components/conversion-hint/conversion-hint.component.js +59 -59
- package/esm2015/components/element/element.component.js +23 -23
- package/esm2015/components/inline-toolbar/inline-toolbar.component.js +126 -126
- package/esm2015/components/nav-split-line/nav-split-line.component.js +36 -36
- package/esm2015/components/table-select/table-select.component.js +53 -53
- package/esm2015/components/template/template.component.js +66 -66
- package/esm2015/components/text/text.component.js +57 -57
- package/esm2015/components/toolbar/toolbar.component.js +250 -250
- package/esm2015/components/toolbar-dropdown/toolbar-dropdown.component.js +132 -132
- package/esm2015/components/toolbar-group/toolbar-group.component.js +116 -116
- package/esm2015/components/toolbar-item/toolbar-item.component.js +64 -64
- package/esm2015/constants/auto-format-rules.js +166 -166
- package/esm2015/constants/code.js +88 -88
- package/esm2015/constants/color-select.js +61 -61
- package/esm2015/constants/default.js +9 -9
- package/esm2015/constants/error.js +7 -7
- package/esm2015/constants/index.js +5 -5
- package/esm2015/constants/node-types.js +132 -132
- package/esm2015/constants/selector.js +3 -3
- package/esm2015/constants/toolbar.js +69 -69
- package/esm2015/core/create-plugin.js +4 -4
- package/esm2015/core/create-toolbar.js +56 -56
- package/esm2015/core/index.js +4 -4
- package/esm2015/core/toolbar-item/base-toolbar-item.js +91 -91
- package/esm2015/core/utils/combine-plugins.js +9 -9
- package/esm2015/core/utils/flatten-deep-plugins.js +18 -18
- package/esm2015/core/utils/get-plugin-options.js +2 -2
- package/esm2015/core/utils/get-plugin.js +1 -1
- package/esm2015/core/utils/get-plugins.js +4 -4
- package/esm2015/core/utils/index.js +10 -10
- package/esm2015/core/utils/merge-array.js +17 -17
- package/esm2015/core/utils/merge-deep-plugins.js +13 -13
- package/esm2015/core/utils/merge-options.js +19 -19
- package/esm2015/core/utils/nested-structure-by-key.js +10 -10
- package/esm2015/core/utils/plugins-by-key.js +9 -9
- package/esm2015/core/with-theia.js +22 -22
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +439 -439
- package/esm2015/editor.module.js +208 -202
- package/esm2015/interfaces/auto-format.js +1 -1
- package/esm2015/interfaces/editor.js +22 -22
- package/esm2015/interfaces/element.js +1 -1
- package/esm2015/interfaces/image.js +2 -2
- package/esm2015/interfaces/index.js +8 -8
- package/esm2015/interfaces/plugins/index.js +4 -4
- package/esm2015/interfaces/plugins/no-infer.js +1 -1
- package/esm2015/interfaces/plugins/plugin-key.js +39 -39
- package/esm2015/interfaces/plugins/plugins.js +1 -1
- package/esm2015/interfaces/plugins/with-override.js +1 -1
- package/esm2015/interfaces/reset-block-type-plugin-options.js +2 -2
- package/esm2015/interfaces/toolbar.js +11 -11
- package/esm2015/interfaces/upload.js +2 -2
- package/esm2015/interfaces/utility/index.js +3 -3
- package/esm2015/interfaces/utility/nested-structure-by-key.js +1 -1
- package/esm2015/interfaces/utility/override-by-key.js +1 -1
- package/esm2015/interfaces/utility/types.js +1 -1
- package/esm2015/interfaces/valid-children-types.js +35 -35
- package/esm2015/interfaces/view-base.js +21 -21
- package/esm2015/pipes.js +42 -42
- package/esm2015/plugins/align/align.editor.js +47 -47
- package/esm2015/plugins/align/align.plugin.js +63 -63
- package/esm2015/plugins/autoformat/autoformat.plugin.js +109 -109
- package/esm2015/plugins/autoformat/transforms/auto-format-block.js +14 -14
- package/esm2015/plugins/autoformat/transforms/auto-format-inline.js +77 -77
- package/esm2015/plugins/blockquote/blockquote.component.js +21 -21
- package/esm2015/plugins/blockquote/blockquote.editor.js +20 -20
- package/esm2015/plugins/blockquote/blockquote.plugin.js +70 -70
- package/esm2015/plugins/code/code.component.js +244 -244
- package/esm2015/plugins/code/code.editor.js +47 -47
- package/esm2015/plugins/code/code.plugin.js +41 -41
- package/esm2015/plugins/color/color.editor.js +44 -44
- package/esm2015/plugins/color/color.plugin.js +27 -27
- package/esm2015/plugins/color/toolbar-item.component.js +79 -79
- package/esm2015/plugins/common/auto-insert-data..js +77 -77
- package/esm2015/plugins/common/block-card.plugin.js +286 -286
- package/esm2015/plugins/common/get-fragment.plugin.js +24 -24
- package/esm2015/plugins/common/history.plugin.js +30 -30
- package/esm2015/plugins/common/move-selection.plugin.js +89 -89
- package/esm2015/plugins/common/remove-empty.plugin.js +59 -59
- package/esm2015/plugins/common/remove-void.plugin.js +56 -56
- package/esm2015/plugins/common/reset-type.plugin.js +34 -34
- package/esm2015/plugins/common/transforms.plugin.js +17 -17
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +38 -38
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +121 -121
- package/esm2015/plugins/font-size/font-size.editor.js +97 -97
- package/esm2015/plugins/heading/heading.editor.js +53 -53
- package/esm2015/plugins/heading/heading.plugin.js +84 -84
- package/esm2015/plugins/hr/hr.component.js +40 -40
- package/esm2015/plugins/hr/hr.editor.js +7 -7
- package/esm2015/plugins/hr/hr.plugin.js +41 -41
- package/esm2015/plugins/image/image.component.js +395 -370
- package/esm2015/plugins/image/image.editor.js +57 -57
- package/esm2015/plugins/image/image.plugin.js +57 -57
- package/esm2015/plugins/indent/indent.editor.js +72 -72
- package/esm2015/plugins/indent/indent.plugin.js +59 -59
- package/esm2015/plugins/indent/on-keydown-indent.js +53 -53
- package/esm2015/plugins/index.js +70 -70
- package/esm2015/plugins/inline-code/inline-code.component.js +21 -21
- package/esm2015/plugins/inline-code/inline-code.editor.js +48 -48
- package/esm2015/plugins/inline-code/inline-code.plugin.js +65 -65
- package/esm2015/plugins/link/edit/link-edit.component.js +108 -108
- package/esm2015/plugins/link/hover/link-hover.component.js +39 -39
- package/esm2015/plugins/link/link.component.js +162 -162
- package/esm2015/plugins/link/link.editor.js +66 -66
- package/esm2015/plugins/link/link.plugin.js +58 -58
- package/esm2015/plugins/link/link.types.js +12 -12
- package/esm2015/plugins/list/components/bulleted-list.component.js +33 -33
- package/esm2015/plugins/list/components/list-item.component.js +94 -94
- package/esm2015/plugins/list/components/numbered-list.component.js +39 -39
- package/esm2015/plugins/list/list.editor.js +125 -125
- package/esm2015/plugins/list/list.plugin.js +280 -280
- package/esm2015/plugins/list/normalizers/get-list-normalizer.js +39 -39
- package/esm2015/plugins/list/normalizers/normalize-list-item.js +19 -19
- package/esm2015/plugins/list/normalizers/normalize-no.js +42 -42
- package/esm2015/plugins/list/on-key-down-list.js +32 -32
- package/esm2015/plugins/list/queries/get-list-item-entry.js +27 -27
- package/esm2015/plugins/list/queries/get-list-item-sublist.js +12 -12
- package/esm2015/plugins/list/queries/get-list-types.js +5 -5
- package/esm2015/plugins/list/queries/get-start-list-item.js +26 -26
- package/esm2015/plugins/list/queries/has-list-in-list-item.js +27 -27
- package/esm2015/plugins/list/queries/is-in-list.js +5 -5
- package/esm2015/plugins/list/queries/is-list-nested.js +10 -10
- package/esm2015/plugins/list/queries/is-list.js +5 -5
- package/esm2015/plugins/list/queries/is-node-type-list.js +4 -4
- package/esm2015/plugins/list/queries/is-selection-at-list-item-start.js +12 -12
- package/esm2015/plugins/list/queries/is-selection-in-same-list-item.js +16 -16
- package/esm2015/plugins/list/queries/is-single-list-item.js +9 -9
- package/esm2015/plugins/list/transforms/insert-list-data.js +71 -71
- package/esm2015/plugins/list/transforms/insert-list-item.js +72 -72
- package/esm2015/plugins/list/transforms/move-list-item-down.js +41 -41
- package/esm2015/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.js +42 -42
- package/esm2015/plugins/list/transforms/move-list-item-sublist-items-to-list.js +29 -29
- package/esm2015/plugins/list/transforms/move-list-item-up.js +77 -77
- package/esm2015/plugins/list/transforms/unwrap-list.js +9 -9
- package/esm2015/plugins/list/types.js +2 -2
- package/esm2015/plugins/mark/mark.editor.js +28 -28
- package/esm2015/plugins/mark/mark.plugin.js +101 -101
- package/esm2015/plugins/node-id/node-id.plugin.js +68 -68
- package/esm2015/plugins/normalizers/insert-paragraph-nodes.js +28 -28
- package/esm2015/plugins/normalizers/remove-empty-nodes.js +17 -17
- package/esm2015/plugins/normalizers/trailing-node.plugin.js +33 -33
- package/esm2015/plugins/paint-format/paint-format.editor.js +122 -122
- package/esm2015/plugins/public-api.js +15 -15
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +101 -101
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +83 -83
- package/esm2015/plugins/quick-insert/quick-insert.editor.js +52 -52
- package/esm2015/plugins/quick-insert/quick-insert.plugin.js +74 -74
- package/esm2015/plugins/soft-break/soft-break.plugin.js +36 -36
- package/esm2015/plugins/soft-break/soft-break.types.js +1 -1
- package/esm2015/plugins/table/components/insert-mark/insert-mark.component.js +102 -102
- package/esm2015/plugins/table/components/row/row.component.js +46 -46
- package/esm2015/plugins/table/components/table.component.js +469 -469
- package/esm2015/plugins/table/components/td/td.component.js +698 -698
- package/esm2015/plugins/table/components/toolbar/table-options.component.js +67 -67
- package/esm2015/plugins/table/components/toolbar/table-toolbar.component.js +161 -161
- package/esm2015/plugins/table/table.editor.js +182 -182
- package/esm2015/plugins/table/table.plugin.js +423 -423
- package/esm2015/plugins/table/table.service.js +102 -102
- package/esm2015/plugins/table/table.store.js +479 -479
- package/esm2015/plugins/table/table.types.js +33 -33
- package/esm2015/plugins/table/toolbar-item.component.js +61 -61
- package/esm2015/plugins/table/transforms/clear-cell.js +11 -11
- package/esm2015/plugins/table/transforms/clear-table-node.js +27 -27
- package/esm2015/plugins/table/transforms/insert-column.js +57 -57
- package/esm2015/plugins/table/transforms/insert-row.js +42 -42
- package/esm2015/plugins/table/transforms/insert-table.js +14 -14
- package/esm2015/plugins/table/transforms/remove-column.js +51 -51
- package/esm2015/plugins/table/transforms/remove-row.js +50 -50
- package/esm2015/plugins/table/transforms/remove-table.js +49 -49
- package/esm2015/plugins/table/utils/add-columns.js +28 -28
- package/esm2015/plugins/table/utils/calc-anchor-position.js +24 -24
- package/esm2015/plugins/table/utils/calc-span.js +72 -72
- package/esm2015/plugins/table/utils/create-cell.js +19 -19
- package/esm2015/plugins/table/utils/create-row.js +12 -12
- package/esm2015/plugins/table/utils/create-table.js +13 -13
- package/esm2015/plugins/table/utils/get-base-height.js +22 -22
- package/esm2015/plugins/table/utils/get-select-cell-node.js +16 -16
- package/esm2015/plugins/table/utils/index.js +8 -8
- package/esm2015/plugins/table/utils/is-range-in-table.js +16 -16
- package/esm2015/plugins/table/utils/is-selection-in-table.js +11 -11
- package/esm2015/plugins/table/utils/is-virtual-key.js +13 -13
- package/esm2015/plugins/table/utils/merge-cell.js +90 -90
- package/esm2015/plugins/table/utils/next-path.js +5 -5
- package/esm2015/plugins/table/utils/normalize-table.js +30 -30
- package/esm2015/plugins/table/utils/remove-columns.js +23 -23
- package/esm2015/plugins/table/utils/set-menu-cell-invisibility.js +15 -15
- package/esm2015/plugins/table/utils/split-cell.js +31 -31
- package/esm2015/plugins/table/utils/table-position.js +242 -242
- package/esm2015/plugins/todo-item/todo-item.component.js +55 -55
- package/esm2015/plugins/todo-item/todo-item.editor.js +31 -31
- package/esm2015/plugins/todo-item/todo-item.plugin.js +78 -78
- package/esm2015/plugins/vertical-align/toolbar-item.component.js +89 -89
- package/esm2015/plugins/vertical-align/vertical-align.editor.js +54 -54
- package/esm2015/public-api.js +23 -23
- package/esm2015/queries/anchor-block-entry.js +13 -13
- package/esm2015/queries/anchor-block.js +6 -6
- package/esm2015/queries/anchor-inline-entry.js +10 -10
- package/esm2015/queries/find-descendant.js +47 -47
- package/esm2015/queries/find-node.js +45 -45
- package/esm2015/queries/find-path.js +28 -28
- package/esm2015/queries/get-above-by-type.js +10 -10
- package/esm2015/queries/get-above.js +9 -9
- package/esm2015/queries/get-anchor-block-entry.js +8 -8
- package/esm2015/queries/get-block-above.js +7 -7
- package/esm2015/queries/get-block-card-above.js +7 -7
- package/esm2015/queries/get-block-card-cursor.js +5 -5
- package/esm2015/queries/get-container-blocks.js +11 -11
- package/esm2015/queries/get-directly-parent.js +11 -11
- package/esm2015/queries/get-insert-elements-path.js +43 -43
- package/esm2015/queries/get-last-child-path.js +9 -9
- package/esm2015/queries/get-last-node.js +17 -17
- package/esm2015/queries/get-next-sibling-nodes.js +17 -17
- package/esm2015/queries/get-node.js +10 -10
- package/esm2015/queries/get-nodes-by-type.js +12 -12
- package/esm2015/queries/get-nodes.js +7 -7
- package/esm2015/queries/get-parent.js +12 -12
- package/esm2015/queries/get-plain-text.js +16 -16
- package/esm2015/queries/get-plugin-by-toolbar.js +12 -12
- package/esm2015/queries/get-point-before.js +62 -62
- package/esm2015/queries/get-point-from-location.js +15 -15
- package/esm2015/queries/get-previous-path.js +9 -9
- package/esm2015/queries/get-rang-from-block-start.js +16 -16
- package/esm2015/queries/get-range-before.js +17 -17
- package/esm2015/queries/get-selection-marks.js +19 -19
- package/esm2015/queries/get-selection-nodes-by-type.js +29 -29
- package/esm2015/queries/get-text.js +9 -9
- package/esm2015/queries/get-toolbar-disabled.js +13 -13
- package/esm2015/queries/index.js +58 -58
- package/esm2015/queries/is-across-blocks.js +7 -7
- package/esm2015/queries/is-ancestor-empty.js +6 -6
- package/esm2015/queries/is-ancestor.js +3 -3
- package/esm2015/queries/is-block-above-empty.js +11 -11
- package/esm2015/queries/is-block-active.js +7 -7
- package/esm2015/queries/is-block-card-cursor.js +4 -4
- package/esm2015/queries/is-block-text-empty-after-selection.js +31 -31
- package/esm2015/queries/is-collapsed.js +7 -7
- package/esm2015/queries/is-contain-nested-type.js +28 -28
- package/esm2015/queries/is-container-type.js +2 -2
- package/esm2015/queries/is-descendant.js +3 -3
- package/esm2015/queries/is-empty-content.js +14 -14
- package/esm2015/queries/is-empty-paragraph-by-path.js +7 -7
- package/esm2015/queries/is-empty-paragraph.js +11 -11
- package/esm2015/queries/is-first-child.js +5 -5
- package/esm2015/queries/is-include-types.js +11 -11
- package/esm2015/queries/is-node-type-in.js +9 -9
- package/esm2015/queries/is-node-type.js +15 -15
- package/esm2015/queries/is-paragraph.js +9 -9
- package/esm2015/queries/is-point-at-root.js +2 -2
- package/esm2015/queries/is-range-across-blocks.js +18 -18
- package/esm2015/queries/is-range-at-root.js +3 -3
- package/esm2015/queries/is-start.js +6 -6
- package/esm2015/queries/some-node.js +9 -9
- package/esm2015/services/color-select.service.js +49 -49
- package/esm2015/services/context.service.js +59 -59
- package/esm2015/services/table-contextmenu.service.js +189 -189
- package/esm2015/services/toolbar.service.js +47 -47
- package/esm2015/shortcuts/index.js +5 -5
- package/esm2015/shortcuts/mark.js +24 -24
- package/esm2015/transforms/apply-deep-to-nodes.js +21 -21
- package/esm2015/transforms/clear-marks.js +23 -23
- package/esm2015/transforms/close-conversion-hint.js +8 -8
- package/esm2015/transforms/delete-element.js +11 -11
- package/esm2015/transforms/handle-continual-delete-backward.js +17 -17
- package/esm2015/transforms/handle-continual-insert-break.js +19 -19
- package/esm2015/transforms/index.js +18 -18
- package/esm2015/transforms/insert-elements.js +34 -34
- package/esm2015/transforms/insert-paragraph.js +6 -6
- package/esm2015/transforms/merge-deep-to-nodes.js +8 -8
- package/esm2015/transforms/move-children.js +21 -21
- package/esm2015/transforms/on-keydown-reset-block-type.js +22 -22
- package/esm2015/transforms/set-end-selection.js +10 -10
- package/esm2015/transforms/set-marks.js +9 -9
- package/esm2015/transforms/set-node.js +5 -5
- package/esm2015/transforms/split-node.js +31 -31
- package/esm2015/transforms/un-hang-range.js +11 -11
- package/esm2015/transforms/un-wrap.js +11 -11
- package/esm2015/transforms/unwrap-nodes-by-type.js +11 -11
- package/esm2015/utils/auto-focus.js +13 -13
- package/esm2015/utils/auto-scroll-view.js +24 -24
- package/esm2015/utils/cast-array.js +7 -7
- package/esm2015/utils/common.js +2 -2
- package/esm2015/utils/create-empty-paragraph.js +14 -14
- package/esm2015/utils/data-transform.js +48 -48
- package/esm2015/utils/dom.js +46 -46
- package/esm2015/utils/editor-uuid.js +8 -8
- package/esm2015/utils/fragment.js +65 -65
- package/esm2015/utils/get-all-nodes-by-type.js +5 -0
- package/esm2015/utils/get-editable-element-height.js +6 -6
- package/esm2015/utils/get-toolbar-class.js +6 -6
- package/esm2015/utils/id-creator.js +11 -11
- package/esm2015/utils/index.js +13 -13
- package/esm2015/utils/is-clean-empty-paragraph.js +36 -36
- package/esm2015/utils/is-inline.js +9 -9
- package/esm2015/utils/lodash.js +3 -3
- package/esm2015/utils/match.js +29 -29
- package/esm2015/utils/merge-element-options.js +19 -19
- package/esm2015/utils/weak-maps.js +3 -3
- package/esm2015/worktile-theia.js +4 -4
- package/fesm2015/worktile-theia.js +13203 -13168
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/auto-format.d.ts +64 -64
- package/interfaces/editor.d.ts +146 -146
- package/interfaces/element.d.ts +9 -9
- package/interfaces/image.d.ts +25 -25
- package/interfaces/index.d.ts +8 -8
- package/interfaces/plugins/index.d.ts +4 -4
- package/interfaces/plugins/no-infer.d.ts +1 -1
- package/interfaces/plugins/plugin-key.d.ts +48 -48
- package/interfaces/plugins/plugins.d.ts +45 -45
- package/interfaces/plugins/with-override.d.ts +7 -7
- package/interfaces/reset-block-type-plugin-options.d.ts +23 -23
- package/interfaces/toolbar.d.ts +64 -64
- package/interfaces/upload.d.ts +11 -11
- package/interfaces/utility/index.d.ts +3 -3
- package/interfaces/utility/nested-structure-by-key.d.ts +3 -3
- package/interfaces/utility/override-by-key.d.ts +3 -3
- package/interfaces/utility/types.d.ts +1 -1
- package/interfaces/valid-children-types.d.ts +9 -9
- package/interfaces/view-base.d.ts +9 -9
- package/package.json +1 -1
- package/pipes.d.ts +16 -16
- package/plugins/align/align.editor.d.ts +7 -7
- package/plugins/align/align.plugin.d.ts +2 -2
- package/plugins/autoformat/autoformat.plugin.d.ts +6 -6
- package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -5
- package/plugins/autoformat/transforms/auto-format-inline.d.ts +9 -9
- package/plugins/blockquote/blockquote.component.d.ts +11 -11
- package/plugins/blockquote/blockquote.editor.d.ts +4 -4
- package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
- package/plugins/code/code.component.d.ts +65 -65
- package/plugins/code/code.editor.d.ts +8 -8
- package/plugins/code/code.plugin.d.ts +2 -2
- package/plugins/color/color.editor.d.ts +8 -8
- package/plugins/color/color.plugin.d.ts +1 -1
- package/plugins/color/toolbar-item.component.d.ts +16 -16
- package/plugins/common/auto-insert-data..d.ts +2 -2
- package/plugins/common/block-card.plugin.d.ts +2 -2
- package/plugins/common/get-fragment.plugin.d.ts +6 -6
- package/plugins/common/history.plugin.d.ts +9 -9
- package/plugins/common/move-selection.plugin.d.ts +2 -2
- package/plugins/common/remove-empty.plugin.d.ts +2 -2
- package/plugins/common/remove-void.plugin.d.ts +2 -2
- package/plugins/common/reset-type.plugin.d.ts +2 -2
- package/plugins/common/transforms.plugin.d.ts +8 -8
- package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
- package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
- package/plugins/font-size/font-size.editor.d.ts +10 -10
- package/plugins/heading/heading.editor.d.ts +9 -9
- package/plugins/heading/heading.plugin.d.ts +7 -7
- package/plugins/hr/hr.component.d.ts +12 -12
- package/plugins/hr/hr.editor.d.ts +4 -4
- package/plugins/hr/hr.plugin.d.ts +2 -2
- package/plugins/image/image.component.d.ts +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 +1 -1
- package/utils/match.d.ts +18 -18
- package/utils/merge-element-options.d.ts +2 -2
- package/utils/weak-maps.d.ts +5 -5
- package/worktile-theia.d.ts +5 -5
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { getElementWidth, coercePixelsFromCssValue, getColsTotalWidth, getElementHeight, getRowsTotalHeight } from '../../utils/dom';
|
|
3
|
-
import { coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ColumnResizingStore {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.resizeCols = [];
|
|
8
|
-
this.resizeRows = [];
|
|
9
|
-
}
|
|
10
|
-
storeResizingCol(colElement) {
|
|
11
|
-
if (this.resizeCols.some(cache => cache.colElement === colElement)) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
this.resizeCols.push({ colElement, baseWidth: getElementWidth(colElement) });
|
|
15
|
-
}
|
|
16
|
-
storeResizingRow(rowElement) {
|
|
17
|
-
if (this.resizeRows.some(cache => cache.rowElement === rowElement)) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
this.resizeRows.push({ rowElement, baseHeight: getElementHeight(rowElement) });
|
|
21
|
-
}
|
|
22
|
-
storeTableWidth(cols) {
|
|
23
|
-
if (!this.tableCols) {
|
|
24
|
-
this.tableCols = { cols, baseWidth: getColsTotalWidth(cols) };
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
storeTableHeight(rows) {
|
|
28
|
-
if (!this.tableRows) {
|
|
29
|
-
this.tableRows = { rows, baseHeight: getRowsTotalHeight(rows) };
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
cleanResizing() {
|
|
33
|
-
this.tableCols = null;
|
|
34
|
-
this.tableRows = null;
|
|
35
|
-
this.resizeCols = [];
|
|
36
|
-
this.resizeRows = [];
|
|
37
|
-
this.direction = null;
|
|
38
|
-
}
|
|
39
|
-
restoreLeftCols(deltaX) {
|
|
40
|
-
let index = this.resizeCols.length - 1;
|
|
41
|
-
while (index >= 0 && deltaX > 0) {
|
|
42
|
-
const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
|
|
43
|
-
if (this.resizeCols[index].baseWidth > currentWidth) {
|
|
44
|
-
if (this.resizeCols[index].baseWidth > currentWidth + deltaX) {
|
|
45
|
-
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + deltaX);
|
|
46
|
-
deltaX = 0;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
deltaX -= this.resizeCols[index].baseWidth - currentWidth;
|
|
50
|
-
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
|
|
51
|
-
this.popCol();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
index--;
|
|
55
|
-
}
|
|
56
|
-
return deltaX;
|
|
57
|
-
}
|
|
58
|
-
restoreTopRows(deltaY) {
|
|
59
|
-
let index = this.resizeRows.length - 1;
|
|
60
|
-
while (index >= 0 && deltaY > 0) {
|
|
61
|
-
const currentHeight = this.resizeRows[index].rowElement.getBoundingClientRect().height;
|
|
62
|
-
if (this.resizeRows[index].baseHeight > currentHeight) {
|
|
63
|
-
if (this.resizeRows[index].baseHeight > currentHeight + deltaY) {
|
|
64
|
-
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + deltaY);
|
|
65
|
-
deltaY = 0;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
deltaY -= this.resizeRows[index].baseHeight - currentHeight;
|
|
69
|
-
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
|
|
70
|
-
this.popRow();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
index--;
|
|
74
|
-
}
|
|
75
|
-
return deltaY;
|
|
76
|
-
}
|
|
77
|
-
restoreBottomRows(deltaY) {
|
|
78
|
-
let index = this.resizeRows.length - 1;
|
|
79
|
-
while (index >= 0 && deltaY < 0) {
|
|
80
|
-
const currentHeight = coercePixelsFromCssValue(this.resizeRows[index].rowElement.style.height);
|
|
81
|
-
if (this.resizeRows[index].baseHeight > currentHeight) {
|
|
82
|
-
if (this.resizeRows[index].baseHeight > currentHeight + Math.abs(deltaY)) {
|
|
83
|
-
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + Math.abs(deltaY));
|
|
84
|
-
deltaY = 0;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
deltaY += this.resizeRows[index].baseHeight - currentHeight;
|
|
88
|
-
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
|
|
89
|
-
this.popRow();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
index--;
|
|
93
|
-
}
|
|
94
|
-
return deltaY;
|
|
95
|
-
}
|
|
96
|
-
restoreRightCols(deltaX) {
|
|
97
|
-
let index = this.resizeCols.length - 1;
|
|
98
|
-
while (index >= 0 && deltaX < 0) {
|
|
99
|
-
const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
|
|
100
|
-
if (this.resizeCols[index].baseWidth > currentWidth) {
|
|
101
|
-
if (this.resizeCols[index].baseWidth > currentWidth + Math.abs(deltaX)) {
|
|
102
|
-
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + Math.abs(deltaX));
|
|
103
|
-
deltaX = 0;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
deltaX += this.resizeCols[index].baseWidth - currentWidth;
|
|
107
|
-
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
|
|
108
|
-
this.popCol();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
index--;
|
|
112
|
-
}
|
|
113
|
-
return deltaX;
|
|
114
|
-
}
|
|
115
|
-
getScrollWidth(deltaX) {
|
|
116
|
-
if (this.tableCols) {
|
|
117
|
-
return getColsTotalWidth(this.tableCols.cols) - this.tableCols.baseWidth - Math.abs(deltaX);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
getAddTableHeight(deltaY) {
|
|
121
|
-
if (this.tableRows) {
|
|
122
|
-
return getRowsTotalHeight(this.tableRows.rows) - this.tableRows.baseHeight - Math.abs(deltaY);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
isRestoring(deltaValue, isXAxis = true) {
|
|
126
|
-
return !this.isResizing(deltaValue, isXAxis);
|
|
127
|
-
}
|
|
128
|
-
isResizing(deltaValue, isXAxis = true) {
|
|
129
|
-
return this.direction === this.getDirection(deltaValue, isXAxis);
|
|
130
|
-
}
|
|
131
|
-
initDirection(deltaValue, isXAxis = true) {
|
|
132
|
-
if (this.resizeCols.length > 0) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (this.resizeRows.length > 0) {
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
this.direction = this.getDirection(deltaValue, isXAxis);
|
|
139
|
-
}
|
|
140
|
-
getDirection(deltaValue, isXAxis = true) {
|
|
141
|
-
return isXAxis ? (deltaValue > 0 ? 'right' : 'left') : deltaValue > 0 ? 'bottom' : 'top';
|
|
142
|
-
}
|
|
143
|
-
popCol() {
|
|
144
|
-
this.resizeCols.pop();
|
|
145
|
-
}
|
|
146
|
-
popRow() {
|
|
147
|
-
this.resizeRows.pop();
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
ColumnResizingStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ColumnResizingStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
151
|
-
ColumnResizingStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ColumnResizingStore });
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ColumnResizingStore, decorators: [{
|
|
153
|
-
type: Injectable
|
|
154
|
-
}], ctorParameters: function () { return []; } });
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { getElementWidth, coercePixelsFromCssValue, getColsTotalWidth, getElementHeight, getRowsTotalHeight } from '../../utils/dom';
|
|
3
|
+
import { coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ColumnResizingStore {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.resizeCols = [];
|
|
8
|
+
this.resizeRows = [];
|
|
9
|
+
}
|
|
10
|
+
storeResizingCol(colElement) {
|
|
11
|
+
if (this.resizeCols.some(cache => cache.colElement === colElement)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this.resizeCols.push({ colElement, baseWidth: getElementWidth(colElement) });
|
|
15
|
+
}
|
|
16
|
+
storeResizingRow(rowElement) {
|
|
17
|
+
if (this.resizeRows.some(cache => cache.rowElement === rowElement)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this.resizeRows.push({ rowElement, baseHeight: getElementHeight(rowElement) });
|
|
21
|
+
}
|
|
22
|
+
storeTableWidth(cols) {
|
|
23
|
+
if (!this.tableCols) {
|
|
24
|
+
this.tableCols = { cols, baseWidth: getColsTotalWidth(cols) };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
storeTableHeight(rows) {
|
|
28
|
+
if (!this.tableRows) {
|
|
29
|
+
this.tableRows = { rows, baseHeight: getRowsTotalHeight(rows) };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
cleanResizing() {
|
|
33
|
+
this.tableCols = null;
|
|
34
|
+
this.tableRows = null;
|
|
35
|
+
this.resizeCols = [];
|
|
36
|
+
this.resizeRows = [];
|
|
37
|
+
this.direction = null;
|
|
38
|
+
}
|
|
39
|
+
restoreLeftCols(deltaX) {
|
|
40
|
+
let index = this.resizeCols.length - 1;
|
|
41
|
+
while (index >= 0 && deltaX > 0) {
|
|
42
|
+
const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
|
|
43
|
+
if (this.resizeCols[index].baseWidth > currentWidth) {
|
|
44
|
+
if (this.resizeCols[index].baseWidth > currentWidth + deltaX) {
|
|
45
|
+
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + deltaX);
|
|
46
|
+
deltaX = 0;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
deltaX -= this.resizeCols[index].baseWidth - currentWidth;
|
|
50
|
+
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
|
|
51
|
+
this.popCol();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
index--;
|
|
55
|
+
}
|
|
56
|
+
return deltaX;
|
|
57
|
+
}
|
|
58
|
+
restoreTopRows(deltaY) {
|
|
59
|
+
let index = this.resizeRows.length - 1;
|
|
60
|
+
while (index >= 0 && deltaY > 0) {
|
|
61
|
+
const currentHeight = this.resizeRows[index].rowElement.getBoundingClientRect().height;
|
|
62
|
+
if (this.resizeRows[index].baseHeight > currentHeight) {
|
|
63
|
+
if (this.resizeRows[index].baseHeight > currentHeight + deltaY) {
|
|
64
|
+
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + deltaY);
|
|
65
|
+
deltaY = 0;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
deltaY -= this.resizeRows[index].baseHeight - currentHeight;
|
|
69
|
+
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
|
|
70
|
+
this.popRow();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
index--;
|
|
74
|
+
}
|
|
75
|
+
return deltaY;
|
|
76
|
+
}
|
|
77
|
+
restoreBottomRows(deltaY) {
|
|
78
|
+
let index = this.resizeRows.length - 1;
|
|
79
|
+
while (index >= 0 && deltaY < 0) {
|
|
80
|
+
const currentHeight = coercePixelsFromCssValue(this.resizeRows[index].rowElement.style.height);
|
|
81
|
+
if (this.resizeRows[index].baseHeight > currentHeight) {
|
|
82
|
+
if (this.resizeRows[index].baseHeight > currentHeight + Math.abs(deltaY)) {
|
|
83
|
+
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + Math.abs(deltaY));
|
|
84
|
+
deltaY = 0;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
deltaY += this.resizeRows[index].baseHeight - currentHeight;
|
|
88
|
+
this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
|
|
89
|
+
this.popRow();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
index--;
|
|
93
|
+
}
|
|
94
|
+
return deltaY;
|
|
95
|
+
}
|
|
96
|
+
restoreRightCols(deltaX) {
|
|
97
|
+
let index = this.resizeCols.length - 1;
|
|
98
|
+
while (index >= 0 && deltaX < 0) {
|
|
99
|
+
const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
|
|
100
|
+
if (this.resizeCols[index].baseWidth > currentWidth) {
|
|
101
|
+
if (this.resizeCols[index].baseWidth > currentWidth + Math.abs(deltaX)) {
|
|
102
|
+
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + Math.abs(deltaX));
|
|
103
|
+
deltaX = 0;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
deltaX += this.resizeCols[index].baseWidth - currentWidth;
|
|
107
|
+
this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
|
|
108
|
+
this.popCol();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
index--;
|
|
112
|
+
}
|
|
113
|
+
return deltaX;
|
|
114
|
+
}
|
|
115
|
+
getScrollWidth(deltaX) {
|
|
116
|
+
if (this.tableCols) {
|
|
117
|
+
return getColsTotalWidth(this.tableCols.cols) - this.tableCols.baseWidth - Math.abs(deltaX);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
getAddTableHeight(deltaY) {
|
|
121
|
+
if (this.tableRows) {
|
|
122
|
+
return getRowsTotalHeight(this.tableRows.rows) - this.tableRows.baseHeight - Math.abs(deltaY);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
isRestoring(deltaValue, isXAxis = true) {
|
|
126
|
+
return !this.isResizing(deltaValue, isXAxis);
|
|
127
|
+
}
|
|
128
|
+
isResizing(deltaValue, isXAxis = true) {
|
|
129
|
+
return this.direction === this.getDirection(deltaValue, isXAxis);
|
|
130
|
+
}
|
|
131
|
+
initDirection(deltaValue, isXAxis = true) {
|
|
132
|
+
if (this.resizeCols.length > 0) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (this.resizeRows.length > 0) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
this.direction = this.getDirection(deltaValue, isXAxis);
|
|
139
|
+
}
|
|
140
|
+
getDirection(deltaValue, isXAxis = true) {
|
|
141
|
+
return isXAxis ? (deltaValue > 0 ? 'right' : 'left') : deltaValue > 0 ? 'bottom' : 'top';
|
|
142
|
+
}
|
|
143
|
+
popCol() {
|
|
144
|
+
this.resizeCols.pop();
|
|
145
|
+
}
|
|
146
|
+
popRow() {
|
|
147
|
+
this.resizeRows.pop();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
ColumnResizingStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ColumnResizingStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
151
|
+
ColumnResizingStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ColumnResizingStore });
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ColumnResizingStore, decorators: [{
|
|
153
|
+
type: Injectable
|
|
154
|
+
}], ctorParameters: function () { return []; } });
|
|
155
155
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXppbmcuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9jb2x1bW4tcmVzaXplL3Jlc2l6aW5nLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUc1RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCO1FBQ0ksSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU9ELGdCQUFnQixDQUFDLFVBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxFQUFFO1lBQ2hFLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUErQjtRQUM1QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsRUFBRTtZQUNoRSxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMs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STtRQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFrQixFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQzVDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxHQUFHLElBQUk7UUFDM0MsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDN0YsQ0FBQztJQUVPLE1BQU07UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxNQUFNO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDOztpSEFqS1EsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEVsZW1lbnRXaWR0aCwgY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlLCBnZXRDb2xzVG90YWxXaWR0aCwgZ2V0RWxlbWVudEhlaWdodCwgZ2V0Um93c1RvdGFsSGVpZ2h0IH0gZnJvbSAnLi4vLi4vdXRpbHMvZG9tJztcbmltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29sdW1uUmVzaXppbmdTdG9yZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVzaXplQ29scyA9IFtdO1xuICAgICAgICB0aGlzLnJlc2l6ZVJvd3MgPSBbXTtcbiAgICB9XG4gICAgcHJpdmF0ZSBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nO1xuICAgIHByaXZhdGUgcmVzaXplQ29sczogeyBjb2xFbGVtZW50OiBIVE1MVGFibGVDb2xFbGVtZW50OyBiYXNlV2lkdGg6IG51bWJlciB9W107XG4gICAgcHJpdmF0ZSByZXNpemVSb3dzOiB7IHJvd0VsZW1lbnQ6IEhUTUxUYWJsZVJvd0VsZW1lbnQ7IGJhc2VIZWlnaHQ6IG51bWJlciB9W107XG4gICAgcHJpdmF0ZSB0YWJsZUNvbHM6IHsgY29sczogSFRNTFRhYmxlQ29sRWxlbWVudFtdOyBiYXNlV2lkdGg6IG51bWJlciB9O1xuICAgIHByaXZhdGUgdGFibGVSb3dzOiB7IHJvd3M6IEhUTUxUYWJsZVJvd0VsZW1lbnRbXTsgYmFzZUhlaWdodDogbnVtYmVyIH07XG5cbiAgICBzdG9yZVJlc2l6aW5nQ29sKGNvbEVsZW1lbnQ6IEhUTUxUYWJsZUNvbEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplQ29scy5zb21lKGNhY2hlID0+IGNhY2hlLmNvbEVsZW1lbnQgPT09IGNvbEVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNpemVDb2xzLnB1c2goeyBjb2xFbGVtZW50LCBiYXNlV2lkdGg6IGdldEVsZW1lbnRXaWR0aChjb2xFbGVtZW50KSB9KTtcbiAgICB9XG5cbiAgICBzdG9yZVJlc2l6aW5nUm93KHJvd0VsZW1lbnQ6IEhUTUxUYWJsZVJvd0VsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplUm93cy5zb21lKGNhY2hlID0+IGNhY2hlLnJvd0VsZW1lbnQgPT09IHJvd0VsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNpemVSb3dzLnB1c2goeyByb3dFbGVtZW50LCBiYXNlSGVpZ2h0OiBnZXRFbGVtZW50SGVpZ2h0KHJvd0VsZW1lbnQpIH0pO1xuICAgIH1cblxuICAgIHN0b3JlVGFibGVXaWR0aChjb2xzOiBIVE1MVGFibGVDb2xFbGVtZW50W10pIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlQ29scykge1xuICAgICAgICAgICAgdGhpcy50YWJsZUNvbHMgPSB7IGNvbHMsIGJhc2VXaWR0aDogZ2V0Q29sc1RvdGFsV2lkdGgoY29scykgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0b3JlVGFibGVIZWlnaHQocm93czogSFRNTFRhYmxlUm93RWxlbWVudFtdKSB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZVJvd3MpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVSb3dzID0geyByb3dzLCBiYXNlSGVpZ2h0OiBnZXRSb3dzVG90YWxIZWlnaHQocm93cykgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFuUmVzaXppbmcoKSB7XG4gICAgICAgIHRoaXMudGFibGVDb2xzID0gbnVsbDtcbiAgICAgICAgdGhpcy50YWJsZVJvd3MgPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZUNvbHMgPSBbXTtcbiAgICAgICAgdGhpcy5yZXNpemVSb3dzID0gW107XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXN0b3JlTGVmdENvbHMoZGVsdGFYOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5yZXNpemVDb2xzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGRlbHRhWCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IGNvZXJjZVBpeGVsc0Zyb21Dc3NWYWx1ZSh0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmNvbEVsZW1lbnQuc3R5bGUud2lkdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoID4gY3VycmVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoID4gY3VycmVudFdpZHRoICsgZGVsdGFYKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoY3VycmVudFdpZHRoICsgZGVsdGFYKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFYID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVggLT0gdGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggLSBjdXJyZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcENvbCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlbHRhWDtcbiAgICB9XG5cbiAgICByZXN0b3JlVG9wUm93cyhkZWx0YVk6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZVJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFZID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IHRoaXMucmVzaXplUm93c1tpbmRleF0ucm93RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVSb3dzW2luZGV4XS5iYXNlSGVpZ2h0ID4gY3VycmVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQgPiBjdXJyZW50SGVpZ2h0ICsgZGVsdGFZKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplUm93c1tpbmRleF0ucm93RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKGN1cnJlbnRIZWlnaHQgKyBkZWx0YVkpO1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWSAtPSB0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQgLSBjdXJyZW50SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLnJvd0VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcFJvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlbHRhWTtcbiAgICB9XG5cbiAgICByZXN0b3JlQm90dG9tUm93cyhkZWx0YVk6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZVJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFZIDwgMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IGNvZXJjZVBpeGVsc0Zyb21Dc3NWYWx1ZSh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLnJvd0VsZW1lbnQuc3R5bGUuaGVpZ2h0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQgPiBjdXJyZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplUm93c1tpbmRleF0uYmFzZUhlaWdodCA+IGN1cnJlbnRIZWlnaHQgKyBNYXRoLmFicyhkZWx0YVkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplUm93c1tpbmRleF0ucm93RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKGN1cnJlbnRIZWlnaHQgKyBNYXRoLmFicyhkZWx0YVkpKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFZID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVkgKz0gdGhpcy5yZXNpemVSb3dzW2luZGV4XS5iYXNlSGVpZ2h0IC0gY3VycmVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVSb3dzW2luZGV4XS5yb3dFbGVtZW50LnN0eWxlLmhlaWdodCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUodGhpcy5yZXNpemVSb3dzW2luZGV4XS5iYXNlSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BSb3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWx0YVk7XG4gICAgfVxuXG4gICAgcmVzdG9yZVJpZ2h0Q29scyhkZWx0YVg6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZUNvbHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFYIDwgMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFdpZHRoID0gY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlKHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggPiBjdXJyZW50V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggPiBjdXJyZW50V2lkdGggKyBNYXRoLmFicyhkZWx0YVgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoY3VycmVudFdpZHRoICsgTWF0aC5hYnMoZGVsdGFYKSk7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWCA9IDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFYICs9IHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoIC0gY3VycmVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmNvbEVsZW1lbnQuc3R5bGUud2lkdGggPSBjb2VyY2VDc3NQaXhlbFZhbHVlKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BDb2woKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWx0YVg7XG4gICAgfVxuXG4gICAgZ2V0U2Nyb2xsV2lkdGgoZGVsdGFYOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudGFibGVDb2xzKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29sc1RvdGFsV2lkdGgodGhpcy50YWJsZUNvbHMuY29scykgLSB0aGlzLnRhYmxlQ29scy5iYXNlV2lkdGggLSBNYXRoLmFicyhkZWx0YVgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkVGFibGVIZWlnaHQoZGVsdGFZOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudGFibGVSb3dzKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Um93c1RvdGFsSGVpZ2h0KHRoaXMudGFibGVSb3dzLnJvd3MpIC0gdGhpcy50YWJsZVJvd3MuYmFzZUhlaWdodCAtIE1hdGguYWJzKGRlbHRhWSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1Jlc3RvcmluZyhkZWx0YVZhbHVlLCBpc1hBeGlzID0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNSZXNpemluZyhkZWx0YVZhbHVlLCBpc1hBeGlzKTtcbiAgICB9XG5cbiAgICBpc1Jlc2l6aW5nKGRlbHRhVmFsdWUsIGlzWEF4aXMgPSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gdGhpcy5nZXREaXJlY3Rpb24oZGVsdGFWYWx1ZSwgaXNYQXhpcyk7XG4gICAgfVxuXG4gICAgaW5pdERpcmVjdGlvbihkZWx0YVZhbHVlOiBudW1iZXIsIGlzWEF4aXMgPSB0cnVlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUNvbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZVJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5nZXREaXJlY3Rpb24oZGVsdGFWYWx1ZSwgaXNYQXhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaXJlY3Rpb24oZGVsdGFWYWx1ZSwgaXNYQXhpcyA9IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGlzWEF4aXMgPyAoZGVsdGFWYWx1ZSA+IDAgPyAncmlnaHQnIDogJ2xlZnQnKSA6IGRlbHRhVmFsdWUgPiAwID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvcENvbCgpIHtcbiAgICAgICAgdGhpcy5yZXNpemVDb2xzLnBvcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wUm93KCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVJvd3MucG9wKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const TABLE_SELECTOR = '.the-table';
|
|
2
|
-
export const TABLE_WRAPPER_SELECTOR = '.the-table-wrapper';
|
|
3
|
-
export const RESIZE_OVERLAY_SELECTOR = '.the-table-resize-overlay-thumb';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const TABLE_SELECTOR = '.the-table';
|
|
2
|
+
export const TABLE_WRAPPER_SELECTOR = '.the-table-wrapper';
|
|
3
|
+
export const RESIZE_OVERLAY_SELECTOR = '.the-table-resize-overlay-thumb';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29sdW1uLXJlc2l6ZS9zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxvQkFBb0IsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUQUJMRV9TRUxFQ1RPUiA9ICcudGhlLXRhYmxlJztcblxuZXhwb3J0IGNvbnN0IFRBQkxFX1dSQVBQRVJfU0VMRUNUT1IgPSAnLnRoZS10YWJsZS13cmFwcGVyJztcblxuZXhwb3J0IGNvbnN0IFJFU0laRV9PVkVSTEFZX1NFTEVDVE9SID0gJy50aGUtdGFibGUtcmVzaXplLW92ZXJsYXktdGh1bWInO1xuIl19
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import { Component, Input, HostBinding, HostListener } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "ngx-tethys/popover";
|
|
4
|
-
import * as i2 from "ngx-tethys/action-menu";
|
|
5
|
-
import * as i3 from "ngx-tethys/icon";
|
|
6
|
-
import * as i4 from "@angular/common";
|
|
7
|
-
export class TheContextMenuComponent {
|
|
8
|
-
constructor(elementRef, thyPopoverRef) {
|
|
9
|
-
this.elementRef = elementRef;
|
|
10
|
-
this.thyPopoverRef = thyPopoverRef;
|
|
11
|
-
this.menuEntities = [];
|
|
12
|
-
this.wrap = true;
|
|
13
|
-
}
|
|
14
|
-
handleDocumentMouseDown(event) {
|
|
15
|
-
if (!this.elementRef.nativeElement.contains(event.target) && event.button !== 2) {
|
|
16
|
-
this.thyPopoverRef.close();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
handleMouseDown(event) {
|
|
20
|
-
event.preventDefault();
|
|
21
|
-
event.stopPropagation();
|
|
22
|
-
}
|
|
23
|
-
itemMousedown(event, entity) {
|
|
24
|
-
event.preventDefault();
|
|
25
|
-
this.actionHandle(entity);
|
|
26
|
-
this.thyPopoverRef.close();
|
|
27
|
-
}
|
|
28
|
-
itemMouseleave(event, entity) {
|
|
29
|
-
event.preventDefault();
|
|
30
|
-
this.deactiveHandle(event, entity);
|
|
31
|
-
}
|
|
32
|
-
itemMouseenter(event, entity) {
|
|
33
|
-
event.preventDefault();
|
|
34
|
-
this.activeHandle(event, entity);
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() { }
|
|
37
|
-
}
|
|
38
|
-
TheContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheContextMenuComponent, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
TheContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: TheContextMenuComponent, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactiveHandle: "deactiveHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<thy-action-menu>\
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheContextMenuComponent, decorators: [{
|
|
41
|
-
type: Component,
|
|
42
|
-
args: [{
|
|
43
|
-
selector: 'the-contextmenu',
|
|
44
|
-
templateUrl: 'contextmenu.component.html'
|
|
45
|
-
}]
|
|
46
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThyPopoverRef }]; }, propDecorators: { menuEntities: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}], actionHandle: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], activeHandle: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], deactiveHandle: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}], wrap: [{
|
|
55
|
-
type: HostBinding,
|
|
56
|
-
args: ['class.the-overlay-menu-wrap']
|
|
57
|
-
}], handleDocumentMouseDown: [{
|
|
58
|
-
type: HostListener,
|
|
59
|
-
args: ['document: mousedown', ['$event']]
|
|
60
|
-
}], handleMouseDown: [{
|
|
61
|
-
type: HostListener,
|
|
62
|
-
args: ['mousedown', ['$event']]
|
|
63
|
-
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input, HostBinding, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-tethys/popover";
|
|
4
|
+
import * as i2 from "ngx-tethys/action-menu";
|
|
5
|
+
import * as i3 from "ngx-tethys/icon";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
export class TheContextMenuComponent {
|
|
8
|
+
constructor(elementRef, thyPopoverRef) {
|
|
9
|
+
this.elementRef = elementRef;
|
|
10
|
+
this.thyPopoverRef = thyPopoverRef;
|
|
11
|
+
this.menuEntities = [];
|
|
12
|
+
this.wrap = true;
|
|
13
|
+
}
|
|
14
|
+
handleDocumentMouseDown(event) {
|
|
15
|
+
if (!this.elementRef.nativeElement.contains(event.target) && event.button !== 2) {
|
|
16
|
+
this.thyPopoverRef.close();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
handleMouseDown(event) {
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
event.stopPropagation();
|
|
22
|
+
}
|
|
23
|
+
itemMousedown(event, entity) {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
this.actionHandle(entity);
|
|
26
|
+
this.thyPopoverRef.close();
|
|
27
|
+
}
|
|
28
|
+
itemMouseleave(event, entity) {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
this.deactiveHandle(event, entity);
|
|
31
|
+
}
|
|
32
|
+
itemMouseenter(event, entity) {
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
this.activeHandle(event, entity);
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() { }
|
|
37
|
+
}
|
|
38
|
+
TheContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheContextMenuComponent, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
TheContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: TheContextMenuComponent, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactiveHandle: "deactiveHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<thy-action-menu>\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <a\n thyActionMenuItem\n href=\"javascript:;\"\n *ngIf=\"!menuItem.invisibility\"\n (mousedown)=\"itemMousedown($event, menuItem)\"\n (mouseenter)=\"itemMouseenter($event, menuItem)\"\n (mouseleave)=\"itemMouseleave($event, menuItem)\"\n >\n <span thyActionMenuItemIcon>\n <thy-icon\n *ngIf=\"menuItem.backgroundColor; else elseIcon\"\n [thyIconName]=\"menuItem.icon\"\n thyIconType=\"twotone\"\n [thyTwotoneColor]=\"menuItem.backgroundColor\"\n ></thy-icon>\n <ng-template #elseIcon>\n <thy-icon [thyIconName]=\"menuItem.icon\"></thy-icon>\n </ng-template>\n </span>\n <span thyActionMenuItemName>{{ menuItem.name }}</span>\n <span *ngIf=\"menuItem.extendIcon\" thyActionMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ menuItem.extendIcon }}\"></thy-icon>\n </span>\n </a>\n <thy-action-menu-divider *ngIf=\"menuItem.divider\"></thy-action-menu-divider>\n </ng-container>\n</thy-action-menu>\n", components: [{ type: i2.ThyActionMenuComponent, selector: "thy-action-menu", inputs: ["thyTheme", "thyWidth"] }, { type: i3.ThyIconComponent, selector: "thy-icon", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { type: i2.ThyActionMenuDividerComponent, selector: "thy-action-menu-divider", inputs: ["thyTitle", "thyType"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ThyActionMenuItemDirective, selector: "[thyActionMenuItem]", inputs: ["thyDisabled", "thyType"] }, { type: i2.ThyActionMenuItemIconDirective, selector: "[thyActionMenuItemIcon]" }, { type: i2.ThyActionMenuItemNameDirective, selector: "[thyActionMenuItemName]" }, { type: i2.ThyActionMenuItemExtendIconDirective, selector: "[thyActionMenuItemExtendIcon]" }] });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheContextMenuComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{
|
|
43
|
+
selector: 'the-contextmenu',
|
|
44
|
+
templateUrl: 'contextmenu.component.html'
|
|
45
|
+
}]
|
|
46
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThyPopoverRef }]; }, propDecorators: { menuEntities: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], actionHandle: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], activeHandle: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], deactiveHandle: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], wrap: [{
|
|
55
|
+
type: HostBinding,
|
|
56
|
+
args: ['class.the-overlay-menu-wrap']
|
|
57
|
+
}], handleDocumentMouseDown: [{
|
|
58
|
+
type: HostListener,
|
|
59
|
+
args: ['document: mousedown', ['$event']]
|
|
60
|
+
}], handleMouseDown: [{
|
|
61
|
+
type: HostListener,
|
|
62
|
+
args: ['mousedown', ['$event']]
|
|
63
|
+
}] } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBYyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUWhHLE1BQU0sT0FBTyx1QkFBdUI7SUE2Q2hDLFlBQW1CLFVBQXNCLEVBQVUsYUFBcUQ7UUFBckYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUF3QztRQTNDeEcsaUJBQVksR0FBaUIsRUFBRSxDQUFDO1FBWWhDLFNBQUksR0FBRyxJQUFJLENBQUM7SUErQitGLENBQUM7SUE1QjVHLHVCQUF1QixDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQXFCLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUdELGVBQWUsQ0FBQyxLQUFpQjtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxNQUFrQjtRQUMvQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBaUIsRUFBRSxNQUFrQjtRQUNoRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQixFQUFFLE1BQWtCO1FBQ2hELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsUUFBUSxLQUFJLENBQUM7O3FIQS9DSix1QkFBdUI7eUdBQXZCLHVCQUF1QixzWENScEMsbXhDQTZCQTs0RkRyQmEsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSw0QkFBNEI7aUJBQzVDOzZIQUdHLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixJQUFJO3NCQURILFdBQVc7dUJBQUMsNkJBQTZCO2dCQUkxQyx1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUS9DLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgTWVudUVudGl0eSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvdGFibGUvdGFibGUudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1jb250ZXh0bWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICdjb250ZXh0bWVudS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGhlQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgbWVudUVudGl0aWVzOiBNZW51RW50aXR5W10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWN0aW9uSGFuZGxlOiAoZW50aXR5OiBNZW51RW50aXR5KSA9PiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVIYW5kbGU6IChldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBkZWFjdGl2ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZS1vdmVybGF5LW1lbnUtd3JhcCcpXG4gICAgd3JhcCA9IHRydWU7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDogbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVEb2N1bWVudE1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiYgZXZlbnQuYnV0dG9uICE9PSAyKSB7XG4gICAgICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGl0ZW1Nb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGlvbkhhbmRsZShlbnRpdHkpO1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBpdGVtTW91c2VsZWF2ZShldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZGVhY3RpdmVIYW5kbGUoZXZlbnQsIGVudGl0eSk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlZW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB0aHlQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPFRoZUNvbnRleHRNZW51Q29tcG9uZW50Pikge31cblxuICAgIG5nT25Jbml0KCkge31cbn1cbiIsIjx0aHktYWN0aW9uLW1lbnU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudUl0ZW0gb2YgbWVudUVudGl0aWVzXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICB0aHlBY3Rpb25NZW51SXRlbVxuICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgICAqbmdJZj1cIiFtZW51SXRlbS5pbnZpc2liaWxpdHlcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJpdGVtTW91c2Vkb3duKCRldmVudCwgbWVudUl0ZW0pXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIml0ZW1Nb3VzZWVudGVyKCRldmVudCwgbWVudUl0ZW0pXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIml0ZW1Nb3VzZWxlYXZlKCRldmVudCwgbWVudUl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gdGh5QWN0aW9uTWVudUl0ZW1JY29uPlxuICAgICAgICAgICAgICAgIDx0aHktaWNvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1lbnVJdGVtLmJhY2tncm91bmRDb2xvcjsgZWxzZSBlbHNlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0aHlJY29uTmFtZV09XCJtZW51SXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgdGh5SWNvblR5cGU9XCJ0d290b25lXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoeVR3b3RvbmVDb2xvcl09XCJtZW51SXRlbS5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgICAgICAgID48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUljb24+XG4gICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwibWVudUl0ZW0uaWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIHRoeUFjdGlvbk1lbnVJdGVtTmFtZT57eyBtZW51SXRlbS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtZW51SXRlbS5leHRlbmRJY29uXCIgdGh5QWN0aW9uTWVudUl0ZW1FeHRlbmRJY29uPlxuICAgICAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInt7IG1lbnVJdGVtLmV4dGVuZEljb24gfX1cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICAgIDx0aHktYWN0aW9uLW1lbnUtZGl2aWRlciAqbmdJZj1cIm1lbnVJdGVtLmRpdmlkZXJcIj48L3RoeS1hY3Rpb24tbWVudS1kaXZpZGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC90aHktYWN0aW9uLW1lbnU+XG4iXX0=
|