@worktile/theia 18.0.16 → 19.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/constants/node-types.d.ts +1 -0
- package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
- package/fesm2022/worktile-theia.mjs +262 -281
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/package.json +4 -6
- package/plugins/code/code.component.scss +1 -2
- package/plugins/image/image.component.d.ts +1 -1
- package/plugins/mention/suggestion.component.d.ts +1 -1
- package/esm2022/components/action/prevent-default.mjs +0 -21
- package/esm2022/components/column-resize/column-resize-notifier.mjs +0 -31
- package/esm2022/components/column-resize/column-resize.directive.mjs +0 -124
- package/esm2022/components/column-resize/event-dispatcher.mjs +0 -56
- package/esm2022/components/column-resize/overlay-handle.component.mjs +0 -144
- package/esm2022/components/column-resize/resize-ref.mjs +0 -26
- package/esm2022/components/column-resize/resizing.store.mjs +0 -92
- package/esm2022/components/column-resize/selectors.mjs +0 -4
- package/esm2022/components/contextmenu/contextmenu.component.mjs +0 -99
- package/esm2022/components/conversion-hint/conversion-hint.component.mjs +0 -56
- package/esm2022/components/element/element.component.mjs +0 -23
- package/esm2022/components/index.mjs +0 -24
- package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +0 -131
- package/esm2022/components/listbox/listbox.mjs +0 -380
- package/esm2022/components/listbox/listbox.type.mjs +0 -5
- package/esm2022/components/plugin-menu/plugin-menu.component.mjs +0 -272
- package/esm2022/components/table-select/table-select.component.mjs +0 -49
- package/esm2022/components/template/template.component.mjs +0 -62
- package/esm2022/components/text/text.component.mjs +0 -57
- package/esm2022/components/toolbar/toolbar.component.mjs +0 -262
- package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -137
- package/esm2022/components/toolbar-group/toolbar-group.component.mjs +0 -125
- package/esm2022/components/toolbar-item/toolbar-item.component.mjs +0 -80
- package/esm2022/constants/auto-format-rules.mjs +0 -167
- package/esm2022/constants/code.mjs +0 -85
- package/esm2022/constants/color-select.mjs +0 -3
- package/esm2022/constants/default.mjs +0 -11
- package/esm2022/constants/error.mjs +0 -7
- package/esm2022/constants/index.mjs +0 -9
- package/esm2022/constants/node-types.mjs +0 -136
- package/esm2022/constants/plugin-menu.mjs +0 -311
- package/esm2022/constants/selector.mjs +0 -3
- package/esm2022/constants/toolbar.mjs +0 -53
- package/esm2022/core/create-plugin.mjs +0 -5
- package/esm2022/core/create-toolbar.mjs +0 -55
- package/esm2022/core/index.mjs +0 -6
- package/esm2022/core/toolbar-item/base-toolbar-item.mjs +0 -95
- package/esm2022/core/utils/combine-plugins.mjs +0 -10
- package/esm2022/core/utils/flatten-deep-plugins.mjs +0 -19
- package/esm2022/core/utils/get-plugin-options.mjs +0 -3
- package/esm2022/core/utils/get-plugin.mjs +0 -2
- package/esm2022/core/utils/get-plugins.mjs +0 -4
- package/esm2022/core/utils/index.mjs +0 -12
- package/esm2022/core/utils/merge-array.mjs +0 -18
- package/esm2022/core/utils/merge-deep-plugins.mjs +0 -14
- package/esm2022/core/utils/merge-options.mjs +0 -25
- package/esm2022/core/utils/nested-structure-by-key.mjs +0 -11
- package/esm2022/core/utils/plugin-menu.mjs +0 -63
- package/esm2022/core/utils/plugins-by-key.mjs +0 -10
- package/esm2022/core/with-theia.mjs +0 -25
- package/esm2022/custom-types.mjs +0 -2
- package/esm2022/editor.component.mjs +0 -488
- package/esm2022/editor.module.mjs +0 -18
- package/esm2022/i18n/i18n.mjs +0 -10
- package/esm2022/i18n/i18n.service.mjs +0 -46
- package/esm2022/i18n/i18n.token.mjs +0 -9
- package/esm2022/i18n/index.mjs +0 -10
- package/esm2022/i18n/locales/de-de.mjs +0 -102
- package/esm2022/i18n/locales/en-us.mjs +0 -102
- package/esm2022/i18n/locales/ja-jp.mjs +0 -102
- package/esm2022/i18n/locales/ru-ru.mjs +0 -102
- package/esm2022/i18n/locales/zh-hans.mjs +0 -102
- package/esm2022/i18n/locales/zh-hant.mjs +0 -102
- package/esm2022/interfaces/auto-format.mjs +0 -2
- package/esm2022/interfaces/editor.mjs +0 -26
- package/esm2022/interfaces/element.mjs +0 -2
- package/esm2022/interfaces/image.mjs +0 -3
- package/esm2022/interfaces/index.mjs +0 -11
- package/esm2022/interfaces/plugins/index.mjs +0 -6
- package/esm2022/interfaces/plugins/no-infer.mjs +0 -2
- package/esm2022/interfaces/plugins/plugin-key.mjs +0 -42
- package/esm2022/interfaces/plugins/plugin-menu.mjs +0 -19
- package/esm2022/interfaces/plugins/plugins.mjs +0 -2
- package/esm2022/interfaces/plugins/with-override.mjs +0 -2
- package/esm2022/interfaces/preset.mjs +0 -3
- package/esm2022/interfaces/reset-block-type-plugin-options.mjs +0 -2
- package/esm2022/interfaces/toolbar.mjs +0 -12
- package/esm2022/interfaces/upload.mjs +0 -2
- package/esm2022/interfaces/utility/index.mjs +0 -4
- package/esm2022/interfaces/utility/nested-structure-by-key.mjs +0 -2
- package/esm2022/interfaces/utility/override-by-key.mjs +0 -2
- package/esm2022/interfaces/utility/types.mjs +0 -2
- package/esm2022/interfaces/valid-children-types.mjs +0 -36
- package/esm2022/interfaces/view-base.mjs +0 -38
- package/esm2022/pipes.mjs +0 -61
- package/esm2022/plugins/align/align.editor.mjs +0 -41
- package/esm2022/plugins/align/align.plugin.mjs +0 -64
- package/esm2022/plugins/autoformat/autoformat.plugin.mjs +0 -109
- package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
- package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
- package/esm2022/plugins/blockquote/blockquote.component.mjs +0 -16
- package/esm2022/plugins/blockquote/blockquote.editor.mjs +0 -20
- package/esm2022/plugins/blockquote/blockquote.plugin.mjs +0 -84
- package/esm2022/plugins/code/code.component.mjs +0 -255
- package/esm2022/plugins/code/code.editor.mjs +0 -59
- package/esm2022/plugins/code/code.plugin.mjs +0 -67
- package/esm2022/plugins/color/color.editor.mjs +0 -27
- package/esm2022/plugins/color/color.plugin.mjs +0 -32
- package/esm2022/plugins/color/toolbar-item.component.mjs +0 -99
- package/esm2022/plugins/common/block-card.plugin.mjs +0 -330
- package/esm2022/plugins/common/common.plugin.mjs +0 -49
- package/esm2022/plugins/common/get-fragment.plugin.mjs +0 -24
- package/esm2022/plugins/common/history.plugin.mjs +0 -31
- package/esm2022/plugins/common/insert-data-by-invalid-type.mjs +0 -23
- package/esm2022/plugins/common/move-selection.plugin.mjs +0 -105
- package/esm2022/plugins/common/remove-empty.plugin.mjs +0 -61
- package/esm2022/plugins/common/remove-void.plugin.mjs +0 -60
- package/esm2022/plugins/common/reset-type.plugin.mjs +0 -35
- package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +0 -61
- package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +0 -142
- package/esm2022/plugins/font-size/font-size.editor.mjs +0 -98
- package/esm2022/plugins/heading/heading.editor.mjs +0 -54
- package/esm2022/plugins/heading/heading.plugin.mjs +0 -136
- package/esm2022/plugins/hr/hr.component.mjs +0 -37
- package/esm2022/plugins/hr/hr.editor.mjs +0 -16
- package/esm2022/plugins/hr/hr.plugin.mjs +0 -56
- package/esm2022/plugins/image/image.component.mjs +0 -474
- package/esm2022/plugins/image/image.editor.mjs +0 -116
- package/esm2022/plugins/image/image.plugin.mjs +0 -90
- package/esm2022/plugins/indent/indent.editor.mjs +0 -78
- package/esm2022/plugins/indent/indent.plugin.mjs +0 -59
- package/esm2022/plugins/indent/on-keydown-indent.mjs +0 -59
- package/esm2022/plugins/index.mjs +0 -73
- package/esm2022/plugins/inline-code/inline-code.component.mjs +0 -28
- package/esm2022/plugins/inline-code/inline-code.editor.mjs +0 -49
- package/esm2022/plugins/inline-code/inline-code.plugin.mjs +0 -67
- package/esm2022/plugins/link/edit/link-edit.component.mjs +0 -104
- package/esm2022/plugins/link/hover/link-hover.component.mjs +0 -38
- package/esm2022/plugins/link/link.component.mjs +0 -170
- package/esm2022/plugins/link/link.editor.mjs +0 -87
- package/esm2022/plugins/link/link.plugin.mjs +0 -89
- package/esm2022/plugins/link/link.types.mjs +0 -12
- package/esm2022/plugins/list/components/bulleted-list.component.mjs +0 -28
- package/esm2022/plugins/list/components/list-item.component.mjs +0 -88
- package/esm2022/plugins/list/components/numbered-list.component.mjs +0 -37
- package/esm2022/plugins/list/list.editor.mjs +0 -128
- package/esm2022/plugins/list/list.plugin.mjs +0 -302
- package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
- package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +0 -18
- package/esm2022/plugins/list/normalizers/normalize-no.mjs +0 -43
- package/esm2022/plugins/list/on-key-down-list.mjs +0 -33
- package/esm2022/plugins/list/queries/get-list-item-entry.mjs +0 -28
- package/esm2022/plugins/list/queries/get-list-item-sublist.mjs +0 -12
- package/esm2022/plugins/list/queries/get-list-types.mjs +0 -5
- package/esm2022/plugins/list/queries/get-start-list-item.mjs +0 -27
- package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +0 -27
- package/esm2022/plugins/list/queries/is-in-list.mjs +0 -6
- package/esm2022/plugins/list/queries/is-list-nested.mjs +0 -10
- package/esm2022/plugins/list/queries/is-list.mjs +0 -5
- package/esm2022/plugins/list/queries/is-node-type-list.mjs +0 -5
- package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
- package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
- package/esm2022/plugins/list/queries/is-single-list-item.mjs +0 -9
- package/esm2022/plugins/list/transforms/insert-list-data.mjs +0 -72
- package/esm2022/plugins/list/transforms/insert-list-item.mjs +0 -73
- package/esm2022/plugins/list/transforms/move-list-item-down.mjs +0 -41
- package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
- package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
- package/esm2022/plugins/list/transforms/move-list-item-up.mjs +0 -78
- package/esm2022/plugins/list/transforms/unwrap-list.mjs +0 -10
- package/esm2022/plugins/list/types.mjs +0 -2
- package/esm2022/plugins/mark/mark.editor.mjs +0 -28
- package/esm2022/plugins/mark/mark.plugin.mjs +0 -105
- package/esm2022/plugins/mention/index.mjs +0 -5
- package/esm2022/plugins/mention/mention.editor.mjs +0 -179
- package/esm2022/plugins/mention/mention.plugin.mjs +0 -92
- package/esm2022/plugins/mention/mention.type.mjs +0 -2
- package/esm2022/plugins/mention/suggestion.component.mjs +0 -22
- package/esm2022/plugins/node-id/node-id.plugin.mjs +0 -78
- package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +0 -28
- package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +0 -18
- package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +0 -33
- package/esm2022/plugins/paint-format/paint-format.editor.mjs +0 -126
- package/esm2022/plugins/public-api.mjs +0 -20
- package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +0 -126
- package/esm2022/plugins/quick-insert/index.mjs +0 -4
- package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +0 -70
- package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +0 -109
- package/esm2022/plugins/soft-break/soft-break.plugin.mjs +0 -36
- package/esm2022/plugins/soft-break/soft-break.types.mjs +0 -2
- package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -132
- package/esm2022/plugins/table/components/row/row.component.mjs +0 -93
- package/esm2022/plugins/table/components/table.component.mjs +0 -887
- package/esm2022/plugins/table/components/td/td.component.mjs +0 -610
- package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +0 -102
- package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -179
- package/esm2022/plugins/table/table.editor.mjs +0 -301
- package/esm2022/plugins/table/table.pipe.mjs +0 -66
- package/esm2022/plugins/table/table.plugin.mjs +0 -556
- package/esm2022/plugins/table/table.service.mjs +0 -122
- package/esm2022/plugins/table/table.store.mjs +0 -417
- package/esm2022/plugins/table/table.types.mjs +0 -68
- package/esm2022/plugins/table/toolbar-item.component.mjs +0 -95
- package/esm2022/plugins/table/transforms/clear-cell.mjs +0 -14
- package/esm2022/plugins/table/transforms/clear-table-node.mjs +0 -27
- package/esm2022/plugins/table/transforms/index.mjs +0 -8
- package/esm2022/plugins/table/transforms/insert-column.mjs +0 -69
- package/esm2022/plugins/table/transforms/insert-row.mjs +0 -50
- package/esm2022/plugins/table/transforms/insert-table.mjs +0 -15
- package/esm2022/plugins/table/transforms/move-selection-from-cell.mjs +0 -91
- package/esm2022/plugins/table/transforms/remove-column.mjs +0 -51
- package/esm2022/plugins/table/transforms/remove-row.mjs +0 -48
- package/esm2022/plugins/table/transforms/remove-table.mjs +0 -49
- package/esm2022/plugins/table/utils/add-columns.mjs +0 -38
- package/esm2022/plugins/table/utils/calc-anchor-position.mjs +0 -26
- package/esm2022/plugins/table/utils/calc-span.mjs +0 -73
- package/esm2022/plugins/table/utils/calculate-table.mjs +0 -116
- package/esm2022/plugins/table/utils/cell-position.mjs +0 -57
- package/esm2022/plugins/table/utils/create-cell.mjs +0 -19
- package/esm2022/plugins/table/utils/create-row.mjs +0 -12
- package/esm2022/plugins/table/utils/create-table-position.mjs +0 -10
- package/esm2022/plugins/table/utils/create-table.mjs +0 -15
- package/esm2022/plugins/table/utils/get-grid-columns.mjs +0 -79
- package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
- package/esm2022/plugins/table/utils/get-next-cell.mjs +0 -44
- package/esm2022/plugins/table/utils/get-select-cell-node.mjs +0 -16
- package/esm2022/plugins/table/utils/handle-cell.mjs +0 -25
- package/esm2022/plugins/table/utils/index.mjs +0 -16
- package/esm2022/plugins/table/utils/is-header-row.mjs +0 -15
- package/esm2022/plugins/table/utils/is-legal-table.mjs +0 -26
- package/esm2022/plugins/table/utils/is-range-in-table.mjs +0 -16
- package/esm2022/plugins/table/utils/is-selection-in-table.mjs +0 -51
- package/esm2022/plugins/table/utils/is-virtual-key.mjs +0 -13
- package/esm2022/plugins/table/utils/merge-cell.mjs +0 -110
- package/esm2022/plugins/table/utils/next-path.mjs +0 -5
- package/esm2022/plugins/table/utils/normalize-table.mjs +0 -31
- package/esm2022/plugins/table/utils/remove-columns.mjs +0 -23
- package/esm2022/plugins/table/utils/remove-row-column.mjs +0 -45
- package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
- package/esm2022/plugins/table/utils/split-cell.mjs +0 -29
- package/esm2022/plugins/table/utils/table-entry.mjs +0 -21
- package/esm2022/plugins/table/utils/table-position.mjs +0 -251
- package/esm2022/plugins/table/utils/table-viewport.mjs +0 -41
- package/esm2022/plugins/todo-item/todo-item.component.mjs +0 -65
- package/esm2022/plugins/todo-item/todo-item.editor.mjs +0 -32
- package/esm2022/plugins/todo-item/todo-item.plugin.mjs +0 -93
- package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +0 -95
- package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +0 -59
- package/esm2022/public-api.mjs +0 -22
- package/esm2022/queries/anchor-block-entry.mjs +0 -13
- package/esm2022/queries/anchor-block.mjs +0 -6
- package/esm2022/queries/anchor-inline-entry.mjs +0 -10
- package/esm2022/queries/find-descendant.mjs +0 -47
- package/esm2022/queries/find-node.mjs +0 -45
- package/esm2022/queries/find-path.mjs +0 -28
- package/esm2022/queries/get-above-by-type.mjs +0 -14
- package/esm2022/queries/get-above.mjs +0 -9
- package/esm2022/queries/get-anchor-block-entry.mjs +0 -8
- package/esm2022/queries/get-block-above.mjs +0 -10
- package/esm2022/queries/get-block-card-above.mjs +0 -10
- package/esm2022/queries/get-block-card-cursor.mjs +0 -9
- package/esm2022/queries/get-container-blocks.mjs +0 -12
- package/esm2022/queries/get-directly-parent.mjs +0 -12
- package/esm2022/queries/get-insert-elements-path.mjs +0 -46
- package/esm2022/queries/get-last-child-path.mjs +0 -9
- package/esm2022/queries/get-last-node.mjs +0 -17
- package/esm2022/queries/get-next-sibling-nodes.mjs +0 -17
- package/esm2022/queries/get-node.mjs +0 -10
- package/esm2022/queries/get-nodes-by-type.mjs +0 -15
- package/esm2022/queries/get-nodes.mjs +0 -7
- package/esm2022/queries/get-parent.mjs +0 -12
- package/esm2022/queries/get-plain-text.mjs +0 -16
- package/esm2022/queries/get-plugin-by-toolbar.mjs +0 -13
- package/esm2022/queries/get-point-before.mjs +0 -62
- package/esm2022/queries/get-point-from-location.mjs +0 -15
- package/esm2022/queries/get-previous-path.mjs +0 -9
- package/esm2022/queries/get-rang-from-block-start.mjs +0 -16
- package/esm2022/queries/get-range-before.mjs +0 -17
- package/esm2022/queries/get-selection-marks.mjs +0 -18
- package/esm2022/queries/get-selection-nodes-by-type.mjs +0 -30
- package/esm2022/queries/get-text.mjs +0 -9
- package/esm2022/queries/get-toolbar-disabled.mjs +0 -13
- package/esm2022/queries/index.mjs +0 -62
- package/esm2022/queries/is-across-blocks.mjs +0 -7
- package/esm2022/queries/is-ancestor-empty.mjs +0 -6
- package/esm2022/queries/is-ancestor.mjs +0 -3
- package/esm2022/queries/is-block-above-empty.mjs +0 -11
- package/esm2022/queries/is-block-active.mjs +0 -8
- package/esm2022/queries/is-block-card-cursor.mjs +0 -16
- package/esm2022/queries/is-block-text-empty-after-selection.mjs +0 -31
- package/esm2022/queries/is-collapsed.mjs +0 -7
- package/esm2022/queries/is-contain-nested-type.mjs +0 -29
- package/esm2022/queries/is-container-type.mjs +0 -3
- package/esm2022/queries/is-descendant.mjs +0 -3
- package/esm2022/queries/is-empty-content-filter.mjs +0 -22
- package/esm2022/queries/is-empty-content.mjs +0 -15
- package/esm2022/queries/is-empty-paragraph-by-path.mjs +0 -7
- package/esm2022/queries/is-empty-paragraph.mjs +0 -28
- package/esm2022/queries/is-first-child.mjs +0 -5
- package/esm2022/queries/is-global-collapsed.mjs +0 -5
- package/esm2022/queries/is-include-types.mjs +0 -12
- package/esm2022/queries/is-node-type-in.mjs +0 -9
- package/esm2022/queries/is-node-type.mjs +0 -15
- package/esm2022/queries/is-paragraph.mjs +0 -9
- package/esm2022/queries/is-point-at-root.mjs +0 -2
- package/esm2022/queries/is-range-across-blocks.mjs +0 -22
- package/esm2022/queries/is-range-at-root.mjs +0 -3
- package/esm2022/queries/is-root-path.mjs +0 -2
- package/esm2022/queries/is-start.mjs +0 -6
- package/esm2022/queries/some-node.mjs +0 -9
- package/esm2022/services/context.service.mjs +0 -140
- package/esm2022/services/table-contextmenu.service.mjs +0 -288
- package/esm2022/services/toolbar.service.mjs +0 -47
- package/esm2022/shortcuts/index.mjs +0 -5
- package/esm2022/shortcuts/mark.mjs +0 -25
- package/esm2022/test/basic/basic.component.mjs +0 -61
- package/esm2022/test/faker/data-transfer-faker.mjs +0 -13
- package/esm2022/test/faker/tethys-icon-faker.mjs +0 -22
- package/esm2022/test/index.mjs +0 -7
- package/esm2022/test/utils/mock-plugins.mjs +0 -104
- package/esm2022/test/utils/preset-config.mjs +0 -17
- package/esm2022/test/utils/with-plugin.mjs +0 -11
- package/esm2022/transforms/apply-deep-to-nodes.mjs +0 -22
- package/esm2022/transforms/clear-marks.mjs +0 -23
- package/esm2022/transforms/delete-element.mjs +0 -12
- package/esm2022/transforms/delete-node-by-type.mjs +0 -10
- package/esm2022/transforms/handle-continual-delete-backward.mjs +0 -18
- package/esm2022/transforms/handle-continual-insert-break.mjs +0 -20
- package/esm2022/transforms/index.mjs +0 -19
- package/esm2022/transforms/insert-elements.mjs +0 -55
- package/esm2022/transforms/insert-paragraph.mjs +0 -6
- package/esm2022/transforms/merge-deep-to-nodes.mjs +0 -9
- package/esm2022/transforms/move-children.mjs +0 -22
- package/esm2022/transforms/on-keydown-reset-block-type.mjs +0 -23
- package/esm2022/transforms/set-end-selection.mjs +0 -10
- package/esm2022/transforms/set-marks.mjs +0 -9
- package/esm2022/transforms/set-node-by-type.mjs +0 -10
- package/esm2022/transforms/set-node.mjs +0 -6
- package/esm2022/transforms/un-hang-range.mjs +0 -11
- package/esm2022/transforms/un-wrap.mjs +0 -12
- package/esm2022/transforms/unwrap-nodes-by-type.mjs +0 -14
- package/esm2022/utils/auto-focus.mjs +0 -24
- package/esm2022/utils/blob.mjs +0 -16
- package/esm2022/utils/cast-array.mjs +0 -7
- package/esm2022/utils/color-picker.mjs +0 -15
- package/esm2022/utils/common.mjs +0 -11
- package/esm2022/utils/copy-node.mjs +0 -38
- package/esm2022/utils/create-empty-paragraph.mjs +0 -14
- package/esm2022/utils/data-transform.mjs +0 -48
- package/esm2022/utils/dom.mjs +0 -56
- package/esm2022/utils/editor-uuid.mjs +0 -8
- package/esm2022/utils/fragment.mjs +0 -82
- package/esm2022/utils/get-editable-element-height.mjs +0 -6
- package/esm2022/utils/get-mode.mjs +0 -14
- package/esm2022/utils/get-toolbar-class.mjs +0 -6
- package/esm2022/utils/id-creator.mjs +0 -11
- package/esm2022/utils/index.mjs +0 -23
- package/esm2022/utils/insert-data-by-invalid-type.mjs +0 -70
- package/esm2022/utils/is-clean-empty-paragraph.mjs +0 -37
- package/esm2022/utils/is-inline.mjs +0 -9
- package/esm2022/utils/lodash.mjs +0 -3
- package/esm2022/utils/match.mjs +0 -32
- package/esm2022/utils/merge-element-options.mjs +0 -19
- package/esm2022/utils/normalize.mjs +0 -61
- package/esm2022/utils/refocus.mjs +0 -47
- package/esm2022/utils/scrolling.mjs +0 -43
- package/esm2022/utils/update-popover-position.mjs +0 -26
- package/esm2022/utils/weak-maps.mjs +0 -9
- package/esm2022/worktile-theia.mjs +0 -5
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { AngularEditor } from 'slate-angular';
|
|
3
|
-
import { TheTableToolbar } from './components/toolbar/table-toolbar.component';
|
|
4
|
-
import { TableEditor } from './table.editor';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "ngx-tethys/popover";
|
|
7
|
-
import * as i2 from "@angular/cdk/overlay";
|
|
8
|
-
import * as i3 from "./table.store";
|
|
9
|
-
export class TableService {
|
|
10
|
-
get isOpened() {
|
|
11
|
-
return this.toolbarRef && this.toolbarRef.componentInstance;
|
|
12
|
-
}
|
|
13
|
-
constructor(thyPopover, overlay, tableStore, ngZone) {
|
|
14
|
-
this.thyPopover = thyPopover;
|
|
15
|
-
this.overlay = overlay;
|
|
16
|
-
this.tableStore = tableStore;
|
|
17
|
-
this.ngZone = ngZone;
|
|
18
|
-
this.backdropClosable = false;
|
|
19
|
-
this.hasBackdrop = false;
|
|
20
|
-
this.insideClosable = false;
|
|
21
|
-
this.placement = 'topLeft';
|
|
22
|
-
this.offset = 8;
|
|
23
|
-
}
|
|
24
|
-
openToolbar(origin, tableElement) {
|
|
25
|
-
if (this.isOpened) {
|
|
26
|
-
if (this.toolbarRef.containerInstance.config.origin instanceof HTMLElement &&
|
|
27
|
-
(this.toolbarRef.containerInstance.config.origin === origin ||
|
|
28
|
-
this.toolbarRef.containerInstance.config.origin.contains(origin) ||
|
|
29
|
-
origin.contains(this.toolbarRef.containerInstance.config.origin))) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
this.toolbarRef.close();
|
|
33
|
-
}
|
|
34
|
-
const normalizedOrigin = this.getOrigin(origin);
|
|
35
|
-
this.toolbarRef = this.thyPopover.open(TheTableToolbar, {
|
|
36
|
-
initialState: {
|
|
37
|
-
tableStore: this.tableStore,
|
|
38
|
-
tableElement
|
|
39
|
-
},
|
|
40
|
-
origin: normalizedOrigin,
|
|
41
|
-
backdropClosable: this.backdropClosable,
|
|
42
|
-
panelClass: 'the-plugin-toolbar-popover',
|
|
43
|
-
placement: this.placement,
|
|
44
|
-
offset: this.offset,
|
|
45
|
-
hasBackdrop: this.hasBackdrop,
|
|
46
|
-
insideClosable: this.insideClosable,
|
|
47
|
-
minWidth: 0,
|
|
48
|
-
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
49
|
-
manualClosure: true
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
afterSelectedCells(origin, element, isMobileMode) {
|
|
53
|
-
!isMobileMode && this.openToolbar(origin, element);
|
|
54
|
-
}
|
|
55
|
-
getOrigin(origin) {
|
|
56
|
-
const focusCellElement = this.tableStore.focusCellElement;
|
|
57
|
-
if ((origin instanceof HTMLTableCellElement || focusCellElement) && origin.tagName !== 'TH') {
|
|
58
|
-
const { selectedRowsIndex, selectedColumnsIndex, focusCellPath, isSelectedTable, focusCellElement } = this.tableStore;
|
|
59
|
-
const [row, col] = focusCellPath.slice(-2);
|
|
60
|
-
const tableElement = focusCellElement.closest('.the-table-container');
|
|
61
|
-
if (isSelectedTable && col === 0 && row === 0) {
|
|
62
|
-
return tableElement.querySelector('.the-table-corner-controls');
|
|
63
|
-
}
|
|
64
|
-
if (selectedColumnsIndex.length > 0 && row === 0) {
|
|
65
|
-
return tableElement.querySelectorAll('.the-table-col-control')[col];
|
|
66
|
-
}
|
|
67
|
-
if (selectedRowsIndex.length > 0 && col === 0) {
|
|
68
|
-
return tableElement.querySelectorAll('.the-table-row-control-button-wrap')[row];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return origin;
|
|
72
|
-
}
|
|
73
|
-
closeToolbar() {
|
|
74
|
-
if (this.isOpened) {
|
|
75
|
-
this.ngZone.run(() => {
|
|
76
|
-
this.toolbarRef.close();
|
|
77
|
-
});
|
|
78
|
-
return this.toolbarRef.afterClosed();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* 判断是否触发了点选,并处理点选状态
|
|
83
|
-
* @param e 事件对象
|
|
84
|
-
* @param tbody tbody元素
|
|
85
|
-
*/
|
|
86
|
-
handleKeydownForPointerSelection(e, tbody) {
|
|
87
|
-
const cell = tbody?.querySelector('.focused-cell') || this.tableStore.focusCellElement;
|
|
88
|
-
if (cell) {
|
|
89
|
-
this.tableStore.selectCellStart(cell, this.tableStore.editor);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* 判断是否触发了区域选择,并处理区域选择状态
|
|
94
|
-
* @param e 事件对象
|
|
95
|
-
* @param tbody tbody元素
|
|
96
|
-
*/
|
|
97
|
-
handleKeydownForAreaSelection(e, tbody) {
|
|
98
|
-
const isTable = TableEditor.isActive(this.tableStore.editor);
|
|
99
|
-
const cell = tbody?.querySelector('.focused-cell') || this.tableStore.focusCellElement;
|
|
100
|
-
if (isTable && cell) {
|
|
101
|
-
this.tableStore.areaSelectionStart(cell, this.tableStore.editor);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* 进行区域选择时,阻止默认的选区事件
|
|
106
|
-
* @param e 事件对象
|
|
107
|
-
* @param editor 编辑器对象
|
|
108
|
-
*/
|
|
109
|
-
selectStartPreventDefault(e) {
|
|
110
|
-
const isReadonly = AngularEditor.isReadonly(this.tableStore.editor);
|
|
111
|
-
const cells = this.tableStore.getSelectedCellPositions();
|
|
112
|
-
if (!isReadonly && e.shiftKey && cells.length > 1) {
|
|
113
|
-
e.preventDefault();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableService, deps: [{ token: i1.ThyPopover }, { token: i2.Overlay }, { token: i3.TableStore }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
117
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableService }); }
|
|
118
|
-
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableService, decorators: [{
|
|
120
|
-
type: Injectable
|
|
121
|
-
}], ctorParameters: () => [{ type: i1.ThyPopover }, { type: i2.Overlay }, { type: i3.TableStore }, { type: i0.NgZone }] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL3RhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSTdDLE1BQU0sT0FBTyxZQUFZO0lBYXJCLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hFLENBQUM7SUFFRCxZQUNZLFVBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLE1BQWM7UUFIZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBcEIxQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsY0FBUyxHQUFpQixTQUFTLENBQUM7UUFFcEMsV0FBTSxHQUFHLENBQUMsQ0FBQztJQWFSLENBQUM7SUFFSSxXQUFXLENBQUMsTUFBbUIsRUFBRSxZQUEwQjtRQUMvRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUNJLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxXQUFXO2dCQUN0RSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMs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Q0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQzsrR0EzSFEsWUFBWTttSEFBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGFibGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZVRhYmxlVG9vbGJhciB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi90YWJsZS5lZGl0b3InO1xuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4vdGFibGUuc3RvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFibGVTZXJ2aWNlIHtcbiAgICBiYWNrZHJvcENsb3NhYmxlID0gZmFsc2U7XG5cbiAgICBoYXNCYWNrZHJvcCA9IGZhbHNlO1xuXG4gICAgaW5zaWRlQ2xvc2FibGUgPSBmYWxzZTtcblxuICAgIHBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ3RvcExlZnQnO1xuXG4gICAgb2Zmc2V0ID0gODtcblxuICAgIHRvb2xiYXJSZWY6IFRoeVBvcG92ZXJSZWY8YW55PjtcblxuICAgIGdldCBpc09wZW5lZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhclJlZiAmJiB0aGlzLnRvb2xiYXJSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3ZlcixcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIHRhYmxlU3RvcmU6IFRhYmxlU3RvcmUsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIG9wZW5Ub29sYmFyKG9yaWdpbjogSFRNTEVsZW1lbnQsIHRhYmxlRWxlbWVudDogVGFibGVFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyUmVmLmNvbnRhaW5lckluc3RhbmNlLmNvbmZpZy5vcmlnaW4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgICh0aGlzLnRvb2xiYXJSZWYuY29udGFpbmVySW5zdGFuY2UuY29uZmlnLm9yaWdpbiA9PT0gb3JpZ2luIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhclJlZi5jb250YWluZXJJbnN0YW5jZS5jb25maWcub3JpZ2luLmNvbnRhaW5zKG9yaWdpbikgfHxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luLmNvbnRhaW5zKHRoaXMudG9vbGJhclJlZi5jb250YWluZXJJbnN0YW5jZS5jb25maWcub3JpZ2luKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9vbGJhclJlZi5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRPcmlnaW4gPSB0aGlzLmdldE9yaWdpbihvcmlnaW4pO1xuICAgICAgICB0aGlzLnRvb2xiYXJSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihUaGVUYWJsZVRvb2xiYXIsIHtcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIHRhYmxlU3RvcmU6IHRoaXMudGFibGVTdG9yZSxcbiAgICAgICAgICAgICAgICB0YWJsZUVsZW1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcmlnaW46IG5vcm1hbGl6ZWRPcmlnaW4sXG4gICAgICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiB0aGlzLmJhY2tkcm9wQ2xvc2FibGUsXG4gICAgICAgICAgICBwYW5lbENsYXNzOiAndGhlLXBsdWdpbi10b29sYmFyLXBvcG92ZXInLFxuICAgICAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiB0aGlzLmluc2lkZUNsb3NhYmxlLFxuICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZnRlclNlbGVjdGVkQ2VsbHMob3JpZ2luOiBIVE1MRWxlbWVudCwgZWxlbWVudDogVGFibGVFbGVtZW50LCBpc01vYmlsZU1vZGU6IGJvb2xlYW4pIHtcbiAgICAgICAgIWlzTW9iaWxlTW9kZSAmJiB0aGlzLm9wZW5Ub29sYmFyKG9yaWdpbiwgZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0T3JpZ2luKG9yaWdpbjogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGZvY3VzQ2VsbEVsZW1lbnQgPSB0aGlzLnRhYmxlU3RvcmUuZm9jdXNDZWxsRWxlbWVudDtcbiAgICAgICAgaWYgKChvcmlnaW4gaW5zdGFuY2VvZiBIVE1MVGFibGVDZWxsRWxlbWVudCB8fCBmb2N1c0NlbGxFbGVtZW50KSAmJiBvcmlnaW4udGFnTmFtZSAhPT0gJ1RIJykge1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3RlZFJvd3NJbmRleCwgc2VsZWN0ZWRDb2x1bW5zSW5kZXgsIGZvY3VzQ2VsbFBhdGgsIGlzU2VsZWN0ZWRUYWJsZSwgZm9jdXNDZWxsRWxlbWVudCB9ID0gdGhpcy50YWJsZVN0b3JlO1xuICAgICAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IGZvY3VzQ2VsbFBhdGguc2xpY2UoLTIpO1xuICAgICAgICAgICAgY29uc3QgdGFibGVFbGVtZW50ID0gZm9jdXNDZWxsRWxlbWVudC5jbG9zZXN0KCcudGhlLXRhYmxlLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGlzU2VsZWN0ZWRUYWJsZSAmJiBjb2wgPT09IDAgJiYgcm93ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLXRhYmxlLWNvcm5lci1jb250cm9scycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkQ29sdW1uc0luZGV4Lmxlbmd0aCA+IDAgJiYgcm93ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGhlLXRhYmxlLWNvbC1jb250cm9sJylbY29sXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFJvd3NJbmRleC5sZW5ndGggPiAwICYmIGNvbCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRoZS10YWJsZS1yb3ctY29udHJvbC1idXR0b24td3JhcCcpW3Jvd10gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9yaWdpbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VUb29sYmFyKCkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhclJlZi5hZnRlckNsb3NlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Yik5pat5piv5ZCm6Kem5Y+R5LqG54K56YCJ77yM5bm25aSE55CG54K56YCJ54q25oCBXG4gICAgICogQHBhcmFtIGUg5LqL5Lu25a+56LGhXG4gICAgICogQHBhcmFtIHRib2R5IHRib2R55YWD57SgXG4gICAgICovXG4gICAgcHVibGljIGhhbmRsZUtleWRvd25Gb3JQb2ludGVyU2VsZWN0aW9uKGU6IEtleWJvYXJkRXZlbnQsIHRib2R5OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjZWxsID0gKHRib2R5Py5xdWVyeVNlbGVjdG9yKCcuZm9jdXNlZC1jZWxsJykgYXMgSFRNTFRhYmxlQ2VsbEVsZW1lbnQpIHx8IHRoaXMudGFibGVTdG9yZS5mb2N1c0NlbGxFbGVtZW50O1xuICAgICAgICBpZiAoY2VsbCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLnNlbGVjdENlbGxTdGFydChjZWxsLCB0aGlzLnRhYmxlU3RvcmUuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWIpOaWreaYr+WQpuinpuWPkeS6huWMuuWfn+mAieaLqe+8jOW5tuWkhOeQhuWMuuWfn+mAieaLqeeKtuaAgVxuICAgICAqIEBwYXJhbSBlIOS6i+S7tuWvueixoVxuICAgICAqIEBwYXJhbSB0Ym9keSB0Ym9keeWFg+e0oFxuICAgICAqL1xuICAgIHB1YmxpYyBoYW5kbGVLZXlkb3duRm9yQXJlYVNlbGVjdGlvbihlOiBLZXlib2FyZEV2ZW50LCB0Ym9keTogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXNUYWJsZSA9IFRhYmxlRWRpdG9yLmlzQWN0aXZlKHRoaXMudGFibGVTdG9yZS5lZGl0b3IpO1xuICAgICAgICBjb25zdCBjZWxsID0gKHRib2R5Py5xdWVyeVNlbGVjdG9yKCcuZm9jdXNlZC1jZWxsJykgYXMgSFRNTFRhYmxlQ2VsbEVsZW1lbnQpIHx8IHRoaXMudGFibGVTdG9yZS5mb2N1c0NlbGxFbGVtZW50O1xuICAgICAgICBpZiAoaXNUYWJsZSAmJiBjZWxsKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuYXJlYVNlbGVjdGlvblN0YXJ0KGNlbGwsIHRoaXMudGFibGVTdG9yZS5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6L+b6KGM5Yy65Z+f6YCJ5oup5pe277yM6Zi75q2i6buY6K6k55qE6YCJ5Yy65LqL5Lu2XG4gICAgICogQHBhcmFtIGUg5LqL5Lu25a+56LGhXG4gICAgICogQHBhcmFtIGVkaXRvciDnvJbovpHlmajlr7nosaFcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0U3RhcnRQcmV2ZW50RGVmYXVsdChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGlzUmVhZG9ubHkgPSBBbmd1bGFyRWRpdG9yLmlzUmVhZG9ubHkodGhpcy50YWJsZVN0b3JlLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gdGhpcy50YWJsZVN0b3JlLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBpZiAoIWlzUmVhZG9ubHkgJiYgZS5zaGlmdEtleSAmJiBjZWxscy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|