@worktile/theia 16.1.6 → 16.1.8

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 (379) hide show
  1. package/components/contextmenu/contextmenu.component.d.ts +1 -1
  2. package/components/conversion-hint/conversion-hint.component.d.ts +1 -1
  3. package/components/inline-toolbar/inline-toolbar.component.d.ts +1 -1
  4. package/components/listbox/listbox.d.ts +3 -3
  5. package/components/plugin-menu/plugin-menu.component.d.ts +5 -4
  6. package/components/table-select/table-select.component.d.ts +1 -1
  7. package/components/toolbar/toolbar.component.d.ts +1 -1
  8. package/components/toolbar-group/toolbar-group.component.d.ts +1 -1
  9. package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
  10. package/custom-types.d.ts +1 -0
  11. package/editor.component.d.ts +1 -1
  12. package/{esm2020 → esm2022}/components/action/prevent-default.mjs +4 -4
  13. package/{esm2020 → esm2022}/components/column-resize/column-resize-notifier.mjs +4 -4
  14. package/{esm2020 → esm2022}/components/column-resize/column-resize.directive.mjs +4 -4
  15. package/{esm2020 → esm2022}/components/column-resize/column-resize.module.mjs +9 -9
  16. package/{esm2020 → esm2022}/components/column-resize/event-dispatcher.mjs +4 -4
  17. package/{esm2020 → esm2022}/components/column-resize/overlay-handle.component.mjs +4 -4
  18. package/{esm2020 → esm2022}/components/column-resize/resizing.store.mjs +4 -4
  19. package/{esm2020 → esm2022}/components/contextmenu/contextmenu.component.mjs +4 -4
  20. package/{esm2020 → esm2022}/components/conversion-hint/conversion-hint.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/components/element/element.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/components/inline-toolbar/inline-toolbar.component.mjs +6 -6
  23. package/esm2022/components/listbox/listbox.mjs +375 -0
  24. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +205 -0
  25. package/{esm2020 → esm2022}/components/table-select/table-select.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/components/template/template.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/components/text/text.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/components/toolbar/toolbar.component.mjs +4 -4
  29. package/{esm2020 → esm2022}/components/toolbar-dropdown/toolbar-dropdown.component.mjs +4 -4
  30. package/{esm2020 → esm2022}/components/toolbar-group/toolbar-group.component.mjs +4 -4
  31. package/{esm2020 → esm2022}/components/toolbar-item/toolbar-item.component.mjs +6 -6
  32. package/{esm2020 → esm2022}/core/toolbar-item/base-toolbar-item.mjs +7 -7
  33. package/esm2022/custom-types.mjs +2 -0
  34. package/{esm2020 → esm2022}/editor.component.mjs +11 -11
  35. package/esm2022/editor.module.mjs +254 -0
  36. package/esm2022/interfaces/image.mjs +3 -0
  37. package/{esm2020 → esm2022}/interfaces/view-base.mjs +4 -4
  38. package/{esm2020 → esm2022}/pipes.mjs +10 -10
  39. package/{esm2020 → esm2022}/plugins/autoformat/transforms/auto-format-block.mjs +1 -1
  40. package/{esm2020 → esm2022}/plugins/blockquote/blockquote.component.mjs +4 -4
  41. package/{esm2020 → esm2022}/plugins/code/code.component.mjs +4 -4
  42. package/{esm2020 → esm2022}/plugins/color/toolbar-item.component.mjs +4 -4
  43. package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +59 -0
  44. package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +136 -0
  45. package/{esm2020 → esm2022}/plugins/hr/hr.component.mjs +6 -6
  46. package/esm2022/plugins/image/image.component.mjs +460 -0
  47. package/esm2022/plugins/image/image.editor.mjs +96 -0
  48. package/{esm2020 → esm2022}/plugins/inline-code/inline-code.component.mjs +6 -6
  49. package/{esm2020 → esm2022}/plugins/link/edit/link-edit.component.mjs +4 -4
  50. package/{esm2020 → esm2022}/plugins/link/hover/link-hover.component.mjs +4 -4
  51. package/{esm2020 → esm2022}/plugins/link/link.component.mjs +9 -9
  52. package/{esm2020 → esm2022}/plugins/list/components/bulleted-list.component.mjs +4 -4
  53. package/{esm2020 → esm2022}/plugins/list/components/list-item.component.mjs +4 -4
  54. package/{esm2020 → esm2022}/plugins/list/components/numbered-list.component.mjs +4 -4
  55. package/{esm2020 → esm2022}/plugins/mention/suggestion.component.mjs +4 -4
  56. package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +126 -0
  57. package/{esm2020 → esm2022}/plugins/table/components/insert-mark/insert-mark.component.mjs +4 -4
  58. package/{esm2020 → esm2022}/plugins/table/components/row/row.component.mjs +6 -6
  59. package/esm2022/plugins/table/components/table.component.mjs +834 -0
  60. package/{esm2020 → esm2022}/plugins/table/components/td/td.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-options.component.mjs +6 -6
  62. package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-toolbar.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/plugins/table/table.pipe.mjs +7 -7
  64. package/{esm2020 → esm2022}/plugins/table/table.service.mjs +4 -4
  65. package/{esm2020 → esm2022}/plugins/table/table.store.mjs +4 -4
  66. package/{esm2020 → esm2022}/plugins/table/toolbar-item.component.mjs +6 -6
  67. package/{esm2020 → esm2022}/plugins/todo-item/todo-item.component.mjs +6 -6
  68. package/{esm2020 → esm2022}/plugins/vertical-align/toolbar-item.component.mjs +4 -4
  69. package/{esm2020 → esm2022}/services/context.service.mjs +4 -4
  70. package/{esm2020 → esm2022}/services/table-contextmenu.service.mjs +4 -4
  71. package/{esm2020 → esm2022}/services/toolbar.service.mjs +4 -4
  72. package/{esm2020 → esm2022}/transforms/on-keydown-reset-block-type.mjs +1 -1
  73. package/{fesm2020 → fesm2022}/worktile-theia.mjs +449 -406
  74. package/fesm2022/worktile-theia.mjs.map +1 -0
  75. package/interfaces/editor.d.ts +5 -3
  76. package/interfaces/image.d.ts +5 -4
  77. package/package.json +6 -15
  78. package/plugins/image/image.component.d.ts +5 -3
  79. package/plugins/image/image.editor.d.ts +7 -0
  80. package/plugins/link/edit/link-edit.component.d.ts +1 -1
  81. package/plugins/link/hover/link-hover.component.d.ts +1 -1
  82. package/plugins/mention/suggestion.component.d.ts +1 -1
  83. package/plugins/quick-insert/components/quick-insert.component.d.ts +2 -3
  84. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +1 -1
  85. package/plugins/table/components/table.component.d.ts +7 -7
  86. package/plugins/table/components/toolbar/table-options.component.d.ts +1 -1
  87. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +1 -1
  88. package/queries/is-range-across-blocks.d.ts +1 -1
  89. package/esm2020/components/listbox/listbox.mjs +0 -375
  90. package/esm2020/components/plugin-menu/plugin-menu.component.mjs +0 -204
  91. package/esm2020/custom-types.mjs +0 -2
  92. package/esm2020/editor.module.mjs +0 -254
  93. package/esm2020/interfaces/image.mjs +0 -3
  94. package/esm2020/plugins/deserialize/deserialize-html.plugin.mjs +0 -53
  95. package/esm2020/plugins/deserialize/deserialize-md.plugin.mjs +0 -130
  96. package/esm2020/plugins/image/image.component.mjs +0 -440
  97. package/esm2020/plugins/image/image.editor.mjs +0 -81
  98. package/esm2020/plugins/quick-insert/components/quick-insert.component.mjs +0 -130
  99. package/esm2020/plugins/table/components/table.component.mjs +0 -834
  100. package/fesm2015/worktile-theia.mjs +0 -16715
  101. package/fesm2015/worktile-theia.mjs.map +0 -1
  102. package/fesm2020/worktile-theia.mjs.map +0 -1
  103. /package/{esm2020 → esm2022}/components/column-resize/resize-ref.mjs +0 -0
  104. /package/{esm2020 → esm2022}/components/column-resize/selectors.mjs +0 -0
  105. /package/{esm2020 → esm2022}/components/index.mjs +0 -0
  106. /package/{esm2020 → esm2022}/components/listbox/listbox.type.mjs +0 -0
  107. /package/{esm2020 → esm2022}/constants/auto-format-rules.mjs +0 -0
  108. /package/{esm2020 → esm2022}/constants/code.mjs +0 -0
  109. /package/{esm2020 → esm2022}/constants/color-select.mjs +0 -0
  110. /package/{esm2020 → esm2022}/constants/default.mjs +0 -0
  111. /package/{esm2020 → esm2022}/constants/error.mjs +0 -0
  112. /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/constants/node-types.mjs +0 -0
  114. /package/{esm2020 → esm2022}/constants/plugin-menu.mjs +0 -0
  115. /package/{esm2020 → esm2022}/constants/selector.mjs +0 -0
  116. /package/{esm2020 → esm2022}/constants/toolbar.mjs +0 -0
  117. /package/{esm2020 → esm2022}/core/create-plugin.mjs +0 -0
  118. /package/{esm2020 → esm2022}/core/create-toolbar.mjs +0 -0
  119. /package/{esm2020 → esm2022}/core/index.mjs +0 -0
  120. /package/{esm2020 → esm2022}/core/utils/combine-plugins.mjs +0 -0
  121. /package/{esm2020 → esm2022}/core/utils/flatten-deep-plugins.mjs +0 -0
  122. /package/{esm2020 → esm2022}/core/utils/get-plugin-options.mjs +0 -0
  123. /package/{esm2020 → esm2022}/core/utils/get-plugin.mjs +0 -0
  124. /package/{esm2020 → esm2022}/core/utils/get-plugins.mjs +0 -0
  125. /package/{esm2020 → esm2022}/core/utils/index.mjs +0 -0
  126. /package/{esm2020 → esm2022}/core/utils/merge-array.mjs +0 -0
  127. /package/{esm2020 → esm2022}/core/utils/merge-deep-plugins.mjs +0 -0
  128. /package/{esm2020 → esm2022}/core/utils/merge-options.mjs +0 -0
  129. /package/{esm2020 → esm2022}/core/utils/nested-structure-by-key.mjs +0 -0
  130. /package/{esm2020 → esm2022}/core/utils/plugin-menu.mjs +0 -0
  131. /package/{esm2020 → esm2022}/core/utils/plugins-by-key.mjs +0 -0
  132. /package/{esm2020 → esm2022}/core/with-theia.mjs +0 -0
  133. /package/{esm2020 → esm2022}/interfaces/auto-format.mjs +0 -0
  134. /package/{esm2020 → esm2022}/interfaces/editor.mjs +0 -0
  135. /package/{esm2020 → esm2022}/interfaces/element.mjs +0 -0
  136. /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
  137. /package/{esm2020 → esm2022}/interfaces/plugins/index.mjs +0 -0
  138. /package/{esm2020 → esm2022}/interfaces/plugins/no-infer.mjs +0 -0
  139. /package/{esm2020 → esm2022}/interfaces/plugins/plugin-key.mjs +0 -0
  140. /package/{esm2020 → esm2022}/interfaces/plugins/plugin-menu.mjs +0 -0
  141. /package/{esm2020 → esm2022}/interfaces/plugins/plugins.mjs +0 -0
  142. /package/{esm2020 → esm2022}/interfaces/plugins/with-override.mjs +0 -0
  143. /package/{esm2020 → esm2022}/interfaces/reset-block-type-plugin-options.mjs +0 -0
  144. /package/{esm2020 → esm2022}/interfaces/toolbar.mjs +0 -0
  145. /package/{esm2020 → esm2022}/interfaces/upload.mjs +0 -0
  146. /package/{esm2020 → esm2022}/interfaces/utility/index.mjs +0 -0
  147. /package/{esm2020 → esm2022}/interfaces/utility/nested-structure-by-key.mjs +0 -0
  148. /package/{esm2020 → esm2022}/interfaces/utility/override-by-key.mjs +0 -0
  149. /package/{esm2020 → esm2022}/interfaces/utility/types.mjs +0 -0
  150. /package/{esm2020 → esm2022}/interfaces/valid-children-types.mjs +0 -0
  151. /package/{esm2020 → esm2022}/plugins/align/align.editor.mjs +0 -0
  152. /package/{esm2020 → esm2022}/plugins/align/align.plugin.mjs +0 -0
  153. /package/{esm2020 → esm2022}/plugins/autoformat/autoformat.plugin.mjs +0 -0
  154. /package/{esm2020 → esm2022}/plugins/autoformat/transforms/auto-format-inline.mjs +0 -0
  155. /package/{esm2020 → esm2022}/plugins/blockquote/blockquote.editor.mjs +0 -0
  156. /package/{esm2020 → esm2022}/plugins/blockquote/blockquote.plugin.mjs +0 -0
  157. /package/{esm2020 → esm2022}/plugins/code/code.editor.mjs +0 -0
  158. /package/{esm2020 → esm2022}/plugins/code/code.plugin.mjs +0 -0
  159. /package/{esm2020 → esm2022}/plugins/color/color.editor.mjs +0 -0
  160. /package/{esm2020 → esm2022}/plugins/color/color.plugin.mjs +0 -0
  161. /package/{esm2020 → esm2022}/plugins/common/block-card.plugin.mjs +0 -0
  162. /package/{esm2020 → esm2022}/plugins/common/common.plugin.mjs +0 -0
  163. /package/{esm2020 → esm2022}/plugins/common/get-fragment.plugin.mjs +0 -0
  164. /package/{esm2020 → esm2022}/plugins/common/history.plugin.mjs +0 -0
  165. /package/{esm2020 → esm2022}/plugins/common/insert-data-by-invalid-type.mjs +0 -0
  166. /package/{esm2020 → esm2022}/plugins/common/move-selection.plugin.mjs +0 -0
  167. /package/{esm2020 → esm2022}/plugins/common/remove-empty.plugin.mjs +0 -0
  168. /package/{esm2020 → esm2022}/plugins/common/remove-void.plugin.mjs +0 -0
  169. /package/{esm2020 → esm2022}/plugins/common/reset-type.plugin.mjs +0 -0
  170. /package/{esm2020 → esm2022}/plugins/common/transforms.plugin.mjs +0 -0
  171. /package/{esm2020 → esm2022}/plugins/font-size/font-size.editor.mjs +0 -0
  172. /package/{esm2020 → esm2022}/plugins/heading/heading.editor.mjs +0 -0
  173. /package/{esm2020 → esm2022}/plugins/heading/heading.plugin.mjs +0 -0
  174. /package/{esm2020 → esm2022}/plugins/hr/hr.editor.mjs +0 -0
  175. /package/{esm2020 → esm2022}/plugins/hr/hr.plugin.mjs +0 -0
  176. /package/{esm2020 → esm2022}/plugins/image/image.plugin.mjs +0 -0
  177. /package/{esm2020 → esm2022}/plugins/indent/indent.editor.mjs +0 -0
  178. /package/{esm2020 → esm2022}/plugins/indent/indent.plugin.mjs +0 -0
  179. /package/{esm2020 → esm2022}/plugins/indent/on-keydown-indent.mjs +0 -0
  180. /package/{esm2020 → esm2022}/plugins/index.mjs +0 -0
  181. /package/{esm2020 → esm2022}/plugins/inline-code/inline-code.editor.mjs +0 -0
  182. /package/{esm2020 → esm2022}/plugins/inline-code/inline-code.plugin.mjs +0 -0
  183. /package/{esm2020 → esm2022}/plugins/link/link.editor.mjs +0 -0
  184. /package/{esm2020 → esm2022}/plugins/link/link.plugin.mjs +0 -0
  185. /package/{esm2020 → esm2022}/plugins/link/link.types.mjs +0 -0
  186. /package/{esm2020 → esm2022}/plugins/list/list.editor.mjs +0 -0
  187. /package/{esm2020 → esm2022}/plugins/list/list.plugin.mjs +0 -0
  188. /package/{esm2020 → esm2022}/plugins/list/normalizers/get-list-normalizer.mjs +0 -0
  189. /package/{esm2020 → esm2022}/plugins/list/normalizers/normalize-list-item.mjs +0 -0
  190. /package/{esm2020 → esm2022}/plugins/list/normalizers/normalize-no.mjs +0 -0
  191. /package/{esm2020 → esm2022}/plugins/list/on-key-down-list.mjs +0 -0
  192. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-entry.mjs +0 -0
  193. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-sublist.mjs +0 -0
  194. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-types.mjs +0 -0
  195. /package/{esm2020 → esm2022}/plugins/list/queries/get-start-list-item.mjs +0 -0
  196. /package/{esm2020 → esm2022}/plugins/list/queries/has-list-in-list-item.mjs +0 -0
  197. /package/{esm2020 → esm2022}/plugins/list/queries/is-in-list.mjs +0 -0
  198. /package/{esm2020 → esm2022}/plugins/list/queries/is-list-nested.mjs +0 -0
  199. /package/{esm2020 → esm2022}/plugins/list/queries/is-list.mjs +0 -0
  200. /package/{esm2020 → esm2022}/plugins/list/queries/is-node-type-list.mjs +0 -0
  201. /package/{esm2020 → esm2022}/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -0
  202. /package/{esm2020 → esm2022}/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -0
  203. /package/{esm2020 → esm2022}/plugins/list/queries/is-single-list-item.mjs +0 -0
  204. /package/{esm2020 → esm2022}/plugins/list/transforms/insert-list-data.mjs +0 -0
  205. /package/{esm2020 → esm2022}/plugins/list/transforms/insert-list-item.mjs +0 -0
  206. /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-down.mjs +0 -0
  207. /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -0
  208. /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -0
  209. /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-up.mjs +0 -0
  210. /package/{esm2020 → esm2022}/plugins/list/transforms/unwrap-list.mjs +0 -0
  211. /package/{esm2020 → esm2022}/plugins/list/types.mjs +0 -0
  212. /package/{esm2020 → esm2022}/plugins/mark/mark.editor.mjs +0 -0
  213. /package/{esm2020 → esm2022}/plugins/mark/mark.plugin.mjs +0 -0
  214. /package/{esm2020 → esm2022}/plugins/mention/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/plugins/mention/mention.editor.mjs +0 -0
  216. /package/{esm2020 → esm2022}/plugins/mention/mention.plugin.mjs +0 -0
  217. /package/{esm2020 → esm2022}/plugins/mention/mention.type.mjs +0 -0
  218. /package/{esm2020 → esm2022}/plugins/node-id/node-id.plugin.mjs +0 -0
  219. /package/{esm2020 → esm2022}/plugins/normalizers/insert-paragraph-nodes.mjs +0 -0
  220. /package/{esm2020 → esm2022}/plugins/normalizers/remove-empty-nodes.mjs +0 -0
  221. /package/{esm2020 → esm2022}/plugins/normalizers/trailing-node.plugin.mjs +0 -0
  222. /package/{esm2020 → esm2022}/plugins/paint-format/paint-format.editor.mjs +0 -0
  223. /package/{esm2020 → esm2022}/plugins/public-api.mjs +0 -0
  224. /package/{esm2020 → esm2022}/plugins/quick-insert/quick-insert.editor.mjs +0 -0
  225. /package/{esm2020 → esm2022}/plugins/quick-insert/quick-insert.plugin.mjs +0 -0
  226. /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.plugin.mjs +0 -0
  227. /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.types.mjs +0 -0
  228. /package/{esm2020 → esm2022}/plugins/table/table.editor.mjs +0 -0
  229. /package/{esm2020 → esm2022}/plugins/table/table.plugin.mjs +0 -0
  230. /package/{esm2020 → esm2022}/plugins/table/table.types.mjs +0 -0
  231. /package/{esm2020 → esm2022}/plugins/table/transforms/clear-cell.mjs +0 -0
  232. /package/{esm2020 → esm2022}/plugins/table/transforms/clear-table-node.mjs +0 -0
  233. /package/{esm2020 → esm2022}/plugins/table/transforms/index.mjs +0 -0
  234. /package/{esm2020 → esm2022}/plugins/table/transforms/insert-column.mjs +0 -0
  235. /package/{esm2020 → esm2022}/plugins/table/transforms/insert-row.mjs +0 -0
  236. /package/{esm2020 → esm2022}/plugins/table/transforms/insert-table.mjs +0 -0
  237. /package/{esm2020 → esm2022}/plugins/table/transforms/remove-column.mjs +0 -0
  238. /package/{esm2020 → esm2022}/plugins/table/transforms/remove-row.mjs +0 -0
  239. /package/{esm2020 → esm2022}/plugins/table/transforms/remove-table.mjs +0 -0
  240. /package/{esm2020 → esm2022}/plugins/table/utils/add-columns.mjs +0 -0
  241. /package/{esm2020 → esm2022}/plugins/table/utils/calc-anchor-position.mjs +0 -0
  242. /package/{esm2020 → esm2022}/plugins/table/utils/calc-span.mjs +0 -0
  243. /package/{esm2020 → esm2022}/plugins/table/utils/calculate-table.mjs +0 -0
  244. /package/{esm2020 → esm2022}/plugins/table/utils/cell-position.mjs +0 -0
  245. /package/{esm2020 → esm2022}/plugins/table/utils/create-cell.mjs +0 -0
  246. /package/{esm2020 → esm2022}/plugins/table/utils/create-row.mjs +0 -0
  247. /package/{esm2020 → esm2022}/plugins/table/utils/create-table-position.mjs +0 -0
  248. /package/{esm2020 → esm2022}/plugins/table/utils/create-table.mjs +0 -0
  249. /package/{esm2020 → esm2022}/plugins/table/utils/get-grid-columns.mjs +0 -0
  250. /package/{esm2020 → esm2022}/plugins/table/utils/get-min-max-cell-index.mjs +0 -0
  251. /package/{esm2020 → esm2022}/plugins/table/utils/get-select-cell-node.mjs +0 -0
  252. /package/{esm2020 → esm2022}/plugins/table/utils/handle-cell.mjs +0 -0
  253. /package/{esm2020 → esm2022}/plugins/table/utils/index.mjs +0 -0
  254. /package/{esm2020 → esm2022}/plugins/table/utils/is-header-row.mjs +0 -0
  255. /package/{esm2020 → esm2022}/plugins/table/utils/is-legal-table.mjs +0 -0
  256. /package/{esm2020 → esm2022}/plugins/table/utils/is-range-in-table.mjs +0 -0
  257. /package/{esm2020 → esm2022}/plugins/table/utils/is-selection-in-table.mjs +0 -0
  258. /package/{esm2020 → esm2022}/plugins/table/utils/is-virtual-key.mjs +0 -0
  259. /package/{esm2020 → esm2022}/plugins/table/utils/merge-cell.mjs +0 -0
  260. /package/{esm2020 → esm2022}/plugins/table/utils/next-path.mjs +0 -0
  261. /package/{esm2020 → esm2022}/plugins/table/utils/normalize-table.mjs +0 -0
  262. /package/{esm2020 → esm2022}/plugins/table/utils/remove-columns.mjs +0 -0
  263. /package/{esm2020 → esm2022}/plugins/table/utils/remove-row-column.mjs +0 -0
  264. /package/{esm2020 → esm2022}/plugins/table/utils/set-cells-background-color.mjs +0 -0
  265. /package/{esm2020 → esm2022}/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -0
  266. /package/{esm2020 → esm2022}/plugins/table/utils/set-node-options.mjs +0 -0
  267. /package/{esm2020 → esm2022}/plugins/table/utils/split-cell.mjs +0 -0
  268. /package/{esm2020 → esm2022}/plugins/table/utils/table-entry.mjs +0 -0
  269. /package/{esm2020 → esm2022}/plugins/table/utils/table-position.mjs +0 -0
  270. /package/{esm2020 → esm2022}/plugins/todo-item/todo-item.editor.mjs +0 -0
  271. /package/{esm2020 → esm2022}/plugins/todo-item/todo-item.plugin.mjs +0 -0
  272. /package/{esm2020 → esm2022}/plugins/vertical-align/vertical-align.editor.mjs +0 -0
  273. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  274. /package/{esm2020 → esm2022}/queries/anchor-block-entry.mjs +0 -0
  275. /package/{esm2020 → esm2022}/queries/anchor-block.mjs +0 -0
  276. /package/{esm2020 → esm2022}/queries/anchor-inline-entry.mjs +0 -0
  277. /package/{esm2020 → esm2022}/queries/find-descendant.mjs +0 -0
  278. /package/{esm2020 → esm2022}/queries/find-node.mjs +0 -0
  279. /package/{esm2020 → esm2022}/queries/find-path.mjs +0 -0
  280. /package/{esm2020 → esm2022}/queries/get-above-by-type.mjs +0 -0
  281. /package/{esm2020 → esm2022}/queries/get-above.mjs +0 -0
  282. /package/{esm2020 → esm2022}/queries/get-anchor-block-entry.mjs +0 -0
  283. /package/{esm2020 → esm2022}/queries/get-block-above.mjs +0 -0
  284. /package/{esm2020 → esm2022}/queries/get-block-card-above.mjs +0 -0
  285. /package/{esm2020 → esm2022}/queries/get-block-card-cursor.mjs +0 -0
  286. /package/{esm2020 → esm2022}/queries/get-container-blocks.mjs +0 -0
  287. /package/{esm2020 → esm2022}/queries/get-directly-parent.mjs +0 -0
  288. /package/{esm2020 → esm2022}/queries/get-insert-elements-path.mjs +0 -0
  289. /package/{esm2020 → esm2022}/queries/get-last-child-path.mjs +0 -0
  290. /package/{esm2020 → esm2022}/queries/get-last-node.mjs +0 -0
  291. /package/{esm2020 → esm2022}/queries/get-next-sibling-nodes.mjs +0 -0
  292. /package/{esm2020 → esm2022}/queries/get-node.mjs +0 -0
  293. /package/{esm2020 → esm2022}/queries/get-nodes-by-type.mjs +0 -0
  294. /package/{esm2020 → esm2022}/queries/get-nodes.mjs +0 -0
  295. /package/{esm2020 → esm2022}/queries/get-parent.mjs +0 -0
  296. /package/{esm2020 → esm2022}/queries/get-plain-text.mjs +0 -0
  297. /package/{esm2020 → esm2022}/queries/get-plugin-by-toolbar.mjs +0 -0
  298. /package/{esm2020 → esm2022}/queries/get-point-before.mjs +0 -0
  299. /package/{esm2020 → esm2022}/queries/get-point-from-location.mjs +0 -0
  300. /package/{esm2020 → esm2022}/queries/get-previous-path.mjs +0 -0
  301. /package/{esm2020 → esm2022}/queries/get-rang-from-block-start.mjs +0 -0
  302. /package/{esm2020 → esm2022}/queries/get-range-before.mjs +0 -0
  303. /package/{esm2020 → esm2022}/queries/get-selection-marks.mjs +0 -0
  304. /package/{esm2020 → esm2022}/queries/get-selection-nodes-by-type.mjs +0 -0
  305. /package/{esm2020 → esm2022}/queries/get-text.mjs +0 -0
  306. /package/{esm2020 → esm2022}/queries/get-toolbar-disabled.mjs +0 -0
  307. /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
  308. /package/{esm2020 → esm2022}/queries/is-across-blocks.mjs +0 -0
  309. /package/{esm2020 → esm2022}/queries/is-ancestor-empty.mjs +0 -0
  310. /package/{esm2020 → esm2022}/queries/is-ancestor.mjs +0 -0
  311. /package/{esm2020 → esm2022}/queries/is-block-above-empty.mjs +0 -0
  312. /package/{esm2020 → esm2022}/queries/is-block-active.mjs +0 -0
  313. /package/{esm2020 → esm2022}/queries/is-block-card-cursor.mjs +0 -0
  314. /package/{esm2020 → esm2022}/queries/is-block-text-empty-after-selection.mjs +0 -0
  315. /package/{esm2020 → esm2022}/queries/is-collapsed.mjs +0 -0
  316. /package/{esm2020 → esm2022}/queries/is-contain-nested-type.mjs +0 -0
  317. /package/{esm2020 → esm2022}/queries/is-container-type.mjs +0 -0
  318. /package/{esm2020 → esm2022}/queries/is-descendant.mjs +0 -0
  319. /package/{esm2020 → esm2022}/queries/is-empty-content-filter.mjs +0 -0
  320. /package/{esm2020 → esm2022}/queries/is-empty-content.mjs +0 -0
  321. /package/{esm2020 → esm2022}/queries/is-empty-paragraph-by-path.mjs +0 -0
  322. /package/{esm2020 → esm2022}/queries/is-empty-paragraph.mjs +0 -0
  323. /package/{esm2020 → esm2022}/queries/is-first-child.mjs +0 -0
  324. /package/{esm2020 → esm2022}/queries/is-global-collapsed.mjs +0 -0
  325. /package/{esm2020 → esm2022}/queries/is-include-types.mjs +0 -0
  326. /package/{esm2020 → esm2022}/queries/is-node-type-in.mjs +0 -0
  327. /package/{esm2020 → esm2022}/queries/is-node-type.mjs +0 -0
  328. /package/{esm2020 → esm2022}/queries/is-paragraph.mjs +0 -0
  329. /package/{esm2020 → esm2022}/queries/is-point-at-root.mjs +0 -0
  330. /package/{esm2020 → esm2022}/queries/is-range-across-blocks.mjs +0 -0
  331. /package/{esm2020 → esm2022}/queries/is-range-at-root.mjs +0 -0
  332. /package/{esm2020 → esm2022}/queries/is-start.mjs +0 -0
  333. /package/{esm2020 → esm2022}/queries/some-node.mjs +0 -0
  334. /package/{esm2020 → esm2022}/shortcuts/index.mjs +0 -0
  335. /package/{esm2020 → esm2022}/shortcuts/mark.mjs +0 -0
  336. /package/{esm2020 → esm2022}/test/index.mjs +0 -0
  337. /package/{esm2020 → esm2022}/test/utils/with-plugin.mjs +0 -0
  338. /package/{esm2020 → esm2022}/transforms/apply-deep-to-nodes.mjs +0 -0
  339. /package/{esm2020 → esm2022}/transforms/clear-marks.mjs +0 -0
  340. /package/{esm2020 → esm2022}/transforms/close-conversion-hint.mjs +0 -0
  341. /package/{esm2020 → esm2022}/transforms/delete-element.mjs +0 -0
  342. /package/{esm2020 → esm2022}/transforms/handle-continual-delete-backward.mjs +0 -0
  343. /package/{esm2020 → esm2022}/transforms/handle-continual-insert-break.mjs +0 -0
  344. /package/{esm2020 → esm2022}/transforms/index.mjs +0 -0
  345. /package/{esm2020 → esm2022}/transforms/insert-elements.mjs +0 -0
  346. /package/{esm2020 → esm2022}/transforms/insert-paragraph.mjs +0 -0
  347. /package/{esm2020 → esm2022}/transforms/merge-deep-to-nodes.mjs +0 -0
  348. /package/{esm2020 → esm2022}/transforms/move-children.mjs +0 -0
  349. /package/{esm2020 → esm2022}/transforms/set-end-selection.mjs +0 -0
  350. /package/{esm2020 → esm2022}/transforms/set-marks.mjs +0 -0
  351. /package/{esm2020 → esm2022}/transforms/set-node.mjs +0 -0
  352. /package/{esm2020 → esm2022}/transforms/un-hang-range.mjs +0 -0
  353. /package/{esm2020 → esm2022}/transforms/un-wrap.mjs +0 -0
  354. /package/{esm2020 → esm2022}/transforms/unwrap-nodes-by-type.mjs +0 -0
  355. /package/{esm2020 → esm2022}/utils/auto-focus.mjs +0 -0
  356. /package/{esm2020 → esm2022}/utils/blob.mjs +0 -0
  357. /package/{esm2020 → esm2022}/utils/cast-array.mjs +0 -0
  358. /package/{esm2020 → esm2022}/utils/color-picker.mjs +0 -0
  359. /package/{esm2020 → esm2022}/utils/common.mjs +0 -0
  360. /package/{esm2020 → esm2022}/utils/copy-node.mjs +0 -0
  361. /package/{esm2020 → esm2022}/utils/create-empty-paragraph.mjs +0 -0
  362. /package/{esm2020 → esm2022}/utils/data-transform.mjs +0 -0
  363. /package/{esm2020 → esm2022}/utils/dom.mjs +0 -0
  364. /package/{esm2020 → esm2022}/utils/editor-uuid.mjs +0 -0
  365. /package/{esm2020 → esm2022}/utils/fragment.mjs +0 -0
  366. /package/{esm2020 → esm2022}/utils/get-editable-element-height.mjs +0 -0
  367. /package/{esm2020 → esm2022}/utils/get-toolbar-class.mjs +0 -0
  368. /package/{esm2020 → esm2022}/utils/id-creator.mjs +0 -0
  369. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  370. /package/{esm2020 → esm2022}/utils/insert-data-by-invalid-type.mjs +0 -0
  371. /package/{esm2020 → esm2022}/utils/is-clean-empty-paragraph.mjs +0 -0
  372. /package/{esm2020 → esm2022}/utils/is-inline.mjs +0 -0
  373. /package/{esm2020 → esm2022}/utils/lodash.mjs +0 -0
  374. /package/{esm2020 → esm2022}/utils/match.mjs +0 -0
  375. /package/{esm2020 → esm2022}/utils/merge-element-options.mjs +0 -0
  376. /package/{esm2020 → esm2022}/utils/refocus.mjs +0 -0
  377. /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
  378. /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
  379. /package/{esm2020 → esm2022}/worktile-theia.mjs +0 -0
@@ -1,53 +0,0 @@
1
- import { Element, Transforms } from 'slate';
2
- import { TheiaConverter } from '@atinc/selene';
3
- import { CLIPBOARD_FORMAT_KEY, ElementKinds } from '../../constants';
4
- import { filterTextFormat, recursionNodes } from '../../utils/fragment';
5
- import { createPluginFactory } from '../../core';
6
- import { PluginKeys } from '../../interfaces';
7
- import { ImageEditor } from '../image/image.editor';
8
- import { isLogicEmptyParagraphElement } from '../../queries/is-empty-paragraph';
9
- import { insertDataByInvalidType } from '../../utils';
10
- export const withDeserializeHTML = (editor) => {
11
- const { insertData } = editor;
12
- editor.insertData = (data) => {
13
- const html = data.getData(`text/html`);
14
- const slateFragment = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);
15
- if (html && !slateFragment) {
16
- const htmlDom = new DOMParser().parseFromString(html, 'text/html');
17
- const fragment = TheiaConverter.convertToTheia(Array.from(htmlDom.body.children));
18
- // 无法识别HTML内容时后退一下:识别纯文本
19
- if (fragment.every(block => block.type === ElementKinds.paragraph && isLogicEmptyParagraphElement(editor, block))) {
20
- insertData(data);
21
- return;
22
- }
23
- // 识出纯图片并且粘贴板中存在文件则不进行处理, hook 直接右键复制图片的场景,流转到上传图片流程
24
- // 后续需要做识别html图片后自动上传处理
25
- if (fragment.length === 1 && fragment[0].type === ElementKinds.image && data.files.length > 0) {
26
- insertData(data);
27
- return;
28
- }
29
- // 过滤 text 节点的 color/background-color 属性
30
- fragment.forEach(node => filterTextFormat(node));
31
- // base 64 图片处理
32
- recursionNodes(fragment, (node) => {
33
- const isImage = Element.isElement(node) && node.type === ElementKinds.image;
34
- if (isImage) {
35
- ImageEditor.handleBase64ImageElement(editor, node);
36
- }
37
- });
38
- const isContinue = insertDataByInvalidType(editor, fragment);
39
- if (!isContinue) {
40
- return;
41
- }
42
- Transforms.insertFragment(editor, fragment);
43
- return;
44
- }
45
- insertData(data);
46
- };
47
- return editor;
48
- };
49
- export const createDeserializeHTMLPlugin = createPluginFactory({
50
- key: PluginKeys.deserializeHtml,
51
- withOverrides: withDeserializeHTML
52
- });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUtaHRtbC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9kZXNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS1odG1sLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ2xFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFOUIsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQWtCLEVBQUUsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFFMUUsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFjLENBQUM7WUFDL0Ysd0JBQXdCO1lBQ3hCLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFNBQVMsSUFBSSw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDL0csVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixPQUFPO2FBQ1Y7WUFDRCxvREFBb0Q7WUFDcEQsdUJBQXVCO1lBQ3ZCLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0YsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixPQUFPO2FBQ1Y7WUFFRCx3Q0FBd0M7WUFDeEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFakQsZUFBZTtZQUNmLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFVLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUM7Z0JBQzVFLElBQUksT0FBTyxFQUFFO29CQUNULFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3REO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDYixPQUFPO2FBQ1Y7WUFDRCxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1QyxPQUFPO1NBQ1Y7UUFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsbUJBQW1CLENBQUM7SUFDM0QsR0FBRyxFQUFFLFVBQVUsQ0FBQyxlQUFlO0lBQy9CLGFBQWEsRUFBRSxtQkFBbUI7Q0FDckMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUcmFuc2Zvcm1zLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGhlaWFDb252ZXJ0ZXIgfSBmcm9tICdAYXRpbmMvc2VsZW5lJztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZmlsdGVyVGV4dEZvcm1hdCwgcmVjdXJzaW9uTm9kZXMgfSBmcm9tICcuLi8uLi91dGlscy9mcmFnbWVudCc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvciB9IGZyb20gJy4uL2ltYWdlL2ltYWdlLmVkaXRvcic7XG5pbXBvcnQgeyBpc0xvZ2ljRW1wdHlQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi4vLi4vcXVlcmllcy9pcy1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgaW5zZXJ0RGF0YUJ5SW52YWxpZFR5cGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoRGVzZXJpYWxpemVIVE1MID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0RGF0YSB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmluc2VydERhdGEgPSAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBkYXRhLmdldERhdGEoYHRleHQvaHRtbGApO1xuICAgICAgICBjb25zdCBzbGF0ZUZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuXG4gICAgICAgIGlmIChodG1sICYmICFzbGF0ZUZyYWdtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBodG1sRG9tID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhodG1sLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IFRoZWlhQ29udmVydGVyLmNvbnZlcnRUb1RoZWlhKEFycmF5LmZyb20oaHRtbERvbS5ib2R5LmNoaWxkcmVuKSkgYXMgRWxlbWVudFtdO1xuICAgICAgICAgICAgLy8g5peg5rOV6K+G5YirSFRNTOWGheWuueaXtuWQjumAgOS4gOS4i++8muivhuWIq+e6r+aWh+acrFxuICAgICAgICAgICAgaWYgKGZyYWdtZW50LmV2ZXJ5KGJsb2NrID0+IGJsb2NrLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGggJiYgaXNMb2dpY0VtcHR5UGFyYWdyYXBoRWxlbWVudChlZGl0b3IsIGJsb2NrKSkpIHtcbiAgICAgICAgICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIOivhuWHuue6r+WbvueJh+W5tuS4lOeymOi0tOadv+S4reWtmOWcqOaWh+S7tuWImeS4jei/m+ihjOWkhOeQhiwgaG9vayDnm7TmjqXlj7PplK7lpI3liLblm77niYfnmoTlnLrmma/vvIzmtYHovazliLDkuIrkvKDlm77niYfmtYHnqItcbiAgICAgICAgICAgIC8vIOWQjue7remcgOimgeWBmuivhuWIq2h0bWzlm77niYflkI7oh6rliqjkuIrkvKDlpITnkIZcbiAgICAgICAgICAgIGlmIChmcmFnbWVudC5sZW5ndGggPT09IDEgJiYgZnJhZ21lbnRbMF0udHlwZSA9PT0gRWxlbWVudEtpbmRzLmltYWdlICYmIGRhdGEuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGluc2VydERhdGEoZGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDov4fmu6QgdGV4dCDoioLngrnnmoQgY29sb3IvYmFja2dyb3VuZC1jb2xvciDlsZ7mgKdcbiAgICAgICAgICAgIGZyYWdtZW50LmZvckVhY2gobm9kZSA9PiBmaWx0ZXJUZXh0Rm9ybWF0KG5vZGUpKTtcblxuICAgICAgICAgICAgLy8gYmFzZSA2NCDlm77niYflpITnkIZcbiAgICAgICAgICAgIHJlY3Vyc2lvbk5vZGVzKGZyYWdtZW50LCAobm9kZTogTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2UgPSBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZTtcbiAgICAgICAgICAgICAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5oYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29udGludWUgPSBpbnNlcnREYXRhQnlJbnZhbGlkVHlwZShlZGl0b3IsIGZyYWdtZW50KTtcbiAgICAgICAgICAgIGlmICghaXNDb250aW51ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0RnJhZ21lbnQoZWRpdG9yLCBmcmFnbWVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgIH07XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXNlcmlhbGl6ZUhUTUxQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICBrZXk6IFBsdWdpbktleXMuZGVzZXJpYWxpemVIdG1sLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhEZXNlcmlhbGl6ZUhUTUxcbn0pO1xuIl19
@@ -1,130 +0,0 @@
1
- import { ChangeDetectorRef, ViewContainerRef } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { ThyPopover } from 'ngx-tethys/popover';
4
- import { Element, Text, Transforms } from 'slate';
5
- import { AngularEditor } from 'slate-angular';
6
- import marked from 'marked';
7
- import { TheiaConverter } from '@atinc/selene';
8
- import { CLIPBOARD_FORMAT_KEY, ElementKinds } from '../../constants';
9
- import * as TheTransforms from '../../transforms';
10
- import { TheConversionHintComponent } from '../../components/conversion-hint/conversion-hint.component';
11
- import { THE_EDITOR_CONVERSION_HINT_REF, getToolbarClass, recursionNodes } from '../../utils';
12
- import { createPluginFactory } from '../../core';
13
- import { PluginKeys } from '../../interfaces';
14
- import { ImageEditor } from '../image/image.editor';
15
- export const withDeserializeMd = (editor) => {
16
- const { insertData, onKeydown } = editor;
17
- editor.onKeydown = (event) => {
18
- TheTransforms.closeConversionHint(editor);
19
- onKeydown(event);
20
- };
21
- editor.insertData = (data) => {
22
- const popover = editor.injector.get(ThyPopover);
23
- const viewContainerRef = editor.injector.get(ViewContainerRef);
24
- const cdr = editor.injector.get(ChangeDetectorRef);
25
- const plainFragment = data.getData('text/plain');
26
- const slateFragment = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);
27
- const oldRange = editor.selection;
28
- TheTransforms.closeConversionHint(editor);
29
- if (plainFragment && isMarkdownStynx(plainFragment) && !slateFragment) {
30
- setTimeout(() => {
31
- const overlay = editor.injector.get(Overlay);
32
- const bodyElement = document.body;
33
- const toolbarClass = getToolbarClass(editor);
34
- const toolbarElement = document.querySelector(`.${toolbarClass}`);
35
- const origin = toolbarElement ? toolbarElement : bodyElement;
36
- const placement = toolbarElement ? 'top' : 'topRight';
37
- const hintPopverRef = popover.open(TheConversionHintComponent, {
38
- initialState: {
39
- editor,
40
- conversion: () => {
41
- try {
42
- const html = marked(plainFragment.replace(/\n```/g, '\n\n```'), { gfm: true });
43
- const htmlDom = new DOMParser().parseFromString(html, 'text/html');
44
- const fragment = TheiaConverter.convertToTheia(Array.from(htmlDom.body.children));
45
- if (!isUnformatted(fragment)) {
46
- TheTransforms.closeConversionHint(editor);
47
- editor.undo();
48
- setTimeout(() => {
49
- Transforms.select(editor, oldRange);
50
- // base 64 图片处理
51
- recursionNodes(fragment, (node) => {
52
- const isImage = Element.isElement(node) && node.type === ElementKinds.image;
53
- if (isImage) {
54
- ImageEditor.handleBase64ImageElement(editor, node);
55
- }
56
- });
57
- Transforms.insertFragment(editor, fragment);
58
- AngularEditor.focus(editor);
59
- });
60
- return;
61
- }
62
- else {
63
- TheTransforms.closeConversionHint(editor);
64
- }
65
- }
66
- catch (error) {
67
- TheTransforms.closeConversionHint(editor);
68
- }
69
- }
70
- },
71
- origin,
72
- viewContainerRef,
73
- placement,
74
- offset: -100,
75
- minWidth: 0,
76
- hasBackdrop: false,
77
- backdropClosable: false,
78
- closeOnNavigation: false,
79
- scrollStrategy: overlay.scrollStrategies.reposition()
80
- });
81
- THE_EDITOR_CONVERSION_HINT_REF.set(editor, hintPopverRef);
82
- cdr.markForCheck();
83
- });
84
- }
85
- insertData(data);
86
- };
87
- return editor;
88
- };
89
- export const createDeserializeMdPlugin = createPluginFactory({
90
- key: PluginKeys.deserializeMd,
91
- withOverrides: withDeserializeMd
92
- });
93
- const isUnformatted = (elements) => {
94
- return elements.every(element => element.type === ElementKinds.default &&
95
- element.children.every((node) => {
96
- return Text.isText(node) && Object.keys(node).length === 1;
97
- }));
98
- };
99
- const isMarkdownStynx = content => {
100
- // https://github.com/Chalarangelo/parse-md-js/blob/master/parsemd.js
101
- const codeBlockRegex = /((\n\t)(.*))+/g;
102
- const inlineCodeRegex = /(`)(.*?)\1/g;
103
- const imageRegex = /!\[([^\[]+)\]\(([^\)]+)\)/g;
104
- const linkRegex = /\[([^\[]+)\]\(([^\)]+)\)/g;
105
- const headingRegex = /(#+\s*)(.*)/g;
106
- const boldItalicsRegex = /(\*{1,2})(\S+)\1/g;
107
- const strikethroughRegex = /(\~\~)(.*?)\1/g;
108
- const blockquoteRegex = /\n(>|\>)(.*)/g;
109
- const horizontalRuleRegex = /\n((\-{3,})|(={3,}))/g;
110
- const unorderedListRegex = /(\n\s*(\-|\+)\s.*)+/g;
111
- const orderedListRegex = /(\n\s*([0-9]+\.)\s.*)+/g;
112
- const paragraphRegex = /\n+(?!<pre>)(?!<h)(?!<ul>)(?!<blockquote)(?!<hr)(?!\t)([^\n]+)\n/g;
113
- // from marked
114
- const table = /^\s*([^\s].*\|.*)\s{0,3}(?:\|\s*)?(:?-+:?\s*(?:\|\s*:?-+:?\s*)*)\|?(?:\s*((?:(?!|hr|heading|blockquote|code|fences|list|html).*(?:|$))*)*|$)/g;
115
- const regexps = [
116
- inlineCodeRegex,
117
- imageRegex,
118
- linkRegex,
119
- headingRegex,
120
- boldItalicsRegex,
121
- strikethroughRegex,
122
- blockquoteRegex,
123
- horizontalRuleRegex,
124
- unorderedListRegex,
125
- orderedListRegex,
126
- table
127
- ];
128
- return regexps.some(regexp => regexp.test(content));
129
- };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUtbWQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvZGVzZXJpYWxpemUvZGVzZXJpYWxpemUtbWQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBVSxPQUFPLEVBQVEsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ2hFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FB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UUFDVixTQUFTO1FBQ1QsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLEtBQUs7S0FDUixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIE5vZGUsIFRleHQsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgbWFya2VkIGZyb20gJ21hcmtlZCc7XG5pbXBvcnQgeyBUaGVpYUNvbnZlcnRlciB9IGZyb20gJ0BhdGluYy9zZWxlbmUnO1xuaW1wb3J0IHsgQ0xJUEJPQVJEX0ZPUk1BVF9LRVksIEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgVGhlQ29udmVyc2lvbkhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRIRV9FRElUT1JfQ09OVkVSU0lPTl9ISU5UX1JFRiwgZ2V0VG9vbGJhckNsYXNzLCByZWN1cnNpb25Ob2RlcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlRWRpdG9yIH0gZnJvbSAnLi4vaW1hZ2UvaW1hZ2UuZWRpdG9yJztcblxuZXhwb3J0IGNvbnN0IHdpdGhEZXNlcmlhbGl6ZU1kID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0RGF0YSwgb25LZXlkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgY29uc3QgcG9wb3ZlciA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGh5UG9wb3Zlcik7XG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBjZHIgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgICAgICBjb25zdCBwbGFpbkZyYWdtZW50ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIGNvbnN0IHNsYXRlRnJhZ21lbnQgPSBkYXRhLmdldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCk7XG4gICAgICAgIGNvbnN0IG9sZFJhbmdlID0gZWRpdG9yLnNlbGVjdGlvbjtcbiAgICAgICAgVGhlVHJhbnNmb3Jtcy5jbG9zZUNvbnZlcnNpb25IaW50KGVkaXRvcik7XG5cbiAgICAgICAgaWYgKHBsYWluRnJhZ21lbnQgJiYgaXNNYXJrZG93blN0eW54KHBsYWluRnJhZ21lbnQpICYmICFzbGF0ZUZyYWdtZW50KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVybGF5ID0gZWRpdG9yLmluamVjdG9yLmdldChPdmVybGF5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckNsYXNzID0gZ2V0VG9vbGJhckNsYXNzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt0b29sYmFyQ2xhc3N9YCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdG9vbGJhckVsZW1lbnQgPyB0b29sYmFyRWxlbWVudCA6IGJvZHlFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IHRvb2xiYXJFbGVtZW50ID8gJ3RvcCcgOiAndG9wUmlnaHQnO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGludFBvcHZlclJlZiA9IHBvcG92ZXIub3BlbihUaGVDb252ZXJzaW9uSGludENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gbWFya2VkKHBsYWluRnJhZ21lbnQucmVwbGFjZSgvXFxuYGBgL2csICdcXG5cXG5gYGAnKSwgeyBnZm06IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxEb20gPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGh0bWwsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBUaGVpYUNvbnZlcnRlci5jb252ZXJ0VG9UaGVpYShBcnJheS5mcm9tKGh0bWxEb20uYm9keS5jaGlsZHJlbikpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNVbmZvcm1hdHRlZChmcmFnbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IudW5kbygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIG9sZFJhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIDY0IOWbvueJh+WkhOeQhlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Vyc2lvbk5vZGVzKGZyYWdtZW50LCAobm9kZTogTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5oYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0RnJhZ21lbnQoZWRpdG9yLCBmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmNsb3NlQ29udmVyc2lvbkhpbnQoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogLTEwMCxcbiAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYmFja2Ryb3BDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBUSEVfRURJVE9SX0NPTlZFUlNJT05fSElOVF9SRUYuc2V0KGVkaXRvciwgaGludFBvcHZlclJlZik7XG4gICAgICAgICAgICAgICAgY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgIH07XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXNlcmlhbGl6ZU1kUGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAga2V5OiBQbHVnaW5LZXlzLmRlc2VyaWFsaXplTWQsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aERlc2VyaWFsaXplTWRcbn0pO1xuXG5jb25zdCBpc1VuZm9ybWF0dGVkID0gKGVsZW1lbnRzOiBFbGVtZW50W10pID0+IHtcbiAgICByZXR1cm4gZWxlbWVudHMuZXZlcnkoXG4gICAgICAgIGVsZW1lbnQgPT5cbiAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmRlZmF1bHQgJiZcbiAgICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZXZlcnkoKG5vZGU6IE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGV4dC5pc1RleHQobm9kZSkgJiYgT2JqZWN0LmtleXMobm9kZSkubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgfSlcbiAgICApO1xufTtcblxuY29uc3QgaXNNYXJrZG93blN0eW54ID0gY29udGVudCA9PiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0NoYWxhcmFuZ2Vsby9wYXJzZS1tZC1qcy9ibG9iL21hc3Rlci9wYXJzZW1kLmpzXG4gICAgY29uc3QgY29kZUJsb2NrUmVnZXggPSAvKChcXG5cXHQpKC4qKSkrL2c7XG4gICAgY29uc3QgaW5saW5lQ29kZVJlZ2V4ID0gLyhgKSguKj8pXFwxL2c7XG4gICAgY29uc3QgaW1hZ2VSZWdleCA9IC8hXFxbKFteXFxbXSspXFxdXFwoKFteXFwpXSspXFwpL2c7XG4gICAgY29uc3QgbGlua1JlZ2V4ID0gL1xcWyhbXlxcW10rKVxcXVxcKChbXlxcKV0rKVxcKS9nO1xuICAgIGNvbnN0IGhlYWRpbmdSZWdleCA9IC8oIytcXHMqKSguKikvZztcbiAgICBjb25zdCBib2xkSXRhbGljc1JlZ2V4ID0gLyhcXCp7MSwyfSkoXFxTKylcXDEvZztcbiAgICBjb25zdCBzdHJpa2V0aHJvdWdoUmVnZXggPSAvKFxcflxcfikoLio/KVxcMS9nO1xuICAgIGNvbnN0IGJsb2NrcXVvdGVSZWdleCA9IC9cXG4oJmd0O3xcXD4pKC4qKS9nO1xuICAgIGNvbnN0IGhvcml6b250YWxSdWxlUmVnZXggPSAvXFxuKChcXC17Myx9KXwoPXszLH0pKS9nO1xuICAgIGNvbnN0IHVub3JkZXJlZExpc3RSZWdleCA9IC8oXFxuXFxzKihcXC18XFwrKVxccy4qKSsvZztcbiAgICBjb25zdCBvcmRlcmVkTGlzdFJlZ2V4ID0gLyhcXG5cXHMqKFswLTldK1xcLilcXHMuKikrL2c7XG4gICAgY29uc3QgcGFyYWdyYXBoUmVnZXggPSAvXFxuKyg/ITxwcmU+KSg/ITxoKSg/ITx1bD4pKD8hPGJsb2NrcXVvdGUpKD8hPGhyKSg/IVxcdCkoW15cXG5dKylcXG4vZztcbiAgICAvLyBmcm9tIG1hcmtlZFxuICAgIGNvbnN0IHRhYmxlID1cbiAgICAgICAgL15cXHMqKFteXFxzXS4qXFx8LiopXFxzezAsM30oPzpcXHxcXHMqKT8oOj8tKzo/XFxzKig/OlxcfFxccyo6Py0rOj9cXHMqKSopXFx8Pyg/OlxccyooKD86KD8hfGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzp8JCkpKikqfCQpL2c7XG4gICAgY29uc3QgcmVnZXhwcyA9IFtcbiAgICAgICAgaW5saW5lQ29kZVJlZ2V4LFxuICAgICAgICBpbWFnZVJlZ2V4LFxuICAgICAgICBsaW5rUmVnZXgsXG4gICAgICAgIGhlYWRpbmdSZWdleCxcbiAgICAgICAgYm9sZEl0YWxpY3NSZWdleCxcbiAgICAgICAgc3RyaWtldGhyb3VnaFJlZ2V4LFxuICAgICAgICBibG9ja3F1b3RlUmVnZXgsXG4gICAgICAgIGhvcml6b250YWxSdWxlUmVnZXgsXG4gICAgICAgIHVub3JkZXJlZExpc3RSZWdleCxcbiAgICAgICAgb3JkZXJlZExpc3RSZWdleCxcbiAgICAgICAgdGFibGVcbiAgICBdO1xuICAgIHJldHVybiByZWdleHBzLnNvbWUocmVnZXhwID0+IHJlZ2V4cC50ZXN0KGNvbnRlbnQpKTtcbn07XG4iXX0=