@worktile/theia 18.0.16 → 18.1.1
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 +297 -310
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/interfaces/view-base.d.ts +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/link/link.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,49 +0,0 @@
|
|
|
1
|
-
import { Editor, Element, Node, Range, Transforms } from 'slate';
|
|
2
|
-
import { ElementKinds, ZERO_WIDTH_CHAR } from '../../constants';
|
|
3
|
-
import * as TheTransforms from '../../transforms';
|
|
4
|
-
export const InlineCodeEditor = {
|
|
5
|
-
toggleInlineCode(editor, text) {
|
|
6
|
-
const isActive = InlineCodeEditor.isInlineCodeActive(editor);
|
|
7
|
-
if (isActive) {
|
|
8
|
-
InlineCodeEditor.unwrapInlineCode(editor);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
if (Range.isCollapsed(editor.selection)) {
|
|
12
|
-
InlineCodeEditor.wrapInlineCode(editor, text);
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
const fragment = Node.fragment(editor, editor.selection)[0];
|
|
16
|
-
const selectNode = Node.get(fragment, []);
|
|
17
|
-
const selectText = Node.string(selectNode);
|
|
18
|
-
InlineCodeEditor.wrapInlineCode(editor, selectText);
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
wrapInlineCode(editor, text = '') {
|
|
22
|
-
if (InlineCodeEditor.isInlineCodeActive(editor)) {
|
|
23
|
-
InlineCodeEditor.unwrapInlineCode(editor);
|
|
24
|
-
}
|
|
25
|
-
const { selection } = editor;
|
|
26
|
-
const isCollapsed = selection && Range.isCollapsed(selection);
|
|
27
|
-
const inlineCode = {
|
|
28
|
-
type: ElementKinds.inlineCode,
|
|
29
|
-
children: isCollapsed ? [{ text: text ? text : ZERO_WIDTH_CHAR }] : []
|
|
30
|
-
};
|
|
31
|
-
if (isCollapsed) {
|
|
32
|
-
TheTransforms.insertInlineElement(editor, inlineCode);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
Transforms.wrapNodes(editor, inlineCode, { split: true });
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
unwrapInlineCode(editor) {
|
|
39
|
-
Transforms.unwrapNodes(editor, { match: n => Element.isElement(n) && n.type === ElementKinds.inlineCode });
|
|
40
|
-
},
|
|
41
|
-
isInlineCodeActive(editor, path) {
|
|
42
|
-
const [inlineCode] = Editor.nodes(editor, {
|
|
43
|
-
at: path ? path : editor.selection?.anchor.path,
|
|
44
|
-
match: n => Element.isElement(n) && n.type === ElementKinds.inlineCode
|
|
45
|
-
});
|
|
46
|
-
return !!inlineCode;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBUSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBYTtRQUNsQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3BDLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBc0I7WUFDbEMsSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVO1lBQzdCLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDekUsQ0FBQztRQUNGLElBQUksV0FBVyxFQUFFLENBQUM7WUFDZCxhQUFhLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ0osVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzNCLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsSUFBVztRQUMxQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsVUFBVTtTQUN6RSxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIE5vZGUsIFBhdGgsIFJhbmdlLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IElubGluZUNvZGVFZGl0b3IgPSB7XG4gICAgdG9nZ2xlSW5saW5lQ29kZShlZGl0b3IsIHRleHQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpO1xuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIElubGluZUNvZGVFZGl0b3IudW53cmFwSW5saW5lQ29kZShlZGl0b3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgSW5saW5lQ29kZUVkaXRvci53cmFwSW5saW5lQ29kZShlZGl0b3IsIHRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBOb2RlLmZyYWdtZW50KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbilbMF07XG4gICAgICAgICAgICBjb25zdCBzZWxlY3ROb2RlID0gTm9kZS5nZXQoZnJhZ21lbnQsIFtdKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdFRleHQgPSBOb2RlLnN0cmluZyhzZWxlY3ROb2RlKTtcbiAgICAgICAgICAgIElubGluZUNvZGVFZGl0b3Iud3JhcElubGluZUNvZGUoZWRpdG9yLCBzZWxlY3RUZXh0KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB3cmFwSW5saW5lQ29kZShlZGl0b3I6IEVkaXRvciwgdGV4dCA9ICcnKSB7XG4gICAgICAgIGlmIChJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpKSB7XG4gICAgICAgICAgICBJbmxpbmVDb2RlRWRpdG9yLnVud3JhcElubGluZUNvZGUoZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBpbmxpbmVDb2RlOiBJbmxpbmVDb2RlRWxlbWVudCA9IHtcbiAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlLFxuICAgICAgICAgICAgY2hpbGRyZW46IGlzQ29sbGFwc2VkID8gW3sgdGV4dDogdGV4dCA/IHRleHQgOiBaRVJPX1dJRFRIX0NIQVIgfV0gOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuaW5zZXJ0SW5saW5lRWxlbWVudChlZGl0b3IsIGlubGluZUNvZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy53cmFwTm9kZXMoZWRpdG9yLCBpbmxpbmVDb2RlLCB7IHNwbGl0OiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHVud3JhcElubGluZUNvZGUoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgVHJhbnNmb3Jtcy51bndyYXBOb2RlcyhlZGl0b3IsIHsgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZSB9KTtcbiAgICB9LFxuXG4gICAgaXNJbmxpbmVDb2RlQWN0aXZlKGVkaXRvcjogRWRpdG9yLCBwYXRoPzogUGF0aCkge1xuICAgICAgICBjb25zdCBbaW5saW5lQ29kZV0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICBhdDogcGF0aCA/IHBhdGggOiBlZGl0b3Iuc2VsZWN0aW9uPy5hbmNob3IucGF0aCxcbiAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmlubGluZUNvZGVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIWlubGluZUNvZGU7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Editor, Transforms } from 'slate';
|
|
2
|
-
import { DISABLED_OPERATE_TYPES, ElementKinds, ZERO_WIDTH_CHAR } from '../../constants';
|
|
3
|
-
import { createPluginFactory } from '../../core';
|
|
4
|
-
import { PluginKeys } from '../../interfaces';
|
|
5
|
-
import { CONTROL_KEY } from '../../utils';
|
|
6
|
-
import { withRemoveEmptyNodes } from '../normalizers/remove-empty-nodes';
|
|
7
|
-
import { TheInlineCode } from './inline-code.component';
|
|
8
|
-
import { InlineCodeEditor } from './inline-code.editor';
|
|
9
|
-
export const withInlineCode = (editor) => {
|
|
10
|
-
const { isInline, renderElement, insertText } = editor;
|
|
11
|
-
editor.isInline = (element) => {
|
|
12
|
-
return element.type === ElementKinds.inlineCode ? true : isInline(element);
|
|
13
|
-
};
|
|
14
|
-
editor.renderElement = (element) => {
|
|
15
|
-
if (element.type === ElementKinds.inlineCode) {
|
|
16
|
-
return TheInlineCode;
|
|
17
|
-
}
|
|
18
|
-
return renderElement(element);
|
|
19
|
-
};
|
|
20
|
-
editor.insertText = text => {
|
|
21
|
-
if (text && InlineCodeEditor.isInlineCodeActive(editor)) {
|
|
22
|
-
let selection = editor.selection;
|
|
23
|
-
const currentNodeText = Editor.string(editor, editor.selection.anchor.path);
|
|
24
|
-
insertText(text);
|
|
25
|
-
if (currentNodeText == ZERO_WIDTH_CHAR) {
|
|
26
|
-
const inlineCodePath = Editor.path(editor, editor.selection);
|
|
27
|
-
let range = {
|
|
28
|
-
anchor: Editor.before(editor, selection.anchor),
|
|
29
|
-
focus: selection.anchor
|
|
30
|
-
};
|
|
31
|
-
if (Editor.isStart(editor, selection.anchor, inlineCodePath)) {
|
|
32
|
-
range = {
|
|
33
|
-
anchor: editor.selection.anchor,
|
|
34
|
-
focus: Editor.after(editor, editor.selection)
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
Transforms.delete(editor, {
|
|
38
|
-
at: range
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
insertText(text);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
editor = withRemoveEmptyNodes({ type: ElementKinds.inlineCode })(editor);
|
|
47
|
-
return editor;
|
|
48
|
-
};
|
|
49
|
-
export const createInlineCodePlugin = (locale) => createPluginFactory({
|
|
50
|
-
key: PluginKeys.inlineCode,
|
|
51
|
-
withOverrides: withInlineCode,
|
|
52
|
-
toolbarItems: [
|
|
53
|
-
{
|
|
54
|
-
key: ElementKinds.inlineCode,
|
|
55
|
-
icon: 'code',
|
|
56
|
-
name: locale().inlineCode,
|
|
57
|
-
shortcutKey: `${CONTROL_KEY}+E`,
|
|
58
|
-
execute: editor => InlineCodeEditor.toggleInlineCode(editor),
|
|
59
|
-
active: editor => InlineCodeEditor.isInlineCodeActive(editor)
|
|
60
|
-
}
|
|
61
|
-
],
|
|
62
|
-
options: {
|
|
63
|
-
isInline: true,
|
|
64
|
-
disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
|
|
65
|
-
}
|
|
66
|
-
})();
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDN0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXZELE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDN0MsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDbEQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN2QixJQUFJLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RELElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDakMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksZUFBZSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELElBQUksS0FBSyxHQUFHO29CQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO29CQUMvQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07aUJBQzFCLENBQUM7Z0JBQ0YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQzNELEtBQUssR0FBRzt3QkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO3dCQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDaEQsQ0FBQztnQkFDTixDQUFDO2dCQUNELFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUN0QixFQUFFLEVBQUUsS0FBSztpQkFDWixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RSxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQWtDLEVBQUUsRUFBRSxDQUN6RSxtQkFBbUIsQ0FBQztJQUNoQixHQUFHLEVBQUUsVUFBVSxDQUFDLFVBQVU7SUFDMUIsYUFBYSxFQUFFLGNBQWM7SUFDN0IsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDNUIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsVUFBVTtZQUN6QixXQUFXLEVBQUUsR0FBRyxXQUFXLElBQUk7WUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQzVELE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztTQUNoRTtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsUUFBUSxFQUFFLElBQUk7UUFDZCxvQkFBb0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQztLQUN4RTtDQUNKLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ09OVFJPTF9LRVkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyB3aXRoUmVtb3ZlRW1wdHlOb2RlcyB9IGZyb20gJy4uL25vcm1hbGl6ZXJzL3JlbW92ZS1lbXB0eS1ub2Rlcyc7XG5pbXBvcnQgeyBUaGVJbmxpbmVDb2RlIH0gZnJvbSAnLi9pbmxpbmUtY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVkaXRvciB9IGZyb20gJy4vaW5saW5lLWNvZGUuZWRpdG9yJztcbmltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlSTE4blRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5cbmV4cG9ydCBjb25zdCB3aXRoSW5saW5lQ29kZSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IGlzSW5saW5lLCByZW5kZXJFbGVtZW50LCBpbnNlcnRUZXh0IH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3IuaXNJbmxpbmUgPSAoZWxlbWVudDogSW5saW5lQ29kZUVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmlubGluZUNvZGUgPyB0cnVlIDogaXNJbmxpbmUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5yZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IElubGluZUNvZGVFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlSW5saW5lQ29kZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmluc2VydFRleHQgPSB0ZXh0ID0+IHtcbiAgICAgICAgaWYgKHRleHQgJiYgSW5saW5lQ29kZUVkaXRvci5pc0lubGluZUNvZGVBY3RpdmUoZWRpdG9yKSkge1xuICAgICAgICAgICAgbGV0IHNlbGVjdGlvbiA9IGVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Tm9kZVRleHQgPSBFZGl0b3Iuc3RyaW5nKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCk7XG4gICAgICAgICAgICBpbnNlcnRUZXh0KHRleHQpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlVGV4dCA9PSBaRVJPX1dJRFRIX0NIQVIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmxpbmVDb2RlUGF0aCA9IEVkaXRvci5wYXRoKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgbGV0IHJhbmdlID0ge1xuICAgICAgICAgICAgICAgICAgICBhbmNob3I6IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yKSxcbiAgICAgICAgICAgICAgICAgICAgZm9jdXM6IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChFZGl0b3IuaXNTdGFydChlZGl0b3IsIHNlbGVjdGlvbi5hbmNob3IsIGlubGluZUNvZGVQYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvcjogZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1czogRWRpdG9yLmFmdGVyKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbilcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiByYW5nZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5zZXJ0VGV4dCh0ZXh0KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlZGl0b3IgPSB3aXRoUmVtb3ZlRW1wdHlOb2Rlcyh7IHR5cGU6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlIH0pKGVkaXRvcik7XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbmxpbmVDb2RlUGx1Z2luID0gKGxvY2FsZTogU2lnbmFsPFRoZUkxOG5UcmFuc2xhdGlvbj4pID0+XG4gICAgY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAgICAgIGtleTogUGx1Z2luS2V5cy5pbmxpbmVDb2RlLFxuICAgICAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoSW5saW5lQ29kZSxcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICAgICAgICAgICAgICBpY29uOiAnY29kZScsXG4gICAgICAgICAgICAgICAgbmFtZTogbG9jYWxlKCkuaW5saW5lQ29kZSxcbiAgICAgICAgICAgICAgICBzaG9ydGN1dEtleTogYCR7Q09OVFJPTF9LRVl9K0VgLFxuICAgICAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmxpbmVDb2RlRWRpdG9yLnRvZ2dsZUlubGluZUNvZGUoZWRpdG9yKSxcbiAgICAgICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGlzSW5saW5lOiB0cnVlLFxuICAgICAgICAgICAgZGlzYWJsZWRPcGVyYXRlVHlwZXM6IFtFbGVtZW50S2luZHMuaW1hZ2UsIC4uLkRJU0FCTEVEX09QRVJBVEVfVFlQRVNdXG4gICAgICAgIH1cbiAgICB9KSgpO1xuIl19
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, HostListener, inject, Input } from '@angular/core';
|
|
2
|
-
import { FormsModule } from '@angular/forms';
|
|
3
|
-
import isUrl from 'is-url';
|
|
4
|
-
import { ThyButton } from 'ngx-tethys/button';
|
|
5
|
-
import { ThyFormDirective, ThyFormGroup, ThyFormGroupFooter, ThyFormSubmitDirective } from 'ngx-tethys/form';
|
|
6
|
-
import { ThyInputDirective } from 'ngx-tethys/input';
|
|
7
|
-
import { ThyAutofocusDirective } from 'ngx-tethys/shared';
|
|
8
|
-
import { Transforms } from 'slate';
|
|
9
|
-
import { AngularEditor } from 'slate-angular';
|
|
10
|
-
import { LinkEditor } from '../link.editor';
|
|
11
|
-
import { LinkCloseTypes, LinkTags } from '../link.types';
|
|
12
|
-
import { injectTranslations, TheI18nService } from '../../../i18n';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "ngx-tethys/popover";
|
|
15
|
-
import * as i2 from "@angular/forms";
|
|
16
|
-
export class TheLinkEdit {
|
|
17
|
-
handleDocumentMouseDown(event) {
|
|
18
|
-
if (!document.querySelector('.the-link-edit-container').contains(event.target)) {
|
|
19
|
-
this.thyPopoverRef.close();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
constructor(thyPopoverRef) {
|
|
23
|
-
this.thyPopoverRef = thyPopoverRef;
|
|
24
|
-
this.className = 'the-link-edit-container';
|
|
25
|
-
this.link = '';
|
|
26
|
-
this.text = '';
|
|
27
|
-
this.locale = injectTranslations(inject(TheI18nService));
|
|
28
|
-
this.validatorConfig = {
|
|
29
|
-
validationMessages: {
|
|
30
|
-
link: {
|
|
31
|
-
required: this.locale().linkRequired,
|
|
32
|
-
pattern: this.locale().linkPattern
|
|
33
|
-
},
|
|
34
|
-
text: {
|
|
35
|
-
required: this.locale().textRequired
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.originText = this.text;
|
|
42
|
-
this.originLink = this.link;
|
|
43
|
-
this.thyPopoverRef.beforeClosed().subscribe(type => {
|
|
44
|
-
switch (true) {
|
|
45
|
-
case type === LinkCloseTypes.apply:
|
|
46
|
-
break;
|
|
47
|
-
case this.tag === LinkTags.insert:
|
|
48
|
-
AngularEditor.focus(this.editor);
|
|
49
|
-
Transforms.select(this.editor, this.originSelection);
|
|
50
|
-
this.editor.undo();
|
|
51
|
-
break;
|
|
52
|
-
case this.tag === LinkTags.edit:
|
|
53
|
-
AngularEditor.focus(this.editor);
|
|
54
|
-
Transforms.select(this.editor, this.originSelection);
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
closePopover(type) {
|
|
60
|
-
this.thyPopoverRef.close(type);
|
|
61
|
-
}
|
|
62
|
-
applyLink(form) {
|
|
63
|
-
const link = this.link.trim();
|
|
64
|
-
if (isUrl(link)) {
|
|
65
|
-
LinkEditor.updateLink(this.editor, this.node, link, this.text);
|
|
66
|
-
this.closePopover(LinkCloseTypes.apply);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
form.validator.setElementErrorMessage(`link`, this.locale().linkPattern);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheLinkEdit, deps: [{ token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheLinkEdit, isStandalone: true, selector: "the-link-edit", inputs: { tag: "tag", node: "node", link: "link", text: "text", originSelection: "originSelection" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, properties: { "class": "this.className" } }, ngImport: i0, template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group [thyLabelText]=\"locale().text\">\n <input thyInput [placeholder]=\"locale().enterText\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"locale().link\">\n <input name=\"link\" thyInput [placeholder]=\"locale().enterLink\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">{{ locale().cancel }}</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">{{ locale().apply }}</button>\n </div>\n </thy-form-group-footer>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "component", type: ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }] }); }
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheLinkEdit, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{ selector: 'the-link-edit', standalone: true, imports: [
|
|
78
|
-
FormsModule,
|
|
79
|
-
ThyFormDirective,
|
|
80
|
-
ThyInputDirective,
|
|
81
|
-
ThyButton,
|
|
82
|
-
ThyAutofocusDirective,
|
|
83
|
-
ThyFormGroup,
|
|
84
|
-
ThyFormSubmitDirective,
|
|
85
|
-
ThyFormGroupFooter
|
|
86
|
-
], template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group [thyLabelText]=\"locale().text\">\n <input thyInput [placeholder]=\"locale().enterText\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"locale().link\">\n <input name=\"link\" thyInput [placeholder]=\"locale().enterLink\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">{{ locale().cancel }}</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">{{ locale().apply }}</button>\n </div>\n </thy-form-group-footer>\n</form>\n" }]
|
|
87
|
-
}], ctorParameters: () => [{ type: i1.ThyPopoverRef }], propDecorators: { className: [{
|
|
88
|
-
type: HostBinding,
|
|
89
|
-
args: ['class']
|
|
90
|
-
}], tag: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], node: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], link: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], text: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], originSelection: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], handleDocumentMouseDown: [{
|
|
101
|
-
type: HostListener,
|
|
102
|
-
args: ['document: mousedown', ['$event']]
|
|
103
|
-
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpbmsvZWRpdC9saW5rLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGluay9lZGl0L2xpbmstZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBaUIsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQXNCLE1BQU0sZUFBZSxDQUFDOzs7O0FBaUJ2RixNQUFNLE9BQU8sV0FBVztJQWtDcEIsdUJBQXVCLENBQUMsS0FBaUI7UUFDckMs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WCxnQkFBZ0IsNEpBQ2hCLGlCQUFpQiwrSUFDakIsU0FBUyxvTEFDVCxxQkFBcUIsa0lBQ3JCLFlBQVksa1BBQ1osc0JBQXNCLDBHQUN0QixrQkFBa0I7OzRGQUdiLFdBQVc7a0JBZnZCLFNBQVM7K0JBQ0ksZUFBZSxjQUViLElBQUksV0FDUDt3QkFDTCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLGtCQUFrQjtxQkFDckI7a0ZBR3FCLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkF1Qk4sdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgaXNVcmwgZnJvbSAnaXMtdXJsJztcbmltcG9ydCB7IFRoeUJ1dHRvbiB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IFRoeUZvcm1EaXJlY3RpdmUsIFRoeUZvcm1Hcm91cCwgVGh5Rm9ybUdyb3VwRm9vdGVyLCBUaHlGb3JtU3VibWl0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9mb3JtJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IEVkaXRvciwgUmFuZ2UsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBMaW5rRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBMaW5rRWRpdG9yIH0gZnJvbSAnLi4vbGluay5lZGl0b3InO1xuaW1wb3J0IHsgTGlua0Nsb3NlVHlwZXMsIExpbmtUYWdzIH0gZnJvbSAnLi4vbGluay50eXBlcyc7XG5pbXBvcnQgeyBpbmplY3RUcmFuc2xhdGlvbnMsIFRoZUkxOG5TZXJ2aWNlLCBUaGVJMThuVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi8uLi9pMThuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtbGluay1lZGl0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoeUZvcm1EaXJlY3RpdmUsXG4gICAgICAgIFRoeUlucHV0RGlyZWN0aXZlLFxuICAgICAgICBUaHlCdXR0b24sXG4gICAgICAgIFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgICAgICAgVGh5Rm9ybUdyb3VwLFxuICAgICAgICBUaHlGb3JtU3VibWl0RGlyZWN0aXZlLFxuICAgICAgICBUaHlGb3JtR3JvdXBGb290ZXJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUxpbmtFZGl0IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gJ3RoZS1saW5rLWVkaXQtY29udGFpbmVyJztcblxuICAgIEBJbnB1dCgpIHRhZzogTGlua1RhZ3M7XG5cbiAgICBASW5wdXQoKSBub2RlOiBMaW5rRWxlbWVudDtcblxuICAgIEBJbnB1dCgpIGxpbmsgPSAnJztcblxuICAgIEBJbnB1dCgpIHRleHQgPSAnJztcblxuICAgIEBJbnB1dCgpIG9yaWdpblNlbGVjdGlvbjogUmFuZ2U7XG5cbiAgICBsb2NhbGU6IFNpZ25hbDxUaGVJMThuVHJhbnNsYXRpb24+ID0gaW5qZWN0VHJhbnNsYXRpb25zKGluamVjdChUaGVJMThuU2VydmljZSkpO1xuXG4gICAgZWRpdG9yOiBFZGl0b3I7XG5cbiAgICBvcmlnaW5MaW5rOiBzdHJpbmc7XG5cbiAgICBvcmlnaW5UZXh0OiBzdHJpbmc7XG5cbiAgICB2YWxpZGF0b3JDb25maWcgPSB7XG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlczoge1xuICAgICAgICAgICAgbGluazoge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmxvY2FsZSgpLmxpbmtSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBwYXR0ZXJuOiB0aGlzLmxvY2FsZSgpLmxpbmtQYXR0ZXJuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmxvY2FsZSgpLnRleHRSZXF1aXJlZFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OiBtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZURvY3VtZW50TW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1saW5rLWVkaXQtY29udGFpbmVyJykuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGh5UG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxhbnk+KSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMub3JpZ2luVGV4dCA9IHRoaXMudGV4dDtcbiAgICAgICAgdGhpcy5vcmlnaW5MaW5rID0gdGhpcy5saW5rO1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKHR5cGUgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSB0eXBlID09PSBMaW5rQ2xvc2VUeXBlcy5hcHBseTpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSB0aGlzLnRhZyA9PT0gTGlua1RhZ3MuaW5zZXJ0OlxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHRoaXMub3JpZ2luU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0b3IudW5kbygpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIHRoaXMudGFnID09PSBMaW5rVGFncy5lZGl0OlxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHRoaXMub3JpZ2luU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlUG9wb3Zlcih0eXBlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSh0eXBlKTtcbiAgICB9XG5cbiAgICBhcHBseUxpbmsoZm9ybSkge1xuICAgICAgICBjb25zdCBsaW5rID0gdGhpcy5saW5rLnRyaW0oKTtcbiAgICAgICAgaWYgKGlzVXJsKGxpbmspKSB7XG4gICAgICAgICAgICBMaW5rRWRpdG9yLnVwZGF0ZUxpbmsodGhpcy5lZGl0b3IsIHRoaXMubm9kZSwgbGluaywgdGhpcy50ZXh0KTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKExpbmtDbG9zZVR5cGVzLmFwcGx5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm0udmFsaWRhdG9yLnNldEVsZW1lbnRFcnJvck1lc3NhZ2UoYGxpbmtgLCB0aGlzLmxvY2FsZSgpLmxpbmtQYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmb3JtIHRoeUZvcm0gI2xpbmtGb3JtPVwidGh5Rm9ybVwiIFt0aHlGb3JtVmFsaWRhdG9yQ29uZmlnXT1cInZhbGlkYXRvckNvbmZpZ1wiIG5hbWU9XCJsaW5rRm9ybVwiPlxuICA8dGh5LWZvcm0tZ3JvdXAgW3RoeUxhYmVsVGV4dF09XCJsb2NhbGUoKS50ZXh0XCI+XG4gICAgPGlucHV0IHRoeUlucHV0IFtwbGFjZWhvbGRlcl09XCJsb2NhbGUoKS5lbnRlclRleHRcIiByZXF1aXJlZCBuYW1lPVwidGV4dFwiIFsobmdNb2RlbCldPVwidGV4dFwiIHRoeUF1dG9mb2N1cyB0eXBlPVwidGV4dFwiIC8+XG4gIDwvdGh5LWZvcm0tZ3JvdXA+XG4gIDx0aHktZm9ybS1ncm91cCBbdGh5TGFiZWxUZXh0XT1cImxvY2FsZSgpLmxpbmtcIj5cbiAgICA8aW5wdXQgbmFtZT1cImxpbmtcIiB0aHlJbnB1dCBbcGxhY2Vob2xkZXJdPVwibG9jYWxlKCkuZW50ZXJMaW5rXCIgcmVxdWlyZWQgdHlwZT1cInRleHRcIiAjbGlua0NvbnRyb2w9XCJuZ01vZGVsXCIgWyhuZ01vZGVsKV09XCJsaW5rXCIgLz5cbiAgPC90aHktZm9ybS1ncm91cD5cbiAgPHRoeS1mb3JtLWdyb3VwLWZvb3Rlcj5cbiAgICA8ZGl2IGNsYXNzPVwiYnRuLXBhaXJcIj5cbiAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwibGluay1zZWNvbmRhcnlcIiB0aHlTaXplPVwic21cIiAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIj57eyBsb2NhbGUoKS5jYW5jZWwgfX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwicHJpbWFyeS1zcXVhcmVcIiB0aHlTaXplPVwic21cIiAodGh5Rm9ybVN1Ym1pdCk9XCJhcHBseUxpbmsobGlua0Zvcm0pXCI+e3sgbG9jYWxlKCkuYXBwbHkgfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC90aHktZm9ybS1ncm91cC1mb290ZXI+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { ThyAction } from 'ngx-tethys/action';
|
|
3
|
-
import { ThyDivider } from 'ngx-tethys/divider';
|
|
4
|
-
import { ThePreventDefaultDirective } from '../../../components/action/prevent-default';
|
|
5
|
-
import { A_TAG_REL_ATTR } from '../../../constants/default';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class TheLinkHover {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.link = '';
|
|
10
|
-
this.aTagRelAttr = A_TAG_REL_ATTR;
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() { }
|
|
13
|
-
editLink(event) {
|
|
14
|
-
event.preventDefault();
|
|
15
|
-
this.editHandle();
|
|
16
|
-
event.stopPropagation();
|
|
17
|
-
}
|
|
18
|
-
removeLink(event) {
|
|
19
|
-
event.preventDefault();
|
|
20
|
-
this.deleteHandle();
|
|
21
|
-
event.stopPropagation();
|
|
22
|
-
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheLinkHover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheLinkHover, isStandalone: true, selector: "the-link-hover", inputs: { link: "link", dom: "dom", editHandle: "editHandle", deleteHandle: "deleteHandle" }, ngImport: i0, template: "<div class=\"link-hover-card px-1\">\n <a readonly href=\"{{ link }}\" target=\"_blank\" rel=\"{{ aTagRelAttr }}\" class=\"hover-control-plaintext text-truncate mx-2\">\n {{ link }}\n </a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"edit\" thePreventDefault (click)=\"editLink($event)\"></a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"unlink-insert\" thePreventDefault (click)=\"removeLink($event)\"></a>\n</div>\n", dependencies: [{ kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheLinkHover, decorators: [{
|
|
27
|
-
type: Component,
|
|
28
|
-
args: [{ selector: 'the-link-hover', standalone: true, imports: [ThyDivider, ThyAction, ThePreventDefaultDirective], template: "<div class=\"link-hover-card px-1\">\n <a readonly href=\"{{ link }}\" target=\"_blank\" rel=\"{{ aTagRelAttr }}\" class=\"hover-control-plaintext text-truncate mx-2\">\n {{ link }}\n </a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"edit\" thePreventDefault (click)=\"editLink($event)\"></a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"unlink-insert\" thePreventDefault (click)=\"removeLink($event)\"></a>\n</div>\n" }]
|
|
29
|
-
}], ctorParameters: () => [], propDecorators: { link: [{
|
|
30
|
-
type: Input
|
|
31
|
-
}], dom: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], editHandle: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], deleteHandle: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1ob3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saW5rL2hvdmVyL2xpbmstaG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGluay9ob3Zlci9saW5rLWhvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVE1RCxNQUFNLE9BQU8sWUFBWTtJQVdyQjtRQVZTLFNBQUksR0FBRyxFQUFFLENBQUM7UUFRbkIsZ0JBQVcsR0FBRyxjQUFjLENBQUM7SUFFZCxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWIsUUFBUSxDQUFDLEtBQWlCO1FBQ3RCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0F6QlEsWUFBWTttR0FBWixZQUFZLHdLQ1p6QiwwbUJBU0EsNENEQ2MsVUFBVSxxSkFBRSxTQUFTLGdNQUFFLDBCQUEwQjs7NEZBRWxELFlBQVk7a0JBTnhCLFNBQVM7K0JBQ0ksZ0JBQWdCLGNBRWQsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQzt3REFHbkQsSUFBSTtzQkFBWixLQUFLO2dCQUVHLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeUFjdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvYWN0aW9uJztcbmltcG9ydCB7IFRoeURpdmlkZXIgfSBmcm9tICduZ3gtdGV0aHlzL2RpdmlkZXInO1xuaW1wb3J0IHsgVGhlUHJldmVudERlZmF1bHREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2FjdGlvbi9wcmV2ZW50LWRlZmF1bHQnO1xuaW1wb3J0IHsgQV9UQUdfUkVMX0FUVFIgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZGVmYXVsdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWxpbmstaG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saW5rLWhvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlEaXZpZGVyLCBUaHlBY3Rpb24sIFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVMaW5rSG92ZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGxpbmsgPSAnJztcblxuICAgIEBJbnB1dCgpIGRvbTogSFRNTEVsZW1lbnQ7XG5cbiAgICBASW5wdXQoKSBlZGl0SGFuZGxlOiAoKSA9PiB2b2lkO1xuXG4gICAgQElucHV0KCkgZGVsZXRlSGFuZGxlOiAoKSA9PiB2b2lkO1xuXG4gICAgYVRhZ1JlbEF0dHIgPSBBX1RBR19SRUxfQVRUUjtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIGVkaXRMaW5rKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZWRpdEhhbmRsZSgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICByZW1vdmVMaW5rKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZGVsZXRlSGFuZGxlKCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaW5rLWhvdmVyLWNhcmQgcHgtMVwiPlxuICA8YSByZWFkb25seSBocmVmPVwie3sgbGluayB9fVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cInt7IGFUYWdSZWxBdHRyIH19XCIgY2xhc3M9XCJob3Zlci1jb250cm9sLXBsYWludGV4dCB0ZXh0LXRydW5jYXRlIG14LTJcIj5cbiAgICB7eyBsaW5rIH19XG4gIDwvYT5cbiAgPHRoeS1kaXZpZGVyIGNsYXNzPVwibXgtMlwiIFt0aHlWZXJ0aWNhbF09XCJ0cnVlXCIgdGh5Q29sb3I9XCJsaWdodFwiPjwvdGh5LWRpdmlkZXI+XG4gIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiB0aHlBY3Rpb24gdGh5QWN0aW9uSWNvbj1cImVkaXRcIiB0aGVQcmV2ZW50RGVmYXVsdCAoY2xpY2spPVwiZWRpdExpbmsoJGV2ZW50KVwiPjwvYT5cbiAgPHRoeS1kaXZpZGVyIGNsYXNzPVwibXgtMlwiIFt0aHlWZXJ0aWNhbF09XCJ0cnVlXCIgdGh5Q29sb3I9XCJsaWdodFwiPjwvdGh5LWRpdmlkZXI+XG4gIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiB0aHlBY3Rpb24gdGh5QWN0aW9uSWNvbj1cInVubGluay1pbnNlcnRcIiB0aGVQcmV2ZW50RGVmYXVsdCAoY2xpY2spPVwicmVtb3ZlTGluaygkZXZlbnQpXCI+PC9hPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
-
import { Component, ElementRef, HostListener, inject, ViewChild } from '@angular/core';
|
|
3
|
-
import { ThyPopover } from 'ngx-tethys/popover';
|
|
4
|
-
import { Node as SlateNode } from 'slate';
|
|
5
|
-
import { TheBaseElement } from '../../interfaces';
|
|
6
|
-
import { isMobileMode } from '../../utils/get-mode';
|
|
7
|
-
import { TheLinkEdit } from './edit/link-edit.component';
|
|
8
|
-
import { TheLinkHover } from './hover/link-hover.component';
|
|
9
|
-
import { LinkEditor } from './link.editor';
|
|
10
|
-
import { LinkCloseTypes, LinkTags } from './link.types';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export class TheBaseLink extends TheBaseElement {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.thyPopover = inject(ThyPopover);
|
|
16
|
-
this.overlay = inject(Overlay);
|
|
17
|
-
this.beforeContextChange = (value) => {
|
|
18
|
-
if (this.thyPopoverEditRef && this.thyPopoverEditRef.componentInstance) {
|
|
19
|
-
let { originText } = this.thyPopoverEditRef.componentInstance;
|
|
20
|
-
if (originText && originText !== value.element.children[0].text) {
|
|
21
|
-
this.thyPopoverEditRef.componentInstance.originText = value.element.children[0].text;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
get linkHoverOpened() {
|
|
27
|
-
return this.thyPopoverHoverRef && this.thyPopoverHoverRef.componentInstance;
|
|
28
|
-
}
|
|
29
|
-
get linkEditOpened() {
|
|
30
|
-
return this.thyPopoverEditRef && this.thyPopoverEditRef.componentInstance;
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
super.ngOnInit();
|
|
34
|
-
}
|
|
35
|
-
closeHoverPopover() {
|
|
36
|
-
if (this.linkHoverOpened) {
|
|
37
|
-
this.thyPopoverHoverRef.close();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
mousedownHandle(event) {
|
|
41
|
-
if (!this.readonly && !this.editor.disabled && !isMobileMode(this.editor)) {
|
|
42
|
-
this.openLinkHover();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
openLinkEdit(tag) {
|
|
46
|
-
if (this.linkHoverOpened) {
|
|
47
|
-
this.thyPopoverHoverRef.afterClosed().subscribe(() => {
|
|
48
|
-
this.internalOpenLinkEdit(tag);
|
|
49
|
-
});
|
|
50
|
-
this.thyPopover.close();
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.internalOpenLinkEdit(tag);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
isLinkEditOpenedByDom(dom) {
|
|
57
|
-
return this.linkEditOpened && this.thyPopoverEditRef.componentInstance.dom === dom;
|
|
58
|
-
}
|
|
59
|
-
closeEditPopover(type) {
|
|
60
|
-
if (this.linkEditOpened) {
|
|
61
|
-
this.thyPopoverEditRef.close(type);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
openLinkHover() {
|
|
65
|
-
const dom = this.nativeElement;
|
|
66
|
-
const url = this.element.url;
|
|
67
|
-
if (this.linkHoverOpened) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this.thyPopoverHoverRef = this.thyPopover.open(TheLinkHover, {
|
|
71
|
-
initialState: {
|
|
72
|
-
link: url,
|
|
73
|
-
dom: dom,
|
|
74
|
-
editHandle: () => {
|
|
75
|
-
this.openLinkEdit(LinkTags.edit);
|
|
76
|
-
},
|
|
77
|
-
deleteHandle: () => {
|
|
78
|
-
LinkEditor.unwrapLink(this.editor);
|
|
79
|
-
this.closeHoverPopover();
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
origin: dom,
|
|
83
|
-
placement: 'bottomLeft',
|
|
84
|
-
offset: 4,
|
|
85
|
-
minWidth: 0,
|
|
86
|
-
hasBackdrop: false,
|
|
87
|
-
outsideClosable: true,
|
|
88
|
-
viewContainerRef: this.viewContainerRef,
|
|
89
|
-
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
90
|
-
panelClass: 'the-link-over'
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
internalOpenLinkEdit(tag) {
|
|
94
|
-
const link = this.element.url;
|
|
95
|
-
SlateNode.get(this.editor, this.editor.selection.focus.path);
|
|
96
|
-
this.thyPopoverEditRef = this.thyPopover.open(TheLinkEdit, {
|
|
97
|
-
initialState: {
|
|
98
|
-
tag,
|
|
99
|
-
editor: this.editor,
|
|
100
|
-
node: this.element,
|
|
101
|
-
text: SlateNode.string(this.element),
|
|
102
|
-
link,
|
|
103
|
-
originSelection: this.editor.selection
|
|
104
|
-
},
|
|
105
|
-
minWidth: 0,
|
|
106
|
-
origin: this.elementRef.nativeElement,
|
|
107
|
-
backdropClosable: true,
|
|
108
|
-
placement: 'bottomLeft',
|
|
109
|
-
offset: 4,
|
|
110
|
-
hasBackdrop: false,
|
|
111
|
-
originActiveClass: null,
|
|
112
|
-
viewContainerRef: this.viewContainerRef,
|
|
113
|
-
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
114
|
-
panelClass: 'the-link-edit'
|
|
115
|
-
});
|
|
116
|
-
this.cdr.markForCheck();
|
|
117
|
-
}
|
|
118
|
-
close(type) {
|
|
119
|
-
this.closeHoverPopover();
|
|
120
|
-
this.closeEditPopover(type);
|
|
121
|
-
}
|
|
122
|
-
ngOnDestroy() {
|
|
123
|
-
super.ngOnDestroy();
|
|
124
|
-
this.close(LinkCloseTypes.destroy);
|
|
125
|
-
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseLink, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheBaseLink, selector: "ng-component", host: { listeners: { "click": "mousedownHandle($event)" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
128
|
-
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseLink, decorators: [{
|
|
130
|
-
type: Component,
|
|
131
|
-
args: [{
|
|
132
|
-
template: ''
|
|
133
|
-
}]
|
|
134
|
-
}], propDecorators: { mousedownHandle: [{
|
|
135
|
-
type: HostListener,
|
|
136
|
-
args: ['click', ['$event']]
|
|
137
|
-
}] } });
|
|
138
|
-
export class TheLink extends TheBaseLink {
|
|
139
|
-
constructor() {
|
|
140
|
-
super(...arguments);
|
|
141
|
-
this.getOutletParent = () => {
|
|
142
|
-
return this.outletParent.nativeElement;
|
|
143
|
-
};
|
|
144
|
-
// Put this at the start and end of an inline component to work around this Chromium bug:
|
|
145
|
-
// https://bugs.chromium.org/p/chromium/issues/detail?id=1249405
|
|
146
|
-
this.inlineChromiumBugfix = String.fromCodePoint(160);
|
|
147
|
-
}
|
|
148
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheLink, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheLink, isStandalone: true, selector: "a[theLink]", host: { attributes: { "target": "_blank" }, properties: { "attr.href": "element.url" } }, viewQueries: [{ propertyName: "outletParent", first: true, predicate: ["outletParent"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: ` <span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
|
|
150
|
-
<span #outletParent></span>
|
|
151
|
-
<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`, isInline: true }); }
|
|
152
|
-
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheLink, decorators: [{
|
|
154
|
-
type: Component,
|
|
155
|
-
args: [{
|
|
156
|
-
selector: 'a[theLink]',
|
|
157
|
-
template: ` <span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
|
|
158
|
-
<span #outletParent></span>
|
|
159
|
-
<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`,
|
|
160
|
-
host: {
|
|
161
|
-
'[attr.href]': 'element.url',
|
|
162
|
-
target: '_blank'
|
|
163
|
-
},
|
|
164
|
-
standalone: true
|
|
165
|
-
}]
|
|
166
|
-
}], propDecorators: { outletParent: [{
|
|
167
|
-
type: ViewChild,
|
|
168
|
-
args: ['outletParent', { read: ElementRef, static: true }]
|
|
169
|
-
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saW5rL2xpbmsuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQVUsSUFBSSxJQUFJLFNBQVMsRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUd4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFLeEQsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUFtQztJQUhwRTs7UUFlWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFlBQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFZbEMsd0JBQW1CLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUU7WUFDakQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3JFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxJ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LEVBQUU7OytGQUVpRjtvQkFDM0YsSUFBSSxFQUFFO3dCQUNGLGFBQWEsRUFBRSxhQUFhO3dCQUM1QixNQUFNLEVBQUUsUUFBUTtxQkFDbkI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQUdHLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciwgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBFZGl0b3IsIE5vZGUgYXMgU2xhdGVOb2RlLCBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVFbGVtZW50Q29udGV4dCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgTGlua0VsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgVGhlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzTW9iaWxlTW9kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1tb2RlJztcbmltcG9ydCB7IFRoZUxpbmtFZGl0IH0gZnJvbSAnLi9lZGl0L2xpbmstZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTGlua0hvdmVyIH0gZnJvbSAnLi9ob3Zlci9saW5rLWhvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rRWRpdG9yIH0gZnJvbSAnLi9saW5rLmVkaXRvcic7XG5pbXBvcnQgeyBMaW5rQ2xvc2VUeXBlcywgTGlua1RhZ3MgfSBmcm9tICcuL2xpbmsudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgVGhlQmFzZUxpbmsgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudDxMaW5rRWxlbWVudCwgRWRpdG9yPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICB0aHlQb3BvdmVySG92ZXJSZWY6IFRoeVBvcG92ZXJSZWY8YW55PjtcbiAgICB0aHlQb3BvdmVyRWRpdFJlZjogVGh5UG9wb3ZlclJlZjxhbnk+O1xuXG4gICAgZ2V0IGxpbmtIb3Zlck9wZW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5UG9wb3ZlckhvdmVyUmVmICYmIHRoaXMudGh5UG9wb3ZlckhvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIH1cblxuICAgIGdldCBsaW5rRWRpdE9wZW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5UG9wb3ZlckVkaXRSZWYgJiYgdGhpcy50aHlQb3BvdmVyRWRpdFJlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRoeVBvcG92ZXIgPSBpbmplY3QoVGh5UG9wb3Zlcik7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgY2xvc2VIb3ZlclBvcG92ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmxpbmtIb3Zlck9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy50aHlQb3BvdmVySG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJlZm9yZUNvbnRleHRDaGFuZ2UgPSAodmFsdWU6IFNsYXRlRWxlbWVudENvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudGh5UG9wb3ZlckVkaXRSZWYgJiYgdGhpcy50aHlQb3BvdmVyRWRpdFJlZi5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgICAgICAgbGV0IHsgb3JpZ2luVGV4dCB9ID0gdGhpcy50aHlQb3BvdmVyRWRpdFJlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgICAgIGlmIChvcmlnaW5UZXh0ICYmIG9yaWdpblRleHQgIT09ICh2YWx1ZS5lbGVtZW50LmNoaWxkcmVuWzBdIGFzIFRleHQpLnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVBvcG92ZXJFZGl0UmVmLmNvbXBvbmVudEluc3RhbmNlLm9yaWdpblRleHQgPSAodmFsdWUuZWxlbWVudC5jaGlsZHJlblswXSBhcyBUZXh0KS50ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWRvd25IYW5kbGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmVkaXRvci5kaXNhYmxlZCAmJiAhaXNNb2JpbGVNb2RlKHRoaXMuZWRpdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuTGlua0hvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuTGlua0VkaXQodGFnOiBMaW5rVGFncykge1xuICAgICAgICBpZiAodGhpcy5saW5rSG92ZXJPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGh5UG9wb3ZlckhvdmVyUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsT3BlbkxpbmtFZGl0KHRhZyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudGh5UG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbE9wZW5MaW5rRWRpdCh0YWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNMaW5rRWRpdE9wZW5lZEJ5RG9tKGRvbTogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua0VkaXRPcGVuZWQgJiYgdGhpcy50aHlQb3BvdmVyRWRpdFJlZi5jb21wb25lbnRJbnN0YW5jZS5kb20gPT09IGRvbTtcbiAgICB9XG5cbiAgICBjbG9zZUVkaXRQb3BvdmVyKHR5cGU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMubGlua0VkaXRPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGh5UG9wb3ZlckVkaXRSZWYuY2xvc2UodHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuTGlua0hvdmVyKCkge1xuICAgICAgICBjb25zdCBkb20gPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZWxlbWVudC51cmw7XG5cbiAgICAgICAgaWYgKHRoaXMubGlua0hvdmVyT3BlbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlQb3BvdmVySG92ZXJSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihUaGVMaW5rSG92ZXIsIHtcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGxpbms6IHVybCxcbiAgICAgICAgICAgICAgICBkb206IGRvbSxcbiAgICAgICAgICAgICAgICBlZGl0SGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkxpbmtFZGl0KExpbmtUYWdzLmVkaXQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVsZXRlSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIExpbmtFZGl0b3IudW53cmFwTGluayh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VIb3ZlclBvcG92ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3JpZ2luOiBkb20sXG4gICAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b21MZWZ0JyxcbiAgICAgICAgICAgIG9mZnNldDogNCxcbiAgICAgICAgICAgIG1pbldpZHRoOiAwLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgb3V0c2lkZUNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICd0aGUtbGluay1vdmVyJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGludGVybmFsT3BlbkxpbmtFZGl0KHRhZzogTGlua1RhZ3MpIHtcbiAgICAgICAgY29uc3QgbGluayA9IHRoaXMuZWxlbWVudC51cmw7XG4gICAgICAgIFNsYXRlTm9kZS5nZXQodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yLnNlbGVjdGlvbi5mb2N1cy5wYXRoKTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyRWRpdFJlZiA9IHRoaXMudGh5UG9wb3Zlci5vcGVuKFRoZUxpbmtFZGl0LCB7XG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgZWRpdG9yOiB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGV4dDogU2xhdGVOb2RlLnN0cmluZyh0aGlzLmVsZW1lbnQpLFxuICAgICAgICAgICAgICAgIGxpbmssXG4gICAgICAgICAgICAgICAgb3JpZ2luU2VsZWN0aW9uOiB0aGlzLmVkaXRvci5zZWxlY3Rpb25cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICBvZmZzZXQ6IDQsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBvcmlnaW5BY3RpdmVDbGFzczogbnVsbCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAgICAgICBwYW5lbENsYXNzOiAndGhlLWxpbmstZWRpdCdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGNsb3NlKHR5cGU/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jbG9zZUhvdmVyUG9wb3ZlcigpO1xuICAgICAgICB0aGlzLmNsb3NlRWRpdFBvcG92ZXIodHlwZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY2xvc2UoTGlua0Nsb3NlVHlwZXMuZGVzdHJveSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FbdGhlTGlua10nLFxuICAgIHRlbXBsYXRlOiBgIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgY2xhc3M9XCJ0aGUtYnJlYWstY2hhclwiPnt7IGlubGluZUNocm9taXVtQnVnZml4IH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAjb3V0bGV0UGFyZW50Pjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIiBjbGFzcz1cInRoZS1icmVhay1jaGFyXCI+e3sgaW5saW5lQ2hyb21pdW1CdWdmaXggfX08L3NwYW4+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5ocmVmXSc6ICdlbGVtZW50LnVybCcsXG4gICAgICAgIHRhcmdldDogJ19ibGFuaydcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGhlTGluayBleHRlbmRzIFRoZUJhc2VMaW5rIHtcbiAgICBAVmlld0NoaWxkKCdvdXRsZXRQYXJlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIG91dGxldFBhcmVudDogRWxlbWVudFJlZjtcblxuICAgIGdldE91dGxldFBhcmVudCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3V0bGV0UGFyZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfTtcblxuICAgIC8vIFB1dCB0aGlzIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGFuIGlubGluZSBjb21wb25lbnQgdG8gd29yayBhcm91bmQgdGhpcyBDaHJvbWl1bSBidWc6XG4gICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI0OTQwNVxuICAgIGlubGluZUNocm9taXVtQnVnZml4ID0gU3RyaW5nLmZyb21Db2RlUG9pbnQoMTYwKTtcbn1cbiJdfQ==
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import isUrl from 'is-url';
|
|
2
|
-
import { Editor, Element, Node, Range, Transforms } from 'slate';
|
|
3
|
-
import { ELEMENT_TO_COMPONENT } from 'slate-angular';
|
|
4
|
-
import { ElementKinds } from '../../constants';
|
|
5
|
-
import { TheEditor } from '../../interfaces';
|
|
6
|
-
import { getAboveByType } from '../../queries/get-above-by-type';
|
|
7
|
-
import * as TheTransforms from '../../transforms';
|
|
8
|
-
import { LinkTags } from './link.types';
|
|
9
|
-
import { TheI18nService } from '../../i18n';
|
|
10
|
-
export const LinkEditor = {
|
|
11
|
-
insertLink(editor) {
|
|
12
|
-
if (Range.isCollapsed(editor.selection)) {
|
|
13
|
-
Promise.resolve()
|
|
14
|
-
.then(() => {
|
|
15
|
-
const locale = editor.injector.get(TheI18nService).getLocale();
|
|
16
|
-
const linkDefaultText = locale().translations.link;
|
|
17
|
-
LinkEditor.wrapLink(editor, linkDefaultText, '');
|
|
18
|
-
})
|
|
19
|
-
.then(() => {
|
|
20
|
-
const [linkNode] = getAboveByType(editor, ElementKinds.link);
|
|
21
|
-
const link = ELEMENT_TO_COMPONENT.get(linkNode);
|
|
22
|
-
link.openLinkEdit(LinkTags.insert);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const isActive = LinkEditor.isActive(editor);
|
|
27
|
-
if (isActive) {
|
|
28
|
-
LinkEditor.unwrapLink(editor);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const fragment = Node.fragment(editor, editor.selection)[0];
|
|
32
|
-
const selectNode = Node.get(fragment, []);
|
|
33
|
-
const selectText = Node.string(selectNode);
|
|
34
|
-
Promise.resolve()
|
|
35
|
-
.then(() => {
|
|
36
|
-
LinkEditor.wrapLink(editor, selectText, '');
|
|
37
|
-
})
|
|
38
|
-
.then(() => {
|
|
39
|
-
const [linkNode] = getAboveByType(editor, ElementKinds.link);
|
|
40
|
-
const link = ELEMENT_TO_COMPONENT.get(linkNode);
|
|
41
|
-
link.openLinkEdit(LinkTags.insert);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
isActive(editor) {
|
|
46
|
-
const [link] = Editor.nodes(editor, { match: n => Element.isElement(n) && n.type === ElementKinds.link });
|
|
47
|
-
return !!link;
|
|
48
|
-
},
|
|
49
|
-
wrapLink(editor, text, url) {
|
|
50
|
-
if (LinkEditor.isActive(editor)) {
|
|
51
|
-
LinkEditor.unwrapLink(editor);
|
|
52
|
-
}
|
|
53
|
-
const { selection } = editor;
|
|
54
|
-
const isCollapsed = selection && Range.isCollapsed(selection);
|
|
55
|
-
const link = {
|
|
56
|
-
type: ElementKinds.link,
|
|
57
|
-
url,
|
|
58
|
-
children: isCollapsed ? [{ text }] : []
|
|
59
|
-
};
|
|
60
|
-
if (isCollapsed) {
|
|
61
|
-
TheTransforms.insertInlineElement(editor, link);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
Transforms.wrapNodes(editor, link, { split: true });
|
|
65
|
-
Transforms.collapse(editor, { edge: 'end' });
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
unwrapLink(editor) {
|
|
69
|
-
Transforms.unwrapNodes(editor, { match: n => Element.isElement(n) && n.type === ElementKinds.link });
|
|
70
|
-
},
|
|
71
|
-
updateLink(editor, element, url, text) {
|
|
72
|
-
if (isUrl(url)) {
|
|
73
|
-
const path = TheEditor.findPath(editor, element);
|
|
74
|
-
if (element.url !== url) {
|
|
75
|
-
Transforms.setNodes(editor, { url: url }, { at: path });
|
|
76
|
-
}
|
|
77
|
-
if (Node.string(element) !== text) {
|
|
78
|
-
const [start, end] = Editor.edges(editor, path);
|
|
79
|
-
Transforms.insertText(editor, text, { at: { anchor: end, focus: end } });
|
|
80
|
-
Transforms.delete(editor, { at: { anchor: start, focus: end } });
|
|
81
|
-
}
|
|
82
|
-
TheEditor.focus(editor);
|
|
83
|
-
Transforms.select(editor, Editor.after(editor, path));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saW5rL2xpbmsuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUMzQixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLFVBQVUsQ0FBQyxNQUFpQjtRQUN4QixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLE9BQU8sRUFBRTtpQkFDWixJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNQLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvRCxNQUFNLGVBQWUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNuRCxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFZLENBQUM7Z0JBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ1gsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDOUIsT0FBTztZQUNYLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUzQyxPQUFPLENBQUMsT0FBTyxFQUFFO2lCQUNaLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1AsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNQLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBWSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLE1BQWM7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBQ0QsUUFBUSxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsR0FBVztRQUM5QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QixVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sV0FBVyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxHQUFnQjtZQUN0QixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDdkIsR0FBRztZQUNILFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzFDLENBQUM7UUFDRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsTUFBYztRQUNyQixVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBQ0QsVUFBVSxDQUFDLE1BQWMsRUFBRSxPQUFvQixFQUFFLEdBQVcsRUFBRSxJQUFZO1FBQ3RFLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEQsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QixVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc1VybCBmcm9tICdpcy11cmwnO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBOb2RlLCBSYW5nZSwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVMRU1FTlRfVE9fQ09NUE9ORU5UIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTGlua0VsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRBYm92ZUJ5VHlwZSB9IGZyb20gJy4uLy4uL3F1ZXJpZXMvZ2V0LWFib3ZlLWJ5LXR5cGUnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IFRoZUxpbmsgfSBmcm9tICcuL2xpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtUYWdzIH0gZnJvbSAnLi9saW5rLnR5cGVzJztcbmltcG9ydCB7IFRoZUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5cbmV4cG9ydCBjb25zdCBMaW5rRWRpdG9yID0ge1xuICAgIGluc2VydExpbmsoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgaWYgKFJhbmdlLmlzQ29sbGFwc2VkKGVkaXRvci5zZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVJMThuU2VydmljZSkuZ2V0TG9jYWxlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtEZWZhdWx0VGV4dCA9IGxvY2FsZSgpLnRyYW5zbGF0aW9ucy5saW5rO1xuICAgICAgICAgICAgICAgICAgICBMaW5rRWRpdG9yLndyYXBMaW5rKGVkaXRvciwgbGlua0RlZmF1bHRUZXh0LCAnJyk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtsaW5rTm9kZV0gPSBnZXRBYm92ZUJ5VHlwZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5saW5rKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGluayA9IEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldChsaW5rTm9kZSkgYXMgVGhlTGluaztcbiAgICAgICAgICAgICAgICAgICAgbGluay5vcGVuTGlua0VkaXQoTGlua1RhZ3MuaW5zZXJ0KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gTGlua0VkaXRvci5pc0FjdGl2ZShlZGl0b3IpO1xuICAgICAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgTGlua0VkaXRvci51bndyYXBMaW5rKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IE5vZGUuZnJhZ21lbnQoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKVswXTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdE5vZGUgPSBOb2RlLmdldChmcmFnbWVudCwgW10pO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0VGV4dCA9IE5vZGUuc3RyaW5nKHNlbGVjdE5vZGUpO1xuXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgTGlua0VkaXRvci53cmFwTGluayhlZGl0b3IsIHNlbGVjdFRleHQsICcnKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2xpbmtOb2RlXSA9IGdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpbmspO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gRUxFTUVOVF9UT19DT01QT05FTlQuZ2V0KGxpbmtOb2RlKSBhcyBUaGVMaW5rO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLm9wZW5MaW5rRWRpdChMaW5rVGFncy5pbnNlcnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICBjb25zdCBbbGlua10gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7IG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmxpbmsgfSk7XG4gICAgICAgIHJldHVybiAhIWxpbms7XG4gICAgfSxcbiAgICB3cmFwTGluayhlZGl0b3I6IEVkaXRvciwgdGV4dDogc3RyaW5nLCB1cmw6IHN0cmluZykge1xuICAgICAgICBpZiAoTGlua0VkaXRvci5pc0FjdGl2ZShlZGl0b3IpKSB7XG4gICAgICAgICAgICBMaW5rRWRpdG9yLnVud3JhcExpbmsoZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBsaW5rOiBMaW5rRWxlbWVudCA9IHtcbiAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5saW5rLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgY2hpbGRyZW46IGlzQ29sbGFwc2VkID8gW3sgdGV4dCB9XSA6IFtdXG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5pbnNlcnRJbmxpbmVFbGVtZW50KGVkaXRvciwgbGluayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhlZGl0b3IsIGxpbmssIHsgc3BsaXQ6IHRydWUgfSk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmNvbGxhcHNlKGVkaXRvciwgeyBlZGdlOiAnZW5kJyB9KTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdW53cmFwTGluayhlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICBUcmFuc2Zvcm1zLnVud3JhcE5vZGVzKGVkaXRvciwgeyBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5saW5rIH0pO1xuICAgIH0sXG4gICAgdXBkYXRlTGluayhlZGl0b3I6IEVkaXRvciwgZWxlbWVudDogTGlua0VsZW1lbnQsIHVybDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlzVXJsKHVybCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnVybCAhPT0gdXJsKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgdXJsOiB1cmwgfSwgeyBhdDogcGF0aCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChOb2RlLnN0cmluZyhlbGVtZW50KSAhPT0gdGV4dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IEVkaXRvci5lZGdlcyhlZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0VGV4dChlZGl0b3IsIHRleHQsIHsgYXQ6IHsgYW5jaG9yOiBlbmQsIGZvY3VzOiBlbmQgfSB9KTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQ6IHsgYW5jaG9yOiBzdGFydCwgZm9jdXM6IGVuZCB9IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVGhlRWRpdG9yLmZvY3VzKGVkaXRvcik7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIEVkaXRvci5hZnRlcihlZGl0b3IsIHBhdGgpKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
|