@worktile/theia 18.0.16 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/constants/node-types.d.ts +1 -0
  2. package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
  3. package/fesm2022/worktile-theia.mjs +262 -281
  4. package/fesm2022/worktile-theia.mjs.map +1 -1
  5. package/package.json +4 -6
  6. package/plugins/code/code.component.scss +1 -2
  7. package/plugins/image/image.component.d.ts +1 -1
  8. package/plugins/mention/suggestion.component.d.ts +1 -1
  9. package/esm2022/components/action/prevent-default.mjs +0 -21
  10. package/esm2022/components/column-resize/column-resize-notifier.mjs +0 -31
  11. package/esm2022/components/column-resize/column-resize.directive.mjs +0 -124
  12. package/esm2022/components/column-resize/event-dispatcher.mjs +0 -56
  13. package/esm2022/components/column-resize/overlay-handle.component.mjs +0 -144
  14. package/esm2022/components/column-resize/resize-ref.mjs +0 -26
  15. package/esm2022/components/column-resize/resizing.store.mjs +0 -92
  16. package/esm2022/components/column-resize/selectors.mjs +0 -4
  17. package/esm2022/components/contextmenu/contextmenu.component.mjs +0 -99
  18. package/esm2022/components/conversion-hint/conversion-hint.component.mjs +0 -56
  19. package/esm2022/components/element/element.component.mjs +0 -23
  20. package/esm2022/components/index.mjs +0 -24
  21. package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +0 -131
  22. package/esm2022/components/listbox/listbox.mjs +0 -380
  23. package/esm2022/components/listbox/listbox.type.mjs +0 -5
  24. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +0 -272
  25. package/esm2022/components/table-select/table-select.component.mjs +0 -49
  26. package/esm2022/components/template/template.component.mjs +0 -62
  27. package/esm2022/components/text/text.component.mjs +0 -57
  28. package/esm2022/components/toolbar/toolbar.component.mjs +0 -262
  29. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -137
  30. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +0 -125
  31. package/esm2022/components/toolbar-item/toolbar-item.component.mjs +0 -80
  32. package/esm2022/constants/auto-format-rules.mjs +0 -167
  33. package/esm2022/constants/code.mjs +0 -85
  34. package/esm2022/constants/color-select.mjs +0 -3
  35. package/esm2022/constants/default.mjs +0 -11
  36. package/esm2022/constants/error.mjs +0 -7
  37. package/esm2022/constants/index.mjs +0 -9
  38. package/esm2022/constants/node-types.mjs +0 -136
  39. package/esm2022/constants/plugin-menu.mjs +0 -311
  40. package/esm2022/constants/selector.mjs +0 -3
  41. package/esm2022/constants/toolbar.mjs +0 -53
  42. package/esm2022/core/create-plugin.mjs +0 -5
  43. package/esm2022/core/create-toolbar.mjs +0 -55
  44. package/esm2022/core/index.mjs +0 -6
  45. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +0 -95
  46. package/esm2022/core/utils/combine-plugins.mjs +0 -10
  47. package/esm2022/core/utils/flatten-deep-plugins.mjs +0 -19
  48. package/esm2022/core/utils/get-plugin-options.mjs +0 -3
  49. package/esm2022/core/utils/get-plugin.mjs +0 -2
  50. package/esm2022/core/utils/get-plugins.mjs +0 -4
  51. package/esm2022/core/utils/index.mjs +0 -12
  52. package/esm2022/core/utils/merge-array.mjs +0 -18
  53. package/esm2022/core/utils/merge-deep-plugins.mjs +0 -14
  54. package/esm2022/core/utils/merge-options.mjs +0 -25
  55. package/esm2022/core/utils/nested-structure-by-key.mjs +0 -11
  56. package/esm2022/core/utils/plugin-menu.mjs +0 -63
  57. package/esm2022/core/utils/plugins-by-key.mjs +0 -10
  58. package/esm2022/core/with-theia.mjs +0 -25
  59. package/esm2022/custom-types.mjs +0 -2
  60. package/esm2022/editor.component.mjs +0 -488
  61. package/esm2022/editor.module.mjs +0 -18
  62. package/esm2022/i18n/i18n.mjs +0 -10
  63. package/esm2022/i18n/i18n.service.mjs +0 -46
  64. package/esm2022/i18n/i18n.token.mjs +0 -9
  65. package/esm2022/i18n/index.mjs +0 -10
  66. package/esm2022/i18n/locales/de-de.mjs +0 -102
  67. package/esm2022/i18n/locales/en-us.mjs +0 -102
  68. package/esm2022/i18n/locales/ja-jp.mjs +0 -102
  69. package/esm2022/i18n/locales/ru-ru.mjs +0 -102
  70. package/esm2022/i18n/locales/zh-hans.mjs +0 -102
  71. package/esm2022/i18n/locales/zh-hant.mjs +0 -102
  72. package/esm2022/interfaces/auto-format.mjs +0 -2
  73. package/esm2022/interfaces/editor.mjs +0 -26
  74. package/esm2022/interfaces/element.mjs +0 -2
  75. package/esm2022/interfaces/image.mjs +0 -3
  76. package/esm2022/interfaces/index.mjs +0 -11
  77. package/esm2022/interfaces/plugins/index.mjs +0 -6
  78. package/esm2022/interfaces/plugins/no-infer.mjs +0 -2
  79. package/esm2022/interfaces/plugins/plugin-key.mjs +0 -42
  80. package/esm2022/interfaces/plugins/plugin-menu.mjs +0 -19
  81. package/esm2022/interfaces/plugins/plugins.mjs +0 -2
  82. package/esm2022/interfaces/plugins/with-override.mjs +0 -2
  83. package/esm2022/interfaces/preset.mjs +0 -3
  84. package/esm2022/interfaces/reset-block-type-plugin-options.mjs +0 -2
  85. package/esm2022/interfaces/toolbar.mjs +0 -12
  86. package/esm2022/interfaces/upload.mjs +0 -2
  87. package/esm2022/interfaces/utility/index.mjs +0 -4
  88. package/esm2022/interfaces/utility/nested-structure-by-key.mjs +0 -2
  89. package/esm2022/interfaces/utility/override-by-key.mjs +0 -2
  90. package/esm2022/interfaces/utility/types.mjs +0 -2
  91. package/esm2022/interfaces/valid-children-types.mjs +0 -36
  92. package/esm2022/interfaces/view-base.mjs +0 -38
  93. package/esm2022/pipes.mjs +0 -61
  94. package/esm2022/plugins/align/align.editor.mjs +0 -41
  95. package/esm2022/plugins/align/align.plugin.mjs +0 -64
  96. package/esm2022/plugins/autoformat/autoformat.plugin.mjs +0 -109
  97. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
  98. package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
  99. package/esm2022/plugins/blockquote/blockquote.component.mjs +0 -16
  100. package/esm2022/plugins/blockquote/blockquote.editor.mjs +0 -20
  101. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +0 -84
  102. package/esm2022/plugins/code/code.component.mjs +0 -255
  103. package/esm2022/plugins/code/code.editor.mjs +0 -59
  104. package/esm2022/plugins/code/code.plugin.mjs +0 -67
  105. package/esm2022/plugins/color/color.editor.mjs +0 -27
  106. package/esm2022/plugins/color/color.plugin.mjs +0 -32
  107. package/esm2022/plugins/color/toolbar-item.component.mjs +0 -99
  108. package/esm2022/plugins/common/block-card.plugin.mjs +0 -330
  109. package/esm2022/plugins/common/common.plugin.mjs +0 -49
  110. package/esm2022/plugins/common/get-fragment.plugin.mjs +0 -24
  111. package/esm2022/plugins/common/history.plugin.mjs +0 -31
  112. package/esm2022/plugins/common/insert-data-by-invalid-type.mjs +0 -23
  113. package/esm2022/plugins/common/move-selection.plugin.mjs +0 -105
  114. package/esm2022/plugins/common/remove-empty.plugin.mjs +0 -61
  115. package/esm2022/plugins/common/remove-void.plugin.mjs +0 -60
  116. package/esm2022/plugins/common/reset-type.plugin.mjs +0 -35
  117. package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +0 -61
  118. package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +0 -142
  119. package/esm2022/plugins/font-size/font-size.editor.mjs +0 -98
  120. package/esm2022/plugins/heading/heading.editor.mjs +0 -54
  121. package/esm2022/plugins/heading/heading.plugin.mjs +0 -136
  122. package/esm2022/plugins/hr/hr.component.mjs +0 -37
  123. package/esm2022/plugins/hr/hr.editor.mjs +0 -16
  124. package/esm2022/plugins/hr/hr.plugin.mjs +0 -56
  125. package/esm2022/plugins/image/image.component.mjs +0 -474
  126. package/esm2022/plugins/image/image.editor.mjs +0 -116
  127. package/esm2022/plugins/image/image.plugin.mjs +0 -90
  128. package/esm2022/plugins/indent/indent.editor.mjs +0 -78
  129. package/esm2022/plugins/indent/indent.plugin.mjs +0 -59
  130. package/esm2022/plugins/indent/on-keydown-indent.mjs +0 -59
  131. package/esm2022/plugins/index.mjs +0 -73
  132. package/esm2022/plugins/inline-code/inline-code.component.mjs +0 -28
  133. package/esm2022/plugins/inline-code/inline-code.editor.mjs +0 -49
  134. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +0 -67
  135. package/esm2022/plugins/link/edit/link-edit.component.mjs +0 -104
  136. package/esm2022/plugins/link/hover/link-hover.component.mjs +0 -38
  137. package/esm2022/plugins/link/link.component.mjs +0 -170
  138. package/esm2022/plugins/link/link.editor.mjs +0 -87
  139. package/esm2022/plugins/link/link.plugin.mjs +0 -89
  140. package/esm2022/plugins/link/link.types.mjs +0 -12
  141. package/esm2022/plugins/list/components/bulleted-list.component.mjs +0 -28
  142. package/esm2022/plugins/list/components/list-item.component.mjs +0 -88
  143. package/esm2022/plugins/list/components/numbered-list.component.mjs +0 -37
  144. package/esm2022/plugins/list/list.editor.mjs +0 -128
  145. package/esm2022/plugins/list/list.plugin.mjs +0 -302
  146. package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
  147. package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +0 -18
  148. package/esm2022/plugins/list/normalizers/normalize-no.mjs +0 -43
  149. package/esm2022/plugins/list/on-key-down-list.mjs +0 -33
  150. package/esm2022/plugins/list/queries/get-list-item-entry.mjs +0 -28
  151. package/esm2022/plugins/list/queries/get-list-item-sublist.mjs +0 -12
  152. package/esm2022/plugins/list/queries/get-list-types.mjs +0 -5
  153. package/esm2022/plugins/list/queries/get-start-list-item.mjs +0 -27
  154. package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +0 -27
  155. package/esm2022/plugins/list/queries/is-in-list.mjs +0 -6
  156. package/esm2022/plugins/list/queries/is-list-nested.mjs +0 -10
  157. package/esm2022/plugins/list/queries/is-list.mjs +0 -5
  158. package/esm2022/plugins/list/queries/is-node-type-list.mjs +0 -5
  159. package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
  160. package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
  161. package/esm2022/plugins/list/queries/is-single-list-item.mjs +0 -9
  162. package/esm2022/plugins/list/transforms/insert-list-data.mjs +0 -72
  163. package/esm2022/plugins/list/transforms/insert-list-item.mjs +0 -73
  164. package/esm2022/plugins/list/transforms/move-list-item-down.mjs +0 -41
  165. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
  166. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
  167. package/esm2022/plugins/list/transforms/move-list-item-up.mjs +0 -78
  168. package/esm2022/plugins/list/transforms/unwrap-list.mjs +0 -10
  169. package/esm2022/plugins/list/types.mjs +0 -2
  170. package/esm2022/plugins/mark/mark.editor.mjs +0 -28
  171. package/esm2022/plugins/mark/mark.plugin.mjs +0 -105
  172. package/esm2022/plugins/mention/index.mjs +0 -5
  173. package/esm2022/plugins/mention/mention.editor.mjs +0 -179
  174. package/esm2022/plugins/mention/mention.plugin.mjs +0 -92
  175. package/esm2022/plugins/mention/mention.type.mjs +0 -2
  176. package/esm2022/plugins/mention/suggestion.component.mjs +0 -22
  177. package/esm2022/plugins/node-id/node-id.plugin.mjs +0 -78
  178. package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +0 -28
  179. package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +0 -18
  180. package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +0 -33
  181. package/esm2022/plugins/paint-format/paint-format.editor.mjs +0 -126
  182. package/esm2022/plugins/public-api.mjs +0 -20
  183. package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +0 -126
  184. package/esm2022/plugins/quick-insert/index.mjs +0 -4
  185. package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +0 -70
  186. package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +0 -109
  187. package/esm2022/plugins/soft-break/soft-break.plugin.mjs +0 -36
  188. package/esm2022/plugins/soft-break/soft-break.types.mjs +0 -2
  189. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -132
  190. package/esm2022/plugins/table/components/row/row.component.mjs +0 -93
  191. package/esm2022/plugins/table/components/table.component.mjs +0 -887
  192. package/esm2022/plugins/table/components/td/td.component.mjs +0 -610
  193. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +0 -102
  194. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -179
  195. package/esm2022/plugins/table/table.editor.mjs +0 -301
  196. package/esm2022/plugins/table/table.pipe.mjs +0 -66
  197. package/esm2022/plugins/table/table.plugin.mjs +0 -556
  198. package/esm2022/plugins/table/table.service.mjs +0 -122
  199. package/esm2022/plugins/table/table.store.mjs +0 -417
  200. package/esm2022/plugins/table/table.types.mjs +0 -68
  201. package/esm2022/plugins/table/toolbar-item.component.mjs +0 -95
  202. package/esm2022/plugins/table/transforms/clear-cell.mjs +0 -14
  203. package/esm2022/plugins/table/transforms/clear-table-node.mjs +0 -27
  204. package/esm2022/plugins/table/transforms/index.mjs +0 -8
  205. package/esm2022/plugins/table/transforms/insert-column.mjs +0 -69
  206. package/esm2022/plugins/table/transforms/insert-row.mjs +0 -50
  207. package/esm2022/plugins/table/transforms/insert-table.mjs +0 -15
  208. package/esm2022/plugins/table/transforms/move-selection-from-cell.mjs +0 -91
  209. package/esm2022/plugins/table/transforms/remove-column.mjs +0 -51
  210. package/esm2022/plugins/table/transforms/remove-row.mjs +0 -48
  211. package/esm2022/plugins/table/transforms/remove-table.mjs +0 -49
  212. package/esm2022/plugins/table/utils/add-columns.mjs +0 -38
  213. package/esm2022/plugins/table/utils/calc-anchor-position.mjs +0 -26
  214. package/esm2022/plugins/table/utils/calc-span.mjs +0 -73
  215. package/esm2022/plugins/table/utils/calculate-table.mjs +0 -116
  216. package/esm2022/plugins/table/utils/cell-position.mjs +0 -57
  217. package/esm2022/plugins/table/utils/create-cell.mjs +0 -19
  218. package/esm2022/plugins/table/utils/create-row.mjs +0 -12
  219. package/esm2022/plugins/table/utils/create-table-position.mjs +0 -10
  220. package/esm2022/plugins/table/utils/create-table.mjs +0 -15
  221. package/esm2022/plugins/table/utils/get-grid-columns.mjs +0 -79
  222. package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
  223. package/esm2022/plugins/table/utils/get-next-cell.mjs +0 -44
  224. package/esm2022/plugins/table/utils/get-select-cell-node.mjs +0 -16
  225. package/esm2022/plugins/table/utils/handle-cell.mjs +0 -25
  226. package/esm2022/plugins/table/utils/index.mjs +0 -16
  227. package/esm2022/plugins/table/utils/is-header-row.mjs +0 -15
  228. package/esm2022/plugins/table/utils/is-legal-table.mjs +0 -26
  229. package/esm2022/plugins/table/utils/is-range-in-table.mjs +0 -16
  230. package/esm2022/plugins/table/utils/is-selection-in-table.mjs +0 -51
  231. package/esm2022/plugins/table/utils/is-virtual-key.mjs +0 -13
  232. package/esm2022/plugins/table/utils/merge-cell.mjs +0 -110
  233. package/esm2022/plugins/table/utils/next-path.mjs +0 -5
  234. package/esm2022/plugins/table/utils/normalize-table.mjs +0 -31
  235. package/esm2022/plugins/table/utils/remove-columns.mjs +0 -23
  236. package/esm2022/plugins/table/utils/remove-row-column.mjs +0 -45
  237. package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
  238. package/esm2022/plugins/table/utils/split-cell.mjs +0 -29
  239. package/esm2022/plugins/table/utils/table-entry.mjs +0 -21
  240. package/esm2022/plugins/table/utils/table-position.mjs +0 -251
  241. package/esm2022/plugins/table/utils/table-viewport.mjs +0 -41
  242. package/esm2022/plugins/todo-item/todo-item.component.mjs +0 -65
  243. package/esm2022/plugins/todo-item/todo-item.editor.mjs +0 -32
  244. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +0 -93
  245. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +0 -95
  246. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +0 -59
  247. package/esm2022/public-api.mjs +0 -22
  248. package/esm2022/queries/anchor-block-entry.mjs +0 -13
  249. package/esm2022/queries/anchor-block.mjs +0 -6
  250. package/esm2022/queries/anchor-inline-entry.mjs +0 -10
  251. package/esm2022/queries/find-descendant.mjs +0 -47
  252. package/esm2022/queries/find-node.mjs +0 -45
  253. package/esm2022/queries/find-path.mjs +0 -28
  254. package/esm2022/queries/get-above-by-type.mjs +0 -14
  255. package/esm2022/queries/get-above.mjs +0 -9
  256. package/esm2022/queries/get-anchor-block-entry.mjs +0 -8
  257. package/esm2022/queries/get-block-above.mjs +0 -10
  258. package/esm2022/queries/get-block-card-above.mjs +0 -10
  259. package/esm2022/queries/get-block-card-cursor.mjs +0 -9
  260. package/esm2022/queries/get-container-blocks.mjs +0 -12
  261. package/esm2022/queries/get-directly-parent.mjs +0 -12
  262. package/esm2022/queries/get-insert-elements-path.mjs +0 -46
  263. package/esm2022/queries/get-last-child-path.mjs +0 -9
  264. package/esm2022/queries/get-last-node.mjs +0 -17
  265. package/esm2022/queries/get-next-sibling-nodes.mjs +0 -17
  266. package/esm2022/queries/get-node.mjs +0 -10
  267. package/esm2022/queries/get-nodes-by-type.mjs +0 -15
  268. package/esm2022/queries/get-nodes.mjs +0 -7
  269. package/esm2022/queries/get-parent.mjs +0 -12
  270. package/esm2022/queries/get-plain-text.mjs +0 -16
  271. package/esm2022/queries/get-plugin-by-toolbar.mjs +0 -13
  272. package/esm2022/queries/get-point-before.mjs +0 -62
  273. package/esm2022/queries/get-point-from-location.mjs +0 -15
  274. package/esm2022/queries/get-previous-path.mjs +0 -9
  275. package/esm2022/queries/get-rang-from-block-start.mjs +0 -16
  276. package/esm2022/queries/get-range-before.mjs +0 -17
  277. package/esm2022/queries/get-selection-marks.mjs +0 -18
  278. package/esm2022/queries/get-selection-nodes-by-type.mjs +0 -30
  279. package/esm2022/queries/get-text.mjs +0 -9
  280. package/esm2022/queries/get-toolbar-disabled.mjs +0 -13
  281. package/esm2022/queries/index.mjs +0 -62
  282. package/esm2022/queries/is-across-blocks.mjs +0 -7
  283. package/esm2022/queries/is-ancestor-empty.mjs +0 -6
  284. package/esm2022/queries/is-ancestor.mjs +0 -3
  285. package/esm2022/queries/is-block-above-empty.mjs +0 -11
  286. package/esm2022/queries/is-block-active.mjs +0 -8
  287. package/esm2022/queries/is-block-card-cursor.mjs +0 -16
  288. package/esm2022/queries/is-block-text-empty-after-selection.mjs +0 -31
  289. package/esm2022/queries/is-collapsed.mjs +0 -7
  290. package/esm2022/queries/is-contain-nested-type.mjs +0 -29
  291. package/esm2022/queries/is-container-type.mjs +0 -3
  292. package/esm2022/queries/is-descendant.mjs +0 -3
  293. package/esm2022/queries/is-empty-content-filter.mjs +0 -22
  294. package/esm2022/queries/is-empty-content.mjs +0 -15
  295. package/esm2022/queries/is-empty-paragraph-by-path.mjs +0 -7
  296. package/esm2022/queries/is-empty-paragraph.mjs +0 -28
  297. package/esm2022/queries/is-first-child.mjs +0 -5
  298. package/esm2022/queries/is-global-collapsed.mjs +0 -5
  299. package/esm2022/queries/is-include-types.mjs +0 -12
  300. package/esm2022/queries/is-node-type-in.mjs +0 -9
  301. package/esm2022/queries/is-node-type.mjs +0 -15
  302. package/esm2022/queries/is-paragraph.mjs +0 -9
  303. package/esm2022/queries/is-point-at-root.mjs +0 -2
  304. package/esm2022/queries/is-range-across-blocks.mjs +0 -22
  305. package/esm2022/queries/is-range-at-root.mjs +0 -3
  306. package/esm2022/queries/is-root-path.mjs +0 -2
  307. package/esm2022/queries/is-start.mjs +0 -6
  308. package/esm2022/queries/some-node.mjs +0 -9
  309. package/esm2022/services/context.service.mjs +0 -140
  310. package/esm2022/services/table-contextmenu.service.mjs +0 -288
  311. package/esm2022/services/toolbar.service.mjs +0 -47
  312. package/esm2022/shortcuts/index.mjs +0 -5
  313. package/esm2022/shortcuts/mark.mjs +0 -25
  314. package/esm2022/test/basic/basic.component.mjs +0 -61
  315. package/esm2022/test/faker/data-transfer-faker.mjs +0 -13
  316. package/esm2022/test/faker/tethys-icon-faker.mjs +0 -22
  317. package/esm2022/test/index.mjs +0 -7
  318. package/esm2022/test/utils/mock-plugins.mjs +0 -104
  319. package/esm2022/test/utils/preset-config.mjs +0 -17
  320. package/esm2022/test/utils/with-plugin.mjs +0 -11
  321. package/esm2022/transforms/apply-deep-to-nodes.mjs +0 -22
  322. package/esm2022/transforms/clear-marks.mjs +0 -23
  323. package/esm2022/transforms/delete-element.mjs +0 -12
  324. package/esm2022/transforms/delete-node-by-type.mjs +0 -10
  325. package/esm2022/transforms/handle-continual-delete-backward.mjs +0 -18
  326. package/esm2022/transforms/handle-continual-insert-break.mjs +0 -20
  327. package/esm2022/transforms/index.mjs +0 -19
  328. package/esm2022/transforms/insert-elements.mjs +0 -55
  329. package/esm2022/transforms/insert-paragraph.mjs +0 -6
  330. package/esm2022/transforms/merge-deep-to-nodes.mjs +0 -9
  331. package/esm2022/transforms/move-children.mjs +0 -22
  332. package/esm2022/transforms/on-keydown-reset-block-type.mjs +0 -23
  333. package/esm2022/transforms/set-end-selection.mjs +0 -10
  334. package/esm2022/transforms/set-marks.mjs +0 -9
  335. package/esm2022/transforms/set-node-by-type.mjs +0 -10
  336. package/esm2022/transforms/set-node.mjs +0 -6
  337. package/esm2022/transforms/un-hang-range.mjs +0 -11
  338. package/esm2022/transforms/un-wrap.mjs +0 -12
  339. package/esm2022/transforms/unwrap-nodes-by-type.mjs +0 -14
  340. package/esm2022/utils/auto-focus.mjs +0 -24
  341. package/esm2022/utils/blob.mjs +0 -16
  342. package/esm2022/utils/cast-array.mjs +0 -7
  343. package/esm2022/utils/color-picker.mjs +0 -15
  344. package/esm2022/utils/common.mjs +0 -11
  345. package/esm2022/utils/copy-node.mjs +0 -38
  346. package/esm2022/utils/create-empty-paragraph.mjs +0 -14
  347. package/esm2022/utils/data-transform.mjs +0 -48
  348. package/esm2022/utils/dom.mjs +0 -56
  349. package/esm2022/utils/editor-uuid.mjs +0 -8
  350. package/esm2022/utils/fragment.mjs +0 -82
  351. package/esm2022/utils/get-editable-element-height.mjs +0 -6
  352. package/esm2022/utils/get-mode.mjs +0 -14
  353. package/esm2022/utils/get-toolbar-class.mjs +0 -6
  354. package/esm2022/utils/id-creator.mjs +0 -11
  355. package/esm2022/utils/index.mjs +0 -23
  356. package/esm2022/utils/insert-data-by-invalid-type.mjs +0 -70
  357. package/esm2022/utils/is-clean-empty-paragraph.mjs +0 -37
  358. package/esm2022/utils/is-inline.mjs +0 -9
  359. package/esm2022/utils/lodash.mjs +0 -3
  360. package/esm2022/utils/match.mjs +0 -32
  361. package/esm2022/utils/merge-element-options.mjs +0 -19
  362. package/esm2022/utils/normalize.mjs +0 -61
  363. package/esm2022/utils/refocus.mjs +0 -47
  364. package/esm2022/utils/scrolling.mjs +0 -43
  365. package/esm2022/utils/update-popover-position.mjs +0 -26
  366. package/esm2022/utils/weak-maps.mjs +0 -9
  367. package/esm2022/worktile-theia.mjs +0 -5
@@ -1,18 +0,0 @@
1
- import { Node, Transforms } from 'slate';
2
- import { castArray } from '../../utils/cast-array';
3
- /**
4
- * Remove nodes with empty text.
5
- */
6
- export const withRemoveEmptyNodes = (options) => (editor) => {
7
- const types = castArray(options.type);
8
- const { normalizeNode } = editor;
9
- editor.normalizeNode = ([node, path]) => {
10
- if (node.type && types.includes(node.type) && Node.string(node) === '') {
11
- Transforms.removeNodes(editor, { at: path });
12
- return;
13
- }
14
- normalizeNode([node, path]);
15
- };
16
- return editor;
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWVtcHR5LW5vZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbm9ybWFsaXplcnMvcmVtb3ZlLWVtcHR5LW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQWEsVUFBVSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUM3QixDQUFDLE9BQW9DLEVBQUUsRUFBRSxDQUN6QyxDQUFzQixNQUFTLEVBQUUsRUFBRTtJQUMvQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBcUIsRUFBRSxFQUFFO1FBQ3hELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQy9FLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDN0MsT0FBTztRQUNYLENBQUM7UUFFRCxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5vZGUsIE5vZGVFbnRyeSwgVHJhbnNmb3JtcywgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGNhc3RBcnJheSB9IGZyb20gJy4uLy4uL3V0aWxzL2Nhc3QtYXJyYXknO1xuXG4vKipcbiAqIFJlbW92ZSBub2RlcyB3aXRoIGVtcHR5IHRleHQuXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoUmVtb3ZlRW1wdHlOb2RlcyA9XG4gICAgKG9wdGlvbnM6IHsgdHlwZTogc3RyaW5nIHwgc3RyaW5nW10gfSkgPT5cbiAgICA8VCBleHRlbmRzIFRoZUVkaXRvcj4oZWRpdG9yOiBUKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0gY2FzdEFycmF5KG9wdGlvbnMudHlwZSk7XG5cbiAgICAgICAgY29uc3QgeyBub3JtYWxpemVOb2RlIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSAoW25vZGUsIHBhdGhdOiBOb2RlRW50cnk8RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLnR5cGUgJiYgdHlwZXMuaW5jbHVkZXMobm9kZS50eXBlIGFzIHN0cmluZykgJiYgTm9kZS5zdHJpbmcobm9kZSkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlcyhlZGl0b3IsIHsgYXQ6IHBhdGggfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBub3JtYWxpemVOb2RlKFtub2RlLCBwYXRoXSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGVkaXRvcjtcbiAgICB9O1xuIl19
@@ -1,33 +0,0 @@
1
- import { Element, Path, Transforms } from 'slate';
2
- import { ElementKinds } from '../../constants';
3
- import { createPluginFactory, getPluginOptions } from '../../core';
4
- import { PluginKeys } from '../../interfaces';
5
- import * as TheQueries from '../../queries';
6
- export const withTrailingNode = (editor) => {
7
- const { normalizeNode } = editor;
8
- const options = getPluginOptions(editor, PluginKeys.trailingNode);
9
- const { type, level, ...query } = options;
10
- editor.normalizeNode = ([currentNode, currentPath]) => {
11
- if (!currentPath.length) {
12
- const entry = TheQueries.getLastNode(editor, level);
13
- const [lastNode, lastPath] = entry;
14
- if (Element.isElement(lastNode) && lastNode.type !== type && TheQueries.isNodeType(entry, query)) {
15
- Transforms.insertNodes(editor, {
16
- type,
17
- children: [{ text: '' }]
18
- }, { at: Path.next(lastPath) });
19
- }
20
- }
21
- return normalizeNode([currentNode, currentPath]);
22
- };
23
- return editor;
24
- };
25
- export const createTrailingNodePlugin = createPluginFactory({
26
- key: PluginKeys.trailingNode,
27
- withOverrides: withTrailingNode,
28
- options: {
29
- type: ElementKinds.paragraph,
30
- level: 0
31
- }
32
- });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaWxpbmctbm9kZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ub3JtYWxpemVycy90cmFpbGluZy1ub2RlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsT0FBTyxFQUFRLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBTzVDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQW1CLE1BQVMsRUFBRSxFQUFFO0lBQzVELE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQW1CLE1BQU0sRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEYsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFMUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUVuQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0YsVUFBVSxDQUFDLFdBQVcsQ0FDbEIsTUFBTSxFQUNOO29CQUNJLElBQUk7b0JBQ0osUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ25CLEVBQ1QsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUM5QixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG1CQUFtQixDQUFDO0lBQ3hELEdBQUcsRUFBRSxVQUFVLENBQUMsWUFBWTtJQUM1QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxZQUFZLENBQUMsU0FBUztRQUM1QixLQUFLLEVBQUUsQ0FBQztLQUNYO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBOb2RlLCBQYXRoLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnksIGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzLCBRdWVyeU9wdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aFRyYWlsaW5nTm9kZSBleHRlbmRzIFF1ZXJ5T3B0aW9ucyB7XG4gICAgdHlwZT86IEN1c3RvbUVsZW1lbnRLaW5kcztcbiAgICBsZXZlbD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhUcmFpbGluZ05vZGUgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKSA9PiB7XG4gICAgY29uc3QgeyBub3JtYWxpemVOb2RlIH0gPSBlZGl0b3I7XG5cbiAgICBjb25zdCBvcHRpb25zID0gZ2V0UGx1Z2luT3B0aW9uczxXaXRoVHJhaWxpbmdOb2RlPihlZGl0b3IsIFBsdWdpbktleXMudHJhaWxpbmdOb2RlKTtcbiAgICBjb25zdCB7IHR5cGUsIGxldmVsLCAuLi5xdWVyeSB9ID0gb3B0aW9ucztcblxuICAgIGVkaXRvci5ub3JtYWxpemVOb2RlID0gKFtjdXJyZW50Tm9kZSwgY3VycmVudFBhdGhdKSA9PiB7XG4gICAgICAgIGlmICghY3VycmVudFBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IFRoZVF1ZXJpZXMuZ2V0TGFzdE5vZGUoZWRpdG9yLCBsZXZlbCk7XG4gICAgICAgICAgICBjb25zdCBbbGFzdE5vZGUsIGxhc3RQYXRoXSA9IGVudHJ5O1xuXG4gICAgICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQobGFzdE5vZGUpICYmIGxhc3ROb2RlLnR5cGUgIT09IHR5cGUgJiYgVGhlUXVlcmllcy5pc05vZGVUeXBlKGVudHJ5LCBxdWVyeSkpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogJycgfV1cbiAgICAgICAgICAgICAgICAgICAgfSBhcyBOb2RlLFxuICAgICAgICAgICAgICAgICAgICB7IGF0OiBQYXRoLm5leHQobGFzdFBhdGgpIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU5vZGUoW2N1cnJlbnROb2RlLCBjdXJyZW50UGF0aF0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRyYWlsaW5nTm9kZVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy50cmFpbGluZ05vZGUsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aFRyYWlsaW5nTm9kZSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsXG4gICAgICAgIGxldmVsOiAwXG4gICAgfVxufSk7XG4iXX0=
@@ -1,126 +0,0 @@
1
- import { filter, take } from 'rxjs/operators';
2
- import { Editor, Range } from 'slate';
3
- import { EDITOR_TO_ELEMENT } from 'slate-angular';
4
- import { HistoryEditor } from 'slate-history';
5
- import { MarkProps, ToolbarActionTypes } from '../../constants';
6
- import { createPluginFactory } from '../../core';
7
- import { PluginKeys, TheEditor } from '../../interfaces';
8
- import * as TheQueries from '../../queries';
9
- import { TheContextService } from '../../services/context.service';
10
- import * as TheTransforms from '../../transforms';
11
- import { CONTROL_KEY } from '../../utils';
12
- import { TableEditor } from '../table/table.editor';
13
- export const PaintFormatEditor = {
14
- formatBrush(editor, marks) {
15
- const block = TheQueries.anchorBlock(editor);
16
- if (block && Range.isCollapsed(editor.selection)) {
17
- // TODO:: 在撤销时有bug, 临时使用withoutSaving处理
18
- HistoryEditor.withoutSaving(editor, () => {
19
- const path = TheEditor.findPath(editor, block);
20
- TheTransforms.setMarks(editor, marks, path);
21
- });
22
- }
23
- else {
24
- TheTransforms.setMarks(editor, marks);
25
- }
26
- PaintFormatEditor.cancelFormatBrushStatus(editor);
27
- },
28
- isActive(editor) {
29
- const contextService = editor.injector.get(TheContextService);
30
- const res = contextService.paintFormatStatus.isActive;
31
- return res;
32
- },
33
- enableFormatBrush(editor) {
34
- const contextService = editor.injector.get(TheContextService);
35
- if (contextService.paintFormatStatus.isActive) {
36
- return PaintFormatEditor.cancelFormatBrushStatus(editor);
37
- }
38
- contextService.paintFormatStatus = {
39
- isActive: true,
40
- marks: TheQueries.getSelectionMarks(editor)
41
- };
42
- const element = EDITOR_TO_ELEMENT.get(editor);
43
- element.classList.add('pointer-paint');
44
- contextService.onMouseUp$
45
- .pipe(filter(event => element.contains(event.target)), take(1))
46
- .subscribe((event) => {
47
- if (contextService.paintFormatStatus.isActive) {
48
- const contextService = editor.injector.get(TheContextService);
49
- const marks = {};
50
- for (const key of MarkProps) {
51
- marks[key] = contextService.paintFormatStatus.marks[key] || null;
52
- }
53
- if (TableEditor.formatBrush(editor, marks)) {
54
- PaintFormatEditor.cancelFormatBrushStatus(editor);
55
- return;
56
- }
57
- PaintFormatEditor.formatBrush(editor, marks);
58
- }
59
- });
60
- editor.onChange();
61
- },
62
- cancelFormatBrushStatus(editor) {
63
- const contextService = editor.injector.get(TheContextService);
64
- contextService.paintFormatStatus = {
65
- isActive: false,
66
- marks: {}
67
- };
68
- const element = EDITOR_TO_ELEMENT.get(editor);
69
- element.classList.remove('pointer-paint');
70
- editor.onChange();
71
- }
72
- };
73
- export const createPaintFormatPlugin = (locale) => createPluginFactory({
74
- key: PluginKeys.paintFormat,
75
- toolbarItems: [
76
- {
77
- key: ToolbarActionTypes.undo,
78
- icon: 'undo',
79
- name: locale().undo,
80
- shortcutKey: `${CONTROL_KEY}+Z`,
81
- execute: (editor) => editor.undo()
82
- },
83
- {
84
- key: ToolbarActionTypes.redo,
85
- icon: 'redo',
86
- name: locale().redo,
87
- shortcutKey: `${CONTROL_KEY}+Shift+Z`,
88
- execute: (editor) => editor.redo()
89
- },
90
- {
91
- key: ToolbarActionTypes.paintformat,
92
- icon: 'paintformat',
93
- name: locale().paintFormat,
94
- execute: PaintFormatEditor.enableFormatBrush,
95
- active: PaintFormatEditor.isActive
96
- },
97
- {
98
- key: ToolbarActionTypes.clean,
99
- icon: 'clean',
100
- name: locale().cleanFormat,
101
- execute: (editor) => {
102
- const { selection } = editor;
103
- if (!selection) {
104
- return;
105
- }
106
- if (TableEditor.clearMark(editor)) {
107
- return;
108
- }
109
- if (Range.isCollapsed(selection)) {
110
- const marks = Editor.marks(editor);
111
- for (const key of Object.keys(marks)) {
112
- Editor.removeMark(editor, key);
113
- }
114
- }
115
- else {
116
- const unsetMarks = {};
117
- MarkProps.forEach(key => {
118
- unsetMarks[key] = null;
119
- });
120
- TheTransforms.setMarks(editor, unsetMarks);
121
- }
122
- }
123
- }
124
- ]
125
- })();
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtZm9ybWF0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3BhaW50LWZvcm1hdC9wYWludC1mb3JtYXQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBYSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJcEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsV0FBVyxDQUFDLE1BQWlCLEVBQUUsS0FBbUM7UUFDOUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxD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O1lBQzdCLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLFdBQVc7WUFDMUIsT0FBTyxFQUFFLENBQUMsTUFBaUIsRUFBRSxFQUFFO2dCQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2IsT0FBTztnQkFDWCxDQUFDO2dCQUVELElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNoQyxPQUFPO2dCQUNYLENBQUM7Z0JBRUQsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ25DLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNuQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDbkMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osTUFBTSxVQUFVLEdBQTJDLEVBQUUsQ0FBQztvQkFDOUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDcEIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDM0IsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9DLENBQUM7WUFDTCxDQUFDO1NBQ0o7S0FDSjtDQUNKLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVESVRPUl9UT19FTEVNRU5UIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBNYXJrUHJvcHMsIE1hcmtUeXBlcywgVG9vbGJhckFjdGlvblR5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMsIFRoZUVkaXRvciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBDT05UUk9MX0tFWSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi4vdGFibGUvdGFibGUuZWRpdG9yJztcbmltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlSTE4blRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5cbmV4cG9ydCBjb25zdCBQYWludEZvcm1hdEVkaXRvciA9IHtcbiAgICBmb3JtYXRCcnVzaChlZGl0b3I6IFRoZUVkaXRvciwgbWFya3M6IHsgW2tleSBpbiBNYXJrVHlwZXNdPzogYW55IH0pIHtcbiAgICAgICAgY29uc3QgYmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgIGlmIChibG9jayAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gVE9ETzo6IOWcqOaSpOmUgOaXtuaciWJ1Zywg5Li05pe25L2/55Sod2l0aG91dFNhdmluZ+WkhOeQhlxuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0U2F2aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIG1hcmtzLCBwYXRoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIG1hcmtzKTtcbiAgICAgICAgfVxuICAgICAgICBQYWludEZvcm1hdEVkaXRvci5jYW5jZWxGb3JtYXRCcnVzaFN0YXR1cyhlZGl0b3IpO1xuICAgIH0sXG4gICAgaXNBY3RpdmUoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgY29uc3QgcmVzID0gY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMuaXNBY3RpdmU7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfSxcbiAgICBlbmFibGVGb3JtYXRCcnVzaChlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBpZiAoY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiBQYWludEZvcm1hdEVkaXRvci5jYW5jZWxGb3JtYXRCcnVzaFN0YXR1cyhlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHRTZXJ2aWNlLnBhaW50Rm9ybWF0U3RhdHVzID0ge1xuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgICBtYXJrczogVGhlUXVlcmllcy5nZXRTZWxlY3Rpb25NYXJrcyhlZGl0b3IpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBFRElUT1JfVE9fRUxFTUVOVC5nZXQoZWRpdG9yKTtcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwb2ludGVyLXBhaW50Jyk7XG4gICAgICAgIGNvbnRleHRTZXJ2aWNlLm9uTW91c2VVcCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBlbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KSksXG4gICAgICAgICAgICAgICAgdGFrZSgxKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya3M6IHsgW2tleSBpbiBNYXJrVHlwZXNdPzogYW55IH0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgTWFya1Byb3BzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrc1trZXldID0gY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMubWFya3Nba2V5XSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChUYWJsZUVkaXRvci5mb3JtYXRCcnVzaChlZGl0b3IsIG1hcmtzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgUGFpbnRGb3JtYXRFZGl0b3IuY2FuY2VsRm9ybWF0QnJ1c2hTdGF0dXMoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBQYWludEZvcm1hdEVkaXRvci5mb3JtYXRCcnVzaChlZGl0b3IsIG1hcmtzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZWRpdG9yLm9uQ2hhbmdlKCk7XG4gICAgfSxcbiAgICBjYW5jZWxGb3JtYXRCcnVzaFN0YXR1cyhlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cyA9IHtcbiAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1hcmtzOiB7fVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gRURJVE9SX1RPX0VMRU1FTlQuZ2V0KGVkaXRvcik7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncG9pbnRlci1wYWludCcpO1xuICAgICAgICBlZGl0b3Iub25DaGFuZ2UoKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUGFpbnRGb3JtYXRQbHVnaW4gPSAobG9jYWxlOiBTaWduYWw8VGhlSTE4blRyYW5zbGF0aW9uPikgPT5cbiAgICBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICAgICAga2V5OiBQbHVnaW5LZXlzLnBhaW50Rm9ybWF0LFxuICAgICAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy51bmRvLFxuICAgICAgICAgICAgICAgIGljb246ICd1bmRvJyxcbiAgICAgICAgICAgICAgICBuYW1lOiBsb2NhbGUoKS51bmRvLFxuICAgICAgICAgICAgICAgIHNob3J0Y3V0S2V5OiBgJHtDT05UUk9MX0tFWX0rWmAsXG4gICAgICAgICAgICAgICAgZXhlY3V0ZTogKGVkaXRvcjogVGhlRWRpdG9yKSA9PiBlZGl0b3IudW5kbygpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLnJlZG8sXG4gICAgICAgICAgICAgICAgaWNvbjogJ3JlZG8nLFxuICAgICAgICAgICAgICAgIG5hbWU6IGxvY2FsZSgpLnJlZG8sXG4gICAgICAgICAgICAgICAgc2hvcnRjdXRLZXk6IGAke0NPTlRST0xfS0VZfStTaGlmdCtaYCxcbiAgICAgICAgICAgICAgICBleGVjdXRlOiAoZWRpdG9yOiBUaGVFZGl0b3IpID0+IGVkaXRvci5yZWRvKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBUb29sYmFyQWN0aW9uVHlwZXMucGFpbnRmb3JtYXQsXG4gICAgICAgICAgICAgICAgaWNvbjogJ3BhaW50Zm9ybWF0JyxcbiAgICAgICAgICAgICAgICBuYW1lOiBsb2NhbGUoKS5wYWludEZvcm1hdCxcbiAgICAgICAgICAgICAgICBleGVjdXRlOiBQYWludEZvcm1hdEVkaXRvci5lbmFibGVGb3JtYXRCcnVzaCxcbiAgICAgICAgICAgICAgICBhY3RpdmU6IFBhaW50Rm9ybWF0RWRpdG9yLmlzQWN0aXZlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLmNsZWFuLFxuICAgICAgICAgICAgICAgIGljb246ICdjbGVhbicsXG4gICAgICAgICAgICAgICAgbmFtZTogbG9jYWxlKCkuY2xlYW5Gb3JtYXQsXG4gICAgICAgICAgICAgICAgZXhlY3V0ZTogKGVkaXRvcjogVGhlRWRpdG9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoVGFibGVFZGl0b3IuY2xlYXJNYXJrKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXJrcyA9IEVkaXRvci5tYXJrcyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobWFya3MpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdG9yLnJlbW92ZU1hcmsoZWRpdG9yLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zZXRNYXJrczogeyBba2V5IGluIE1hcmtUeXBlc10/OiBudWxsIHwgc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hcmtQcm9wcy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRNYXJrc1trZXldID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIHVuc2V0TWFya3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfSkoKTtcbiJdfQ==
@@ -1,20 +0,0 @@
1
- export * from './align/align.editor';
2
- export * from './blockquote/blockquote.editor';
3
- export * from './code/code.editor';
4
- export * from './color/color.editor';
5
- export * from './heading/heading.editor';
6
- export * from './hr/hr.editor';
7
- export * from './image/image.editor';
8
- export * from './indent/indent.editor';
9
- export * from './link/link.editor';
10
- export * from './list/list.editor';
11
- export * from './mark/mark.editor';
12
- export * from './mention/index';
13
- export * from './quick-insert/quick-insert.editor';
14
- export * from './table/table.editor';
15
- export * from './table/utils';
16
- export * from './todo-item/todo-item.editor';
17
- export * from './vertical-align/vertical-align.editor';
18
- export * from './inline-code/inline-code.editor';
19
- export * from './quick-insert/components/quick-insert.component';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FsaWduL2FsaWduLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Jsb2NrcXVvdGUvYmxvY2txdW90ZS5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb2RlL2NvZGUuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29sb3IvY29sb3IuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGluZy9oZWFkaW5nLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2hyL2hyLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlL2ltYWdlLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2luZGVudC9pbmRlbnQuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGluay9saW5rLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QvbGlzdC5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9tYXJrL21hcmsuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWVudGlvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUvdGFibGUuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUvdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2RvLWl0ZW0vdG9kby1pdGVtLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3ZlcnRpY2FsLWFsaWduL3ZlcnRpY2FsLWFsaWduLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2lubGluZS1jb2RlL2lubGluZS1jb2RlLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQnO1xuIl19
@@ -1,126 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, Renderer2, ViewChild, inject } from '@angular/core';
2
- import { ThyIcon } from 'ngx-tethys/icon';
3
- import { Node } from 'slate';
4
- import { AngularEditor } from 'slate-angular';
5
- import { MarkTypes } from '../../../constants/node-types';
6
- import * as TheQueries from '../../../queries';
7
- import { isCleanEmptyParagraph } from '../../../utils/is-clean-empty-paragraph';
8
- import { QuickInsertEditor } from '../quick-insert.editor';
9
- import * as i0 from "@angular/core";
10
- export class TheQuickInsert {
11
- constructor() {
12
- this.className = 'the-quick-insert';
13
- this.isVisible = false;
14
- this.defaultIconName = 'plus-circle-thin';
15
- this.iconNameFill = 'plus-circle-thin-fill';
16
- this.displayIconName = this.defaultIconName;
17
- this.cdr = inject(ChangeDetectorRef);
18
- this.renderer = inject(Renderer2);
19
- this.elementRef = inject((ElementRef));
20
- }
21
- handleMousedownNativeElement(event) {
22
- event.preventDefault();
23
- event.stopPropagation();
24
- }
25
- ngOnInit() {
26
- const { onChange } = this.editor;
27
- this.editor.onChange = () => {
28
- onChange();
29
- if (this.editor && this.editor.options && !this.editor.options.readonly) {
30
- // wait isOpenedMenu is updated
31
- setTimeout(() => {
32
- this.updateIconDisplay();
33
- }, 0);
34
- }
35
- };
36
- this.updateIconDisplay();
37
- }
38
- ngOnChanges(changes) {
39
- if (changes.isVisible && !changes.isVisible.firstChange) {
40
- this.updateIconDisplay();
41
- }
42
- }
43
- updateIconDisplay() {
44
- const { editor } = this;
45
- if (this.isVisible &&
46
- !QuickInsertEditor.isOpenedMenu(editor) &&
47
- isCleanEmptyParagraph(editor) &&
48
- !this.hasExcludeAttribute() &&
49
- !this.isRichMediaScope()) {
50
- const block = Node.ancestor(editor, [editor?.selection?.anchor.path[0]]);
51
- const rootNode = AngularEditor.toDOMNode(editor, block);
52
- this.updatePosition(rootNode.offsetLeft, rootNode.offsetTop);
53
- return;
54
- }
55
- this.addHiddenClass();
56
- }
57
- addHiddenClass() {
58
- this.elementRef.nativeElement.classList.add('d-none');
59
- }
60
- removeHiddenClass() {
61
- this.elementRef.nativeElement.classList.remove('d-none');
62
- }
63
- isRichMediaScope() {
64
- const { editor } = this;
65
- if (editor?.selection) {
66
- const block = Node.ancestor(editor, [editor?.selection?.anchor.path[0]]);
67
- const rootElement = AngularEditor.toDOMNode(editor, block);
68
- const leafElement = rootElement.querySelector('[data-slate-leaf="true"]');
69
- const rootElementRect = rootElement.getBoundingClientRect();
70
- const leafElementRect = leafElement.getBoundingClientRect();
71
- return leafElementRect?.x !== rootElementRect?.x;
72
- }
73
- return false;
74
- }
75
- hasExcludeAttribute() {
76
- const marks = TheQueries.getSelectionMarks(this.editor);
77
- const fontSizeMark = marks[MarkTypes.fontSize];
78
- return fontSizeMark;
79
- }
80
- updatePosition(left, top) {
81
- this.renderer.setStyle(this.elementRef.nativeElement, 'top', `${top}px`);
82
- this.renderer.setStyle(this.elementRef.nativeElement, 'left', `${left}px`);
83
- this.removeHiddenClass();
84
- }
85
- mouseEnter(event) {
86
- this.displayIconName = this.iconNameFill;
87
- this.cdr.detectChanges();
88
- }
89
- mouseLeave(event) {
90
- this.displayIconName = this.defaultIconName;
91
- this.cdr.detectChanges();
92
- }
93
- handleClick(event) {
94
- event.stopPropagation();
95
- event.preventDefault();
96
- // avoid popover is closed immediately
97
- setTimeout(() => {
98
- QuickInsertEditor.openMenu(this.editor)
99
- .afterClosed()
100
- .subscribe(() => {
101
- this.updateIconDisplay();
102
- });
103
- this.updateIconDisplay();
104
- }, 100);
105
- }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheQuickInsert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheQuickInsert, isStandalone: true, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n class=\"quick-insert-icon text-desc font-size-xlg\"\n [thyIconName]=\"displayIconName\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mouseup)=\"handleClick($event)\"\n></thy-icon>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
108
- }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheQuickInsert, decorators: [{
110
- type: Component,
111
- args: [{ selector: '[theQuickInsert]', standalone: true, imports: [ThyIcon], changeDetection: ChangeDetectionStrategy.OnPush, template: "<thy-icon\n #iconElement\n class=\"quick-insert-icon text-desc font-size-xlg\"\n [thyIconName]=\"displayIconName\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mouseup)=\"handleClick($event)\"\n></thy-icon>\n" }]
112
- }], propDecorators: { className: [{
113
- type: HostBinding,
114
- args: ['class']
115
- }], editor: [{
116
- type: Input
117
- }], isVisible: [{
118
- type: Input
119
- }], iconElement: [{
120
- type: ViewChild,
121
- args: ['iconElement', { read: ElementRef, static: false }]
122
- }], handleMousedownNativeElement: [{
123
- type: HostListener,
124
- args: ['mousedown', ['$event']]
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxTQUFTLEVBRVQsU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFVLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVMzRCxNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVEwQixjQUFTLEdBQUcsa0JBQWtCLENBQUM7UUFJNUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQixvQkFBZSxHQUFHLGtCQUFrQixDQUFDO1FBRXJDLGlCQUFZLEdBQUcsdUJBQXVCLENBQUM7UUFFdkMsb0JBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBVy9CLFFB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QUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsc0NBQXNDO1FBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDbEMsV0FBVyxFQUFFO2lCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDOytHQXZIUSxjQUFjO21HQUFkLGNBQWMsa1ZBYVcsVUFBVSxrREMzQ2hELDBQQVFBLDRDRG1CYyxPQUFPOzs0RkFHUixjQUFjO2tCQVAxQixTQUFTOytCQUNJLGtCQUFrQixjQUVoQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMsbUJBQ0QsdUJBQXVCLENBQUMsTUFBTTs4QkFHekIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUVYLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNOLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTdELDRCQUE0QjtzQkFEM0IsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IE1hcmtUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBpc0NsZWFuRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi8uLi91dGlscy9pcy1jbGVhbi1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgUXVpY2tJbnNlcnRFZGl0b3IgfSBmcm9tICcuLi9xdWljay1pbnNlcnQuZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbdGhlUXVpY2tJbnNlcnRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVpY2staW5zZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlJY29uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaGVRdWlja0luc2VydCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gJ3RoZS1xdWljay1pbnNlcnQnO1xuXG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgICBASW5wdXQoKSBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGRlZmF1bHRJY29uTmFtZSA9ICdwbHVzLWNpcmNsZS10aGluJztcblxuICAgIGljb25OYW1lRmlsbCA9ICdwbHVzLWNpcmNsZS10aGluLWZpbGwnO1xuXG4gICAgZGlzcGxheUljb25OYW1lID0gdGhpcy5kZWZhdWx0SWNvbk5hbWU7XG5cbiAgICBAVmlld0NoaWxkKCdpY29uRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICAgIGljb25FbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZU1vdXNlZG93bk5hdGl2ZUVsZW1lbnQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMuZWRpdG9yO1xuICAgICAgICB0aGlzLmVkaXRvci5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLmVkaXRvci5vcHRpb25zICYmICF0aGlzLmVkaXRvci5vcHRpb25zLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgLy8gd2FpdCBpc09wZW5lZE1lbnUgaXMgdXBkYXRlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EaXNwbGF5KCk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzVmlzaWJsZSAmJiAhY2hhbmdlcy5pc1Zpc2libGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVJY29uRGlzcGxheSgpIHtcbiAgICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHRoaXM7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlICYmXG4gICAgICAgICAgICAhUXVpY2tJbnNlcnRFZGl0b3IuaXNPcGVuZWRNZW51KGVkaXRvcikgJiZcbiAgICAgICAgICAgIGlzQ2xlYW5FbXB0eVBhcmFncmFwaChlZGl0b3IpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNFeGNsdWRlQXR0cmlidXRlKCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUmljaE1lZGlhU2NvcGUoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3I/LnNlbGVjdGlvbj8uYW5jaG9yLnBhdGhbMF1dKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3ROb2RlOiBIVE1MRWxlbWVudCA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKGVkaXRvciwgYmxvY2spO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbihyb290Tm9kZS5vZmZzZXRMZWZ0LCByb290Tm9kZS5vZmZzZXRUb3ApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkSGlkZGVuQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEhpZGRlbkNsYXNzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkLW5vbmUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUhpZGRlbkNsYXNzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdkLW5vbmUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUmljaE1lZGlhU2NvcGUoKSB7XG4gICAgICAgIGNvbnN0IHsgZWRpdG9yIH0gPSB0aGlzO1xuICAgICAgICBpZiAoZWRpdG9yPy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3I/LnNlbGVjdGlvbj8uYW5jaG9yLnBhdGhbMF1dKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICBjb25zdCBsZWFmRWxlbWVudCA9IHJvb3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNsYXRlLWxlYWY9XCJ0cnVlXCJdJyk7XG4gICAgICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGxlYWZFbGVtZW50UmVjdCA9IGxlYWZFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgcmV0dXJuIGxlYWZFbGVtZW50UmVjdD8ueCAhPT0gcm9vdEVsZW1lbnRSZWN0Py54O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0V4Y2x1ZGVBdHRyaWJ1dGUoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtzID0gVGhlUXVlcmllcy5nZXRTZWxlY3Rpb25NYXJrcyh0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplTWFyazogbnVtYmVyID0gbWFya3NbTWFya1R5cGVzLmZvbnRTaXplXTtcbiAgICAgICAgcmV0dXJuIGZvbnRTaXplTWFyaztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKGxlZnQ6IG51bWJlciwgdG9wPzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtsZWZ0fXB4YCk7XG4gICAgICAgIHRoaXMucmVtb3ZlSGlkZGVuQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBtb3VzZUVudGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUljb25OYW1lID0gdGhpcy5pY29uTmFtZUZpbGw7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBtb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUljb25OYW1lID0gdGhpcy5kZWZhdWx0SWNvbk5hbWU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gYXZvaWQgcG9wb3ZlciBpcyBjbG9zZWQgaW1tZWRpYXRlbHlcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci5vcGVuTWVudSh0aGlzLmVkaXRvcilcbiAgICAgICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EaXNwbGF5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EaXNwbGF5KCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxufVxuIiwiPHRoeS1pY29uXG4gICNpY29uRWxlbWVudFxuICBjbGFzcz1cInF1aWNrLWluc2VydC1pY29uIHRleHQtZGVzYyBmb250LXNpemUteGxnXCJcbiAgW3RoeUljb25OYW1lXT1cImRpc3BsYXlJY29uTmFtZVwiXG4gIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXIoJGV2ZW50KVwiXG4gIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoJGV2ZW50KVwiXG4gIChtb3VzZXVwKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuPjwvdGh5LWljb24+XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './components/quick-insert.component';
2
- export * from './quick-insert.plugin';
3
- export * from './quick-insert.editor';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcXVpY2staW5zZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWluc2VydC5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWljay1pbnNlcnQuZWRpdG9yJztcbiJdfQ==
@@ -1,70 +0,0 @@
1
- import { Overlay } from '@angular/cdk/overlay';
2
- import { ViewContainerRef } from '@angular/core';
3
- import { ThyPopover } from 'ngx-tethys/popover';
4
- import { AngularEditor } from 'slate-angular';
5
- import { ThePluginMenuComponent } from '../../components/plugin-menu/plugin-menu.component';
6
- import { buildQuickInsertMenus } from '../../core';
7
- import { getBlockAbove } from '../../queries/get-block-above';
8
- import { THE_PLUGIN_MENU_REF } from '../../utils/weak-maps';
9
- export const QuickInsertEditor = {
10
- openMenu(editor) {
11
- if (QuickInsertEditor.isOpenedMenu(editor)) {
12
- return;
13
- }
14
- const [block] = getBlockAbove(editor);
15
- const rootNode = AngularEditor.toDOMNode(editor, block);
16
- const origin = rootNode.querySelector('[data-slate-leaf="true"]');
17
- const overlay = editor.injector.get(Overlay);
18
- const viewContainerRef = editor.injector.get(ViewContainerRef);
19
- const thyPopover = editor.injector.get(ThyPopover);
20
- const pluginMenus = buildQuickInsertMenus(editor, editor?.options?.menu);
21
- const pluginMenuRef = thyPopover.open(ThePluginMenuComponent, {
22
- initialState: {
23
- editor,
24
- thePluginMenu: pluginMenus
25
- },
26
- origin,
27
- viewContainerRef: viewContainerRef,
28
- backdropClosable: true,
29
- placement: 'bottomLeft',
30
- offset: 4,
31
- hasBackdrop: false,
32
- outsideClosable: true,
33
- manualClosure: true,
34
- minWidth: 0,
35
- scrollStrategy: overlay.scrollStrategies.reposition()
36
- });
37
- QuickInsertEditor.updatePluginMenuRef(editor, pluginMenuRef);
38
- pluginMenuRef.afterClosed().subscribe(() => {
39
- QuickInsertEditor.updatePluginMenuRef(editor, null);
40
- });
41
- pluginMenuRef.componentInstance.cdr.markForCheck();
42
- return pluginMenuRef;
43
- },
44
- updateKeywords(editor, keywords) {
45
- const pluginMenuRef = THE_PLUGIN_MENU_REF.get(editor);
46
- if (pluginMenuRef) {
47
- pluginMenuRef.componentInstance?.updateKeywords(keywords);
48
- }
49
- },
50
- updatePluginMenuRef(editor, pluginMenuRef) {
51
- if (pluginMenuRef) {
52
- THE_PLUGIN_MENU_REF.set(editor, pluginMenuRef);
53
- }
54
- else {
55
- THE_PLUGIN_MENU_REF.set(editor, null);
56
- }
57
- },
58
- closeMenu(editor) {
59
- const pluginMenuRef = THE_PLUGIN_MENU_REF.get(editor);
60
- if (pluginMenuRef) {
61
- pluginMenuRef.close();
62
- QuickInsertEditor.updatePluginMenuRef(editor, null);
63
- }
64
- },
65
- isOpenedMenu(editor) {
66
- const pluginMenuRef = THE_PLUGIN_MENU_REF.get(editor);
67
- return !!pluginMenuRef;
68
- }
69
- };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsUUFBUSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBZ0IsQ0FBQztRQUNqRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFekUsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMxRCxZQUFZLEVBQUU7Z0JBQ1YsTUFBTTtnQkFDTixhQUFhLEVBQUUsV0FBVzthQUM3QjtZQUNELE1BQU07WUFDTixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixTQUFTLEVBQUUsWUFBWTtZQUN2QixNQUFNLEVBQUUsQ0FBQztZQUNULFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxDQUFDO1lBQ1gsY0FBYyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7U0FDeEQsQ0FBQyxDQUFDO1FBQ0gsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdELGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUNELGNBQWMsQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDM0MsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsYUFBYSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0wsQ0FBQztJQUNELG1CQUFtQixDQUFDLE1BQWMsRUFBRSxhQUF3QztRQUN4RSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDSixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLE1BQWM7UUFDcEIsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDM0IsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciwgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVQbHVnaW5NZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9wbHVnaW4tbWVudS9wbHVnaW4tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgYnVpbGRRdWlja0luc2VydE1lbnVzIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBnZXRCbG9ja0Fib3ZlIH0gZnJvbSAnLi4vLi4vcXVlcmllcy9nZXQtYmxvY2stYWJvdmUnO1xuaW1wb3J0IHsgVEhFX1BMVUdJTl9NRU5VX1JFRiB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYWstbWFwcyc7XG5cbmV4cG9ydCBjb25zdCBRdWlja0luc2VydEVkaXRvciA9IHtcbiAgICBvcGVuTWVudShlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICBpZiAoUXVpY2tJbnNlcnRFZGl0b3IuaXNPcGVuZWRNZW51KGVkaXRvcikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbYmxvY2tdID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IpO1xuICAgICAgICBjb25zdCByb290Tm9kZSA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKGVkaXRvciwgYmxvY2spO1xuICAgICAgICBjb25zdCBvcmlnaW4gPSByb290Tm9kZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1zbGF0ZS1sZWFmPVwidHJ1ZVwiXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBvdmVybGF5ID0gZWRpdG9yLmluamVjdG9yLmdldChPdmVybGF5KTtcbiAgICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGVkaXRvci5pbmplY3Rvci5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIGNvbnN0IHRoeVBvcG92ZXIgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoeVBvcG92ZXIpO1xuICAgICAgICBjb25zdCBwbHVnaW5NZW51cyA9IGJ1aWxkUXVpY2tJbnNlcnRNZW51cyhlZGl0b3IsIGVkaXRvcj8ub3B0aW9ucz8ubWVudSk7XG5cbiAgICAgICAgY29uc3QgcGx1Z2luTWVudVJlZiA9IHRoeVBvcG92ZXIub3BlbihUaGVQbHVnaW5NZW51Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgdGhlUGx1Z2luTWVudTogcGx1Z2luTWVudXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcmlnaW4sXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgYmFja2Ryb3BDbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbUxlZnQnLFxuICAgICAgICAgICAgb2Zmc2V0OiA0LFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgb3V0c2lkZUNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgIG1pbldpZHRoOiAwLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgfSk7XG4gICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLnVwZGF0ZVBsdWdpbk1lbnVSZWYoZWRpdG9yLCBwbHVnaW5NZW51UmVmKTtcbiAgICAgICAgcGx1Z2luTWVudVJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci51cGRhdGVQbHVnaW5NZW51UmVmKGVkaXRvciwgbnVsbCk7XG4gICAgICAgIH0pO1xuICAgICAgICBwbHVnaW5NZW51UmVmLmNvbXBvbmVudEluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgcmV0dXJuIHBsdWdpbk1lbnVSZWY7XG4gICAgfSxcbiAgICB1cGRhdGVLZXl3b3JkcyhlZGl0b3I6IEVkaXRvciwga2V5d29yZHM6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwbHVnaW5NZW51UmVmID0gVEhFX1BMVUdJTl9NRU5VX1JFRi5nZXQoZWRpdG9yKTtcbiAgICAgICAgaWYgKHBsdWdpbk1lbnVSZWYpIHtcbiAgICAgICAgICAgIHBsdWdpbk1lbnVSZWYuY29tcG9uZW50SW5zdGFuY2U/LnVwZGF0ZUtleXdvcmRzKGtleXdvcmRzKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdXBkYXRlUGx1Z2luTWVudVJlZihlZGl0b3I6IEVkaXRvciwgcGx1Z2luTWVudVJlZjogVGh5UG9wb3ZlclJlZjxhbnk+IHwgbnVsbCkge1xuICAgICAgICBpZiAocGx1Z2luTWVudVJlZikge1xuICAgICAgICAgICAgVEhFX1BMVUdJTl9NRU5VX1JFRi5zZXQoZWRpdG9yLCBwbHVnaW5NZW51UmVmKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRIRV9QTFVHSU5fTUVOVV9SRUYuc2V0KGVkaXRvciwgbnVsbCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNsb3NlTWVudShlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICBjb25zdCBwbHVnaW5NZW51UmVmID0gVEhFX1BMVUdJTl9NRU5VX1JFRi5nZXQoZWRpdG9yKTtcbiAgICAgICAgaWYgKHBsdWdpbk1lbnVSZWYpIHtcbiAgICAgICAgICAgIHBsdWdpbk1lbnVSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLnVwZGF0ZVBsdWdpbk1lbnVSZWYoZWRpdG9yLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXNPcGVuZWRNZW51KGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBsdWdpbk1lbnVSZWYgPSBUSEVfUExVR0lOX01FTlVfUkVGLmdldChlZGl0b3IpO1xuICAgICAgICByZXR1cm4gISFwbHVnaW5NZW51UmVmO1xuICAgIH1cbn07XG4iXX0=
@@ -1,109 +0,0 @@
1
- import { Node, Range } from 'slate';
2
- import { hotkeys } from 'slate-angular';
3
- import { ElementKinds, QUICK_INSERT_HOTKEY } from '../../constants';
4
- import { createPluginFactory, getPluginOptions } from '../../core';
5
- import { PluginKeys } from '../../interfaces';
6
- import { getBlockAbove } from '../../queries/get-block-above';
7
- import { isPureEmptyParagraph } from '../../utils';
8
- import { isMobileMode } from '../../utils/get-mode';
9
- import { QuickInsertEditor } from './quick-insert.editor';
10
- export const withQuickInsert = (editor) => {
11
- const { onKeydown, onChange, insertText, insertBreak, deleteBackward } = editor;
12
- let openMenuFromHotkey = false;
13
- editor.onKeydown = (event) => {
14
- const isOpenMenu = QuickInsertEditor.isOpenedMenu(editor);
15
- const isMoveUp = hotkeys.isMoveUp(event);
16
- const isMoveDown = hotkeys.isMoveDown(event);
17
- const isMoveForward = hotkeys.isMoveForward(event);
18
- const isMoveBackward = hotkeys.isMoveBackward(event);
19
- // 阻止方向键默认行为
20
- if (isOpenMenu && (isMoveUp || isMoveDown || isMoveForward || isMoveBackward)) {
21
- event.preventDefault();
22
- return;
23
- }
24
- onKeydown(event);
25
- };
26
- editor.insertText = (text) => {
27
- const options = getPluginOptions(editor, PluginKeys.quickInsert);
28
- const [block] = getBlockAbove(editor);
29
- const { hotkey, allowHotkeyInTypes } = options;
30
- // 基于插入内容对比,避免 keydown 判断时无法区分中文「、」和英文「/」热键
31
- if (text === hotkey) {
32
- if (!isMobileMode(editor)) {
33
- const types = [...(allowHotkeyInTypes || [])];
34
- if (isPureEmptyParagraph(editor, block) && allowOpenInsertMenu(editor, types)) {
35
- setTimeout(() => {
36
- openMenuFromHotkey = true;
37
- QuickInsertEditor.openMenu(editor);
38
- }, 0);
39
- }
40
- }
41
- }
42
- insertText(text);
43
- };
44
- editor.onChange = () => {
45
- onChange();
46
- if (editor.selection) {
47
- const [block] = getBlockAbove(editor);
48
- const isOpenMenu = QuickInsertEditor.isOpenedMenu(editor);
49
- if (openMenuFromHotkey && !isOpenMenu) {
50
- openMenuFromHotkey = false;
51
- }
52
- if (isOpenMenu) {
53
- if (!Range.isCollapsed(editor.selection)) {
54
- QuickInsertEditor.closeMenu(editor);
55
- return;
56
- }
57
- // 更新搜索
58
- const options = getPluginOptions(editor, PluginKeys.quickInsert);
59
- const { hotkey } = options;
60
- const keywords = Node.string(block);
61
- const filterKeywords = openMenuFromHotkey && keywords.startsWith(hotkey) ? keywords.substring(1) : keywords;
62
- QuickInsertEditor.updateKeywords(editor, filterKeywords);
63
- }
64
- }
65
- };
66
- // 拦截行为处理菜单的关闭(避免协同编辑出现异常)
67
- editor.deleteBackward = unit => {
68
- const isOpenMenu = QuickInsertEditor.isOpenedMenu(editor);
69
- if (isOpenMenu) {
70
- const [block] = getBlockAbove(editor);
71
- const options = getPluginOptions(editor, PluginKeys.quickInsert);
72
- const { hotkey } = options;
73
- if (isPureEmptyParagraph(editor, block)) {
74
- QuickInsertEditor.closeMenu(editor);
75
- }
76
- else if (openMenuFromHotkey && Node.string(block) === hotkey) {
77
- QuickInsertEditor.closeMenu(editor);
78
- }
79
- }
80
- deleteBackward(unit);
81
- };
82
- // 拦截行为处理菜单的关闭(避免协同编辑出现异常)
83
- editor.insertBreak = () => {
84
- const isOpenMenu = QuickInsertEditor.isOpenedMenu(editor);
85
- if (isOpenMenu) {
86
- QuickInsertEditor.closeMenu(editor);
87
- }
88
- insertBreak();
89
- };
90
- return editor;
91
- };
92
- export const createQuickInsertPlugin = createPluginFactory({
93
- key: PluginKeys.quickInsert,
94
- withOverrides: withQuickInsert,
95
- options: {
96
- hotkey: QUICK_INSERT_HOTKEY,
97
- allowHotkeyInTypes: [ElementKinds.tableCell, ElementKinds.blockquote],
98
- disabledPlus: true
99
- }
100
- });
101
- export const allowOpenInsertMenu = (editor, allowTypes) => {
102
- const [, path] = getBlockAbove(editor);
103
- const parentNode = Node.parent(editor, path);
104
- if (path.length === 1 || (parentNode && allowTypes.includes(parentNode.type))) {
105
- return true;
106
- }
107
- return false;
108
- };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRMUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQzlELE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hGLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBRS9CLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7UUFDeEMsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMs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O0lBQ2xCLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUEyQjtJQUNqRixHQUFHLEVBQUUsVUFBVSxDQUFDLFdBQVc7SUFDM0IsYUFBYSxFQUFFLGVBQWU7SUFDOUIsT0FBTyxFQUFFO1FBQ0wsTUFBTSxFQUFFLG1CQUFtQjtRQUMzQixrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUNyRSxZQUFZLEVBQUUsSUFBSTtLQUNyQjtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBYyxFQUFFLFVBQTBCLEVBQUUsRUFBRTtJQUM5RSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTm9kZSwgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBob3RrZXlzIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMsIFFVSUNLX0lOU0VSVF9IT1RLRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEJsb2NrQWJvdmUgfSBmcm9tICcuLi8uLi9xdWVyaWVzL2dldC1ibG9jay1hYm92ZSc7XG5pbXBvcnQgeyBpc1B1cmVFbXB0eVBhcmFncmFwaCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGlzTW9iaWxlTW9kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1tb2RlJztcbmltcG9ydCB7IFF1aWNrSW5zZXJ0RWRpdG9yIH0gZnJvbSAnLi9xdWljay1pbnNlcnQuZWRpdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBRdWlja0luc2VydFBsdWdpbk9wdGlvbnMge1xuICAgIGhvdGtleT86IHN0cmluZztcbiAgICBkaXNhYmxlZFBsdXM/OiBib29sZWFuO1xuICAgIGFsbG93SG90a2V5SW5UeXBlcz86IEN1c3RvbUVsZW1lbnRLaW5kc1tdO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aFF1aWNrSW5zZXJ0ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgb25LZXlkb3duLCBvbkNoYW5nZSwgaW5zZXJ0VGV4dCwgaW5zZXJ0QnJlYWssIGRlbGV0ZUJhY2t3YXJkIH0gPSBlZGl0b3I7XG4gICAgbGV0IG9wZW5NZW51RnJvbUhvdGtleSA9IGZhbHNlO1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBpc09wZW5NZW51ID0gUXVpY2tJbnNlcnRFZGl0b3IuaXNPcGVuZWRNZW51KGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGlzTW92ZVVwID0gaG90a2V5cy5pc01vdmVVcChldmVudCk7XG4gICAgICAgIGNvbnN0IGlzTW92ZURvd24gPSBob3RrZXlzLmlzTW92ZURvd24oZXZlbnQpO1xuICAgICAgICBjb25zdCBpc01vdmVGb3J3YXJkID0gaG90a2V5cy5pc01vdmVGb3J3YXJkKGV2ZW50KTtcbiAgICAgICAgY29uc3QgaXNNb3ZlQmFja3dhcmQgPSBob3RrZXlzLmlzTW92ZUJhY2t3YXJkKGV2ZW50KTtcblxuICAgICAgICAvLyDpmLvmraLmlrnlkJHplK7pu5jorqTooYzkuLpcbiAgICAgICAgaWYgKGlzT3Blbk1lbnUgJiYgKGlzTW92ZVVwIHx8IGlzTW92ZURvd24gfHwgaXNNb3ZlRm9yd2FyZCB8fCBpc01vdmVCYWNrd2FyZCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0VGV4dCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGdldFBsdWdpbk9wdGlvbnM8UXVpY2tJbnNlcnRQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMucXVpY2tJbnNlcnQpO1xuICAgICAgICBjb25zdCBbYmxvY2tdID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IpO1xuICAgICAgICBjb25zdCB7IGhvdGtleSwgYWxsb3dIb3RrZXlJblR5cGVzIH0gPSBvcHRpb25zO1xuICAgICAgICAvLyDln7rkuo7mj5LlhaXlhoXlrrnlr7nmr5TvvIzpgb/lhY0ga2V5ZG93biDliKTmlq3ml7bml6Dms5XljLrliIbkuK3mlofjgIzjgIHjgI3lkozoi7HmlofjgIwv44CN54Ot6ZSuXG4gICAgICAgIGlmICh0ZXh0ID09PSBob3RrZXkpIHtcbiAgICAgICAgICAgIGlmICghaXNNb2JpbGVNb2RlKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlcyA9IFsuLi4oYWxsb3dIb3RrZXlJblR5cGVzIHx8IFtdKV07XG4gICAgICAgICAgICAgICAgaWYgKGlzUHVyZUVtcHR5UGFyYWdyYXBoKGVkaXRvciwgYmxvY2spICYmIGFsbG93T3Blbkluc2VydE1lbnUoZWRpdG9yLCB0eXBlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuTWVudUZyb21Ib3RrZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgUXVpY2tJbnNlcnRFZGl0b3Iub3Blbk1lbnUoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluc2VydFRleHQodGV4dCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UoKTtcblxuICAgICAgICBpZiAoZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgW2Jsb2NrXSA9IGdldEJsb2NrQWJvdmUoZWRpdG9yKTtcbiAgICAgICAgICAgIGNvbnN0IGlzT3Blbk1lbnUgPSBRdWlja0luc2VydEVkaXRvci5pc09wZW5lZE1lbnUoZWRpdG9yKTtcbiAgICAgICAgICAgIGlmIChvcGVuTWVudUZyb21Ib3RrZXkgJiYgIWlzT3Blbk1lbnUpIHtcbiAgICAgICAgICAgICAgICBvcGVuTWVudUZyb21Ib3RrZXkgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09wZW5NZW51KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci5jbG9zZU1lbnUoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIOabtOaWsOaQnOe0olxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPFF1aWNrSW5zZXJ0UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLnF1aWNrSW5zZXJ0KTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGhvdGtleSB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBrZXl3b3JkcyA9IE5vZGUuc3RyaW5nKGJsb2NrKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJLZXl3b3JkcyA9IG9wZW5NZW51RnJvbUhvdGtleSAmJiBrZXl3b3Jkcy5zdGFydHNXaXRoKGhvdGtleSkgPyBrZXl3b3Jkcy5zdWJzdHJpbmcoMSkgOiBrZXl3b3JkcztcbiAgICAgICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci51cGRhdGVLZXl3b3JkcyhlZGl0b3IsIGZpbHRlcktleXdvcmRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyDmi6bmiKrooYzkuLrlpITnkIboj5zljZXnmoTlhbPpl63vvIjpgb/lhY3ljY/lkIznvJbovpHlh7rnjrDlvILluLjvvIlcbiAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3QgaXNPcGVuTWVudSA9IFF1aWNrSW5zZXJ0RWRpdG9yLmlzT3BlbmVkTWVudShlZGl0b3IpO1xuICAgICAgICBpZiAoaXNPcGVuTWVudSkge1xuICAgICAgICAgICAgY29uc3QgW2Jsb2NrXSA9IGdldEJsb2NrQWJvdmUoZWRpdG9yKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPFF1aWNrSW5zZXJ0UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLnF1aWNrSW5zZXJ0KTtcbiAgICAgICAgICAgIGNvbnN0IHsgaG90a2V5IH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgaWYgKGlzUHVyZUVtcHR5UGFyYWdyYXBoKGVkaXRvciwgYmxvY2spKSB7XG4gICAgICAgICAgICAgICAgUXVpY2tJbnNlcnRFZGl0b3IuY2xvc2VNZW51KGVkaXRvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wZW5NZW51RnJvbUhvdGtleSAmJiBOb2RlLnN0cmluZyhibG9jaykgPT09IGhvdGtleSkge1xuICAgICAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLmNsb3NlTWVudShlZGl0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICAvLyDmi6bmiKrooYzkuLrlpITnkIboj5zljZXnmoTlhbPpl63vvIjpgb/lhY3ljY/lkIznvJbovpHlh7rnjrDlvILluLjvvIlcbiAgICBlZGl0b3IuaW5zZXJ0QnJlYWsgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzT3Blbk1lbnUgPSBRdWlja0luc2VydEVkaXRvci5pc09wZW5lZE1lbnUoZWRpdG9yKTtcbiAgICAgICAgaWYgKGlzT3Blbk1lbnUpIHtcbiAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLmNsb3NlTWVudShlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgfTtcblxuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVpY2tJbnNlcnRQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5PFF1aWNrSW5zZXJ0UGx1Z2luT3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5xdWlja0luc2VydCxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoUXVpY2tJbnNlcnQsXG4gICAgb3B0aW9uczoge1xuICAgICAgICBob3RrZXk6IFFVSUNLX0lOU0VSVF9IT1RLRVksXG4gICAgICAgIGFsbG93SG90a2V5SW5UeXBlczogW0VsZW1lbnRLaW5kcy50YWJsZUNlbGwsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlXSxcbiAgICAgICAgZGlzYWJsZWRQbHVzOiB0cnVlXG4gICAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBhbGxvd09wZW5JbnNlcnRNZW51ID0gKGVkaXRvcjogRWRpdG9yLCBhbGxvd1R5cGVzOiBFbGVtZW50S2luZHNbXSkgPT4ge1xuICAgIGNvbnN0IFssIHBhdGhdID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IpO1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBOb2RlLnBhcmVudChlZGl0b3IsIHBhdGgpO1xuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMSB8fCAocGFyZW50Tm9kZSAmJiBhbGxvd1R5cGVzLmluY2x1ZGVzKHBhcmVudE5vZGUudHlwZSkpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuIl19