@worktile/theia 15.3.2 → 16.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 (729) hide show
  1. package/components/contextmenu/contextmenu.component.d.ts +1 -1
  2. package/components/conversion-hint/conversion-hint.component.d.ts +3 -3
  3. package/components/inline-toolbar/inline-toolbar.component.d.ts +3 -4
  4. package/components/listbox/listbox.d.ts +3 -3
  5. package/components/plugin-menu/plugin-menu.component.d.ts +4 -3
  6. package/components/table-select/table-select.component.d.ts +1 -1
  7. package/components/template/template.component.d.ts +2 -2
  8. package/components/toolbar/toolbar.component.d.ts +4 -4
  9. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +2 -2
  10. package/components/toolbar-group/toolbar-group.component.d.ts +5 -6
  11. package/constants/default.d.ts +1 -1
  12. package/core/toolbar-item/base-toolbar-item.d.ts +6 -7
  13. package/core/utils/plugin-menu.d.ts +2 -2
  14. package/editor.component.d.ts +1 -1
  15. package/editor.module.d.ts +1 -1
  16. package/{esm2020 → esm2022}/components/action/prevent-default.mjs +4 -4
  17. package/{esm2020 → esm2022}/components/column-resize/column-resize-notifier.mjs +4 -4
  18. package/{esm2020 → esm2022}/components/column-resize/column-resize.directive.mjs +4 -4
  19. package/{esm2020 → esm2022}/components/column-resize/column-resize.module.mjs +9 -9
  20. package/{esm2020 → esm2022}/components/column-resize/event-dispatcher.mjs +4 -4
  21. package/{esm2020 → esm2022}/components/column-resize/overlay-handle.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/components/column-resize/resizing.store.mjs +4 -4
  23. package/{esm2020 → esm2022}/components/contextmenu/contextmenu.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/components/conversion-hint/conversion-hint.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/components/element/element.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/components/inline-toolbar/inline-toolbar.component.mjs +6 -6
  27. package/esm2022/components/listbox/listbox.mjs +375 -0
  28. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +191 -0
  29. package/{esm2020 → esm2022}/components/table-select/table-select.component.mjs +4 -4
  30. package/esm2022/components/template/template.component.mjs +62 -0
  31. package/{esm2020 → esm2022}/components/text/text.component.mjs +4 -4
  32. package/esm2022/components/toolbar/toolbar.component.mjs +266 -0
  33. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +144 -0
  34. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +122 -0
  35. package/{esm2020 → esm2022}/components/toolbar-item/toolbar-item.component.mjs +6 -6
  36. package/esm2022/constants/auto-format-rules.mjs +167 -0
  37. package/{esm2020 → esm2022}/constants/default.mjs +2 -2
  38. package/esm2022/constants/plugin-menu.mjs +328 -0
  39. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +87 -0
  40. package/{esm2020 → esm2022}/core/utils/combine-plugins.mjs +1 -1
  41. package/esm2022/core/utils/plugin-menu.mjs +33 -0
  42. package/esm2022/custom-types.mjs +2 -0
  43. package/{esm2020 → esm2022}/editor.component.mjs +11 -11
  44. package/esm2022/editor.module.mjs +254 -0
  45. package/esm2022/interfaces/auto-format.mjs +2 -0
  46. package/esm2022/interfaces/editor.mjs +25 -0
  47. package/esm2022/interfaces/plugins/plugin-menu.mjs +19 -0
  48. package/esm2022/interfaces/plugins/with-override.mjs +2 -0
  49. package/esm2022/interfaces/reset-block-type-plugin-options.mjs +2 -0
  50. package/esm2022/interfaces/toolbar.mjs +12 -0
  51. package/{esm2020 → esm2022}/interfaces/view-base.mjs +4 -4
  52. package/esm2022/pipes.mjs +42 -0
  53. package/esm2022/plugins/align/align.editor.mjs +43 -0
  54. package/esm2022/plugins/align/align.plugin.mjs +64 -0
  55. package/{esm2020 → esm2022}/plugins/autoformat/autoformat.plugin.mjs +1 -1
  56. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +14 -0
  57. package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +78 -0
  58. package/esm2022/plugins/blockquote/blockquote.component.mjs +21 -0
  59. package/esm2022/plugins/blockquote/blockquote.editor.mjs +17 -0
  60. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +85 -0
  61. package/{esm2020 → esm2022}/plugins/code/code.component.mjs +4 -4
  62. package/esm2022/plugins/code/code.editor.mjs +48 -0
  63. package/{esm2020 → esm2022}/plugins/code/code.plugin.mjs +1 -1
  64. package/esm2022/plugins/color/color.editor.mjs +27 -0
  65. package/{esm2020 → esm2022}/plugins/color/toolbar-item.component.mjs +4 -4
  66. package/{esm2020 → esm2022}/plugins/common/block-card.plugin.mjs +1 -1
  67. package/{esm2020 → esm2022}/plugins/common/common.plugin.mjs +1 -1
  68. package/{esm2020 → esm2022}/plugins/common/get-fragment.plugin.mjs +1 -1
  69. package/esm2022/plugins/common/history.plugin.mjs +31 -0
  70. package/{esm2020 → esm2022}/plugins/common/insert-data-by-invalid-type.mjs +1 -1
  71. package/{esm2020 → esm2022}/plugins/common/move-selection.plugin.mjs +1 -1
  72. package/{esm2020 → esm2022}/plugins/common/remove-empty.plugin.mjs +1 -1
  73. package/{esm2020 → esm2022}/plugins/common/remove-void.plugin.mjs +1 -1
  74. package/{esm2020 → esm2022}/plugins/common/reset-type.plugin.mjs +1 -1
  75. package/esm2022/plugins/common/transforms.plugin.mjs +18 -0
  76. package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +53 -0
  77. package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +130 -0
  78. package/esm2022/plugins/font-size/font-size.editor.mjs +98 -0
  79. package/esm2022/plugins/heading/heading.editor.mjs +54 -0
  80. package/esm2022/plugins/heading/heading.plugin.mjs +136 -0
  81. package/{esm2020 → esm2022}/plugins/hr/hr.component.mjs +6 -6
  82. package/esm2022/plugins/hr/hr.editor.mjs +16 -0
  83. package/esm2022/plugins/hr/hr.plugin.mjs +56 -0
  84. package/esm2022/plugins/image/image.component.mjs +420 -0
  85. package/esm2022/plugins/image/image.editor.mjs +81 -0
  86. package/esm2022/plugins/indent/indent.editor.mjs +78 -0
  87. package/{esm2020 → esm2022}/plugins/indent/indent.plugin.mjs +1 -1
  88. package/esm2022/plugins/indent/on-keydown-indent.mjs +59 -0
  89. package/esm2022/plugins/inline-code/inline-code.component.mjs +26 -0
  90. package/esm2022/plugins/inline-code/inline-code.editor.mjs +48 -0
  91. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +66 -0
  92. package/esm2022/plugins/link/edit/link-edit.component.mjs +103 -0
  93. package/{esm2020 → esm2022}/plugins/link/hover/link-hover.component.mjs +4 -4
  94. package/esm2022/plugins/link/link.component.mjs +167 -0
  95. package/esm2022/plugins/link/link.editor.mjs +66 -0
  96. package/{esm2020 → esm2022}/plugins/link/link.plugin.mjs +1 -1
  97. package/esm2022/plugins/list/components/bulleted-list.component.mjs +33 -0
  98. package/esm2022/plugins/list/components/list-item.component.mjs +93 -0
  99. package/esm2022/plugins/list/components/numbered-list.component.mjs +39 -0
  100. package/esm2022/plugins/list/list.editor.mjs +126 -0
  101. package/esm2022/plugins/list/list.plugin.mjs +312 -0
  102. package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +39 -0
  103. package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +18 -0
  104. package/esm2022/plugins/list/normalizers/normalize-no.mjs +43 -0
  105. package/esm2022/plugins/list/on-key-down-list.mjs +33 -0
  106. package/esm2022/plugins/list/queries/get-list-item-entry.mjs +28 -0
  107. package/esm2022/plugins/list/queries/get-start-list-item.mjs +27 -0
  108. package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +27 -0
  109. package/esm2022/plugins/list/queries/is-in-list.mjs +6 -0
  110. package/esm2022/plugins/list/queries/is-list-nested.mjs +10 -0
  111. package/esm2022/plugins/list/queries/is-list.mjs +5 -0
  112. package/{esm2020 → esm2022}/plugins/list/queries/is-node-type-list.mjs +1 -1
  113. package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +13 -0
  114. package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +17 -0
  115. package/{esm2020 → esm2022}/plugins/list/queries/is-single-list-item.mjs +1 -1
  116. package/esm2022/plugins/list/transforms/insert-list-data.mjs +72 -0
  117. package/esm2022/plugins/list/transforms/insert-list-item.mjs +72 -0
  118. package/esm2022/plugins/list/transforms/move-list-item-down.mjs +41 -0
  119. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +43 -0
  120. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +30 -0
  121. package/esm2022/plugins/list/transforms/move-list-item-up.mjs +78 -0
  122. package/esm2022/plugins/list/transforms/unwrap-list.mjs +10 -0
  123. package/esm2022/plugins/mark/mark.editor.mjs +28 -0
  124. package/{esm2020 → esm2022}/plugins/mark/mark.plugin.mjs +1 -1
  125. package/{esm2020 → esm2022}/plugins/mention/mention.editor.mjs +1 -1
  126. package/esm2022/plugins/mention/mention.plugin.mjs +91 -0
  127. package/{esm2020 → esm2022}/plugins/mention/suggestion.component.mjs +4 -4
  128. package/{esm2020 → esm2022}/plugins/node-id/node-id.plugin.mjs +1 -1
  129. package/{esm2020 → esm2022}/plugins/normalizers/insert-paragraph-nodes.mjs +1 -1
  130. package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +18 -0
  131. package/{esm2020 → esm2022}/plugins/normalizers/trailing-node.plugin.mjs +1 -1
  132. package/{esm2020 → esm2022}/plugins/paint-format/paint-format.editor.mjs +1 -1
  133. package/{esm2020 → esm2022}/plugins/quick-insert/components/quick-insert.component.mjs +4 -4
  134. package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +68 -0
  135. package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +104 -0
  136. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +104 -0
  137. package/{esm2020 → esm2022}/plugins/table/components/row/row.component.mjs +6 -6
  138. package/{esm2020 → esm2022}/plugins/table/components/table.component.mjs +16 -16
  139. package/{esm2020 → esm2022}/plugins/table/components/td/td.component.mjs +4 -4
  140. package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-options.component.mjs +6 -6
  141. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +189 -0
  142. package/esm2022/plugins/table/table.editor.mjs +209 -0
  143. package/{esm2020 → esm2022}/plugins/table/table.pipe.mjs +7 -7
  144. package/esm2022/plugins/table/table.plugin.mjs +544 -0
  145. package/{esm2020 → esm2022}/plugins/table/table.service.mjs +4 -4
  146. package/esm2022/plugins/table/table.store.mjs +426 -0
  147. package/esm2022/plugins/table/table.types.mjs +60 -0
  148. package/{esm2020 → esm2022}/plugins/table/toolbar-item.component.mjs +6 -6
  149. package/esm2022/plugins/table/transforms/clear-cell.mjs +14 -0
  150. package/esm2022/plugins/table/transforms/clear-table-node.mjs +27 -0
  151. package/esm2022/plugins/table/transforms/insert-column.mjs +69 -0
  152. package/esm2022/plugins/table/transforms/insert-row.mjs +50 -0
  153. package/esm2022/plugins/table/transforms/insert-table.mjs +15 -0
  154. package/esm2022/plugins/table/transforms/remove-column.mjs +51 -0
  155. package/esm2022/plugins/table/transforms/remove-row.mjs +48 -0
  156. package/esm2022/plugins/table/transforms/remove-table.mjs +49 -0
  157. package/esm2022/plugins/table/utils/calc-anchor-position.mjs +25 -0
  158. package/esm2022/plugins/table/utils/cell-position.mjs +60 -0
  159. package/esm2022/plugins/table/utils/create-table-position.mjs +10 -0
  160. package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +69 -0
  161. package/esm2022/plugins/table/utils/get-select-cell-node.mjs +23 -0
  162. package/esm2022/plugins/table/utils/handle-cell.mjs +25 -0
  163. package/esm2022/plugins/table/utils/is-range-in-table.mjs +16 -0
  164. package/esm2022/plugins/table/utils/is-selection-in-table.mjs +51 -0
  165. package/esm2022/plugins/table/utils/merge-cell.mjs +108 -0
  166. package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +45 -0
  167. package/esm2022/plugins/table/utils/split-cell.mjs +29 -0
  168. package/esm2022/plugins/table/utils/table-entry.mjs +21 -0
  169. package/{esm2020 → esm2022}/plugins/todo-item/todo-item.component.mjs +7 -7
  170. package/esm2022/plugins/todo-item/todo-item.editor.mjs +32 -0
  171. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +93 -0
  172. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +83 -0
  173. package/esm2022/queries/anchor-block-entry.mjs +13 -0
  174. package/esm2022/queries/anchor-block.mjs +6 -0
  175. package/esm2022/queries/anchor-inline-entry.mjs +10 -0
  176. package/{esm2020 → esm2022}/queries/find-descendant.mjs +1 -1
  177. package/esm2022/queries/find-node.mjs +45 -0
  178. package/esm2022/queries/get-above-by-type.mjs +14 -0
  179. package/esm2022/queries/get-above.mjs +9 -0
  180. package/esm2022/queries/get-anchor-block-entry.mjs +8 -0
  181. package/esm2022/queries/get-block-above.mjs +10 -0
  182. package/esm2022/queries/get-block-card-above.mjs +10 -0
  183. package/esm2022/queries/get-block-card-cursor.mjs +5 -0
  184. package/esm2022/queries/get-container-blocks.mjs +12 -0
  185. package/esm2022/queries/get-insert-elements-path.mjs +44 -0
  186. package/{esm2020 → esm2022}/queries/get-last-node.mjs +1 -1
  187. package/esm2022/queries/get-node.mjs +10 -0
  188. package/esm2022/queries/get-nodes-by-type.mjs +15 -0
  189. package/esm2022/queries/get-nodes.mjs +7 -0
  190. package/esm2022/queries/get-parent.mjs +12 -0
  191. package/esm2022/queries/get-plain-text.mjs +16 -0
  192. package/esm2022/queries/get-plugin-by-toolbar.mjs +13 -0
  193. package/{esm2020 → esm2022}/queries/get-point-before.mjs +1 -1
  194. package/esm2022/queries/get-point-from-location.mjs +15 -0
  195. package/esm2022/queries/get-rang-from-block-start.mjs +16 -0
  196. package/esm2022/queries/get-range-before.mjs +17 -0
  197. package/{esm2020 → esm2022}/queries/get-selection-marks.mjs +1 -1
  198. package/esm2022/queries/get-selection-nodes-by-type.mjs +30 -0
  199. package/esm2022/queries/get-text.mjs +9 -0
  200. package/esm2022/queries/get-toolbar-disabled.mjs +13 -0
  201. package/esm2022/queries/is-across-blocks.mjs +7 -0
  202. package/esm2022/queries/is-ancestor-empty.mjs +6 -0
  203. package/esm2022/queries/is-block-above-empty.mjs +11 -0
  204. package/esm2022/queries/is-block-active.mjs +8 -0
  205. package/esm2022/queries/is-block-card-cursor.mjs +4 -0
  206. package/{esm2020 → esm2022}/queries/is-block-text-empty-after-selection.mjs +1 -1
  207. package/esm2022/queries/is-contain-nested-type.mjs +29 -0
  208. package/esm2022/queries/is-container-type.mjs +3 -0
  209. package/esm2022/queries/is-empty-content-filter.mjs +23 -0
  210. package/{esm2020 → esm2022}/queries/is-empty-content.mjs +1 -1
  211. package/esm2022/queries/is-empty-paragraph-by-path.mjs +7 -0
  212. package/esm2022/queries/is-empty-paragraph.mjs +28 -0
  213. package/esm2022/queries/is-global-collapsed.mjs +5 -0
  214. package/esm2022/queries/is-include-types.mjs +12 -0
  215. package/esm2022/queries/is-node-type-in.mjs +9 -0
  216. package/esm2022/queries/is-node-type.mjs +15 -0
  217. package/esm2022/queries/is-paragraph.mjs +9 -0
  218. package/esm2022/queries/is-range-across-blocks.mjs +22 -0
  219. package/esm2022/queries/is-start.mjs +6 -0
  220. package/esm2022/queries/some-node.mjs +9 -0
  221. package/{esm2020 → esm2022}/services/context.service.mjs +4 -4
  222. package/{esm2020 → esm2022}/services/table-contextmenu.service.mjs +4 -4
  223. package/{esm2020 → esm2022}/services/toolbar.service.mjs +4 -4
  224. package/{esm2020 → esm2022}/shortcuts/index.mjs +1 -1
  225. package/esm2022/shortcuts/mark.mjs +25 -0
  226. package/esm2022/test/utils/with-editor.mjs +8 -0
  227. package/esm2022/test/utils/with-plugin.mjs +8 -0
  228. package/{esm2020 → esm2022}/transforms/clear-marks.mjs +1 -1
  229. package/esm2022/transforms/close-conversion-hint.mjs +8 -0
  230. package/{esm2020 → esm2022}/transforms/delete-element.mjs +1 -1
  231. package/esm2022/transforms/handle-continual-delete-backward.mjs +18 -0
  232. package/esm2022/transforms/handle-continual-insert-break.mjs +20 -0
  233. package/esm2022/transforms/insert-elements.mjs +38 -0
  234. package/esm2022/transforms/insert-paragraph.mjs +6 -0
  235. package/esm2022/transforms/move-children.mjs +22 -0
  236. package/esm2022/transforms/on-keydown-reset-block-type.mjs +22 -0
  237. package/{esm2020 → esm2022}/transforms/set-end-selection.mjs +1 -1
  238. package/esm2022/transforms/set-marks.mjs +9 -0
  239. package/esm2022/transforms/set-node.mjs +6 -0
  240. package/esm2022/transforms/un-hang-range.mjs +11 -0
  241. package/esm2022/transforms/un-wrap.mjs +12 -0
  242. package/esm2022/transforms/unwrap-nodes-by-type.mjs +14 -0
  243. package/{esm2020 → esm2022}/utils/auto-focus.mjs +1 -1
  244. package/esm2022/utils/copy-node.mjs +32 -0
  245. package/esm2022/utils/create-empty-paragraph.mjs +5 -0
  246. package/esm2022/utils/create-paragraph.mjs +14 -0
  247. package/{esm2020 → esm2022}/utils/dom.mjs +1 -1
  248. package/esm2022/utils/editor-uuid.mjs +8 -0
  249. package/esm2022/utils/fragment.mjs +74 -0
  250. package/esm2022/utils/get-editable-element-height.mjs +6 -0
  251. package/esm2022/utils/get-toolbar-class.mjs +6 -0
  252. package/esm2022/utils/index.mjs +20 -0
  253. package/esm2022/utils/insert-data-by-invalid-type.mjs +62 -0
  254. package/esm2022/utils/is-clean-empty-paragraph.mjs +37 -0
  255. package/esm2022/utils/is-inline.mjs +9 -0
  256. package/{esm2020 → esm2022}/utils/match.mjs +1 -1
  257. package/esm2022/utils/merge-element-options.mjs +19 -0
  258. package/esm2022/utils/scroll-into-view.mjs +38 -0
  259. package/{fesm2020 → fesm2022}/worktile-theia.mjs +398 -389
  260. package/fesm2022/worktile-theia.mjs.map +1 -0
  261. package/interfaces/auto-format.d.ts +5 -5
  262. package/interfaces/editor.d.ts +8 -6
  263. package/interfaces/plugins/plugin-menu.d.ts +5 -5
  264. package/interfaces/plugins/with-override.d.ts +2 -2
  265. package/interfaces/reset-block-type-plugin-options.d.ts +3 -3
  266. package/interfaces/toolbar.d.ts +5 -5
  267. package/interfaces/view-base.d.ts +3 -2
  268. package/package.json +11 -17
  269. package/pipes.d.ts +3 -3
  270. package/plugins/align/align.editor.d.ts +4 -4
  271. package/plugins/align/align.plugin.d.ts +2 -1
  272. package/plugins/autoformat/autoformat.plugin.d.ts +2 -1
  273. package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -4
  274. package/plugins/autoformat/transforms/auto-format-inline.d.ts +2 -2
  275. package/plugins/blockquote/blockquote.component.d.ts +3 -3
  276. package/plugins/blockquote/blockquote.editor.d.ts +2 -2
  277. package/plugins/blockquote/blockquote.plugin.d.ts +2 -1
  278. package/plugins/code/code.component.d.ts +2 -3
  279. package/plugins/code/code.editor.d.ts +3 -3
  280. package/plugins/code/code.plugin.d.ts +2 -1
  281. package/plugins/color/color.editor.d.ts +3 -3
  282. package/plugins/common/block-card.plugin.d.ts +2 -1
  283. package/plugins/common/common.plugin.d.ts +2 -1
  284. package/plugins/common/get-fragment.plugin.d.ts +2 -1
  285. package/plugins/common/history.plugin.d.ts +6 -6
  286. package/plugins/common/insert-data-by-invalid-type.d.ts +2 -1
  287. package/plugins/common/move-selection.plugin.d.ts +2 -1
  288. package/plugins/common/remove-empty.plugin.d.ts +2 -1
  289. package/plugins/common/remove-void.plugin.d.ts +2 -1
  290. package/plugins/common/reset-type.plugin.d.ts +2 -1
  291. package/plugins/common/transforms.plugin.d.ts +2 -1
  292. package/plugins/deserialize/deserialize-html.plugin.d.ts +2 -1
  293. package/plugins/deserialize/deserialize-md.plugin.d.ts +2 -1
  294. package/plugins/font-size/font-size.editor.d.ts +3 -4
  295. package/plugins/heading/heading.editor.d.ts +3 -4
  296. package/plugins/heading/heading.plugin.d.ts +2 -2
  297. package/plugins/hr/hr.component.d.ts +3 -3
  298. package/plugins/hr/hr.editor.d.ts +3 -3
  299. package/plugins/hr/hr.plugin.d.ts +2 -1
  300. package/plugins/image/image.component.d.ts +2 -3
  301. package/plugins/image/image.editor.d.ts +8 -7
  302. package/plugins/indent/indent.editor.d.ts +3 -4
  303. package/plugins/indent/indent.plugin.d.ts +2 -1
  304. package/plugins/indent/on-keydown-indent.d.ts +2 -2
  305. package/plugins/inline-code/inline-code.component.d.ts +2 -3
  306. package/plugins/inline-code/inline-code.editor.d.ts +6 -5
  307. package/plugins/inline-code/inline-code.plugin.d.ts +2 -1
  308. package/plugins/link/edit/link-edit.component.d.ts +4 -3
  309. package/plugins/link/hover/link-hover.component.d.ts +1 -1
  310. package/plugins/link/link.component.d.ts +2 -3
  311. package/plugins/link/link.editor.d.ts +5 -5
  312. package/plugins/link/link.plugin.d.ts +2 -1
  313. package/plugins/list/components/bulleted-list.component.d.ts +2 -3
  314. package/plugins/list/components/list-item.component.d.ts +3 -3
  315. package/plugins/list/components/numbered-list.component.d.ts +2 -3
  316. package/plugins/list/list.editor.d.ts +11 -9
  317. package/plugins/list/list.plugin.d.ts +2 -1
  318. package/plugins/list/normalizers/get-list-normalizer.d.ts +3 -2
  319. package/plugins/list/normalizers/normalize-list-item.d.ts +3 -2
  320. package/plugins/list/normalizers/normalize-no.d.ts +3 -2
  321. package/plugins/list/on-key-down-list.d.ts +2 -2
  322. package/plugins/list/queries/get-list-item-entry.d.ts +3 -2
  323. package/plugins/list/queries/get-start-list-item.d.ts +2 -2
  324. package/plugins/list/queries/has-list-in-list-item.d.ts +5 -4
  325. package/plugins/list/queries/is-in-list.d.ts +3 -2
  326. package/plugins/list/queries/is-list-nested.d.ts +3 -2
  327. package/plugins/list/queries/is-list.d.ts +2 -2
  328. package/plugins/list/queries/is-node-type-list.d.ts +2 -1
  329. package/plugins/list/queries/is-selection-at-list-item-start.d.ts +2 -2
  330. package/plugins/list/queries/is-selection-in-same-list-item.d.ts +2 -2
  331. package/plugins/list/transforms/insert-list-data.d.ts +5 -3
  332. package/plugins/list/transforms/insert-list-item.d.ts +2 -2
  333. package/plugins/list/transforms/move-list-item-down.d.ts +3 -2
  334. package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +3 -2
  335. package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +3 -2
  336. package/plugins/list/transforms/move-list-item-up.d.ts +3 -2
  337. package/plugins/list/transforms/unwrap-list.d.ts +2 -2
  338. package/plugins/mark/mark.editor.d.ts +3 -2
  339. package/plugins/mark/mark.plugin.d.ts +2 -1
  340. package/plugins/mention/mention.plugin.d.ts +2 -1
  341. package/plugins/mention/suggestion.component.d.ts +1 -1
  342. package/plugins/node-id/node-id.plugin.d.ts +2 -2
  343. package/plugins/normalizers/insert-paragraph-nodes.d.ts +2 -1
  344. package/plugins/normalizers/trailing-node.plugin.d.ts +2 -2
  345. package/plugins/quick-insert/components/quick-insert.component.d.ts +3 -3
  346. package/plugins/quick-insert/quick-insert.editor.d.ts +6 -6
  347. package/plugins/quick-insert/quick-insert.plugin.d.ts +3 -3
  348. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +3 -3
  349. package/plugins/table/components/table.component.d.ts +2 -3
  350. package/plugins/table/components/td/td.component.d.ts +2 -2
  351. package/plugins/table/components/toolbar/table-options.component.d.ts +3 -3
  352. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +3 -3
  353. package/plugins/table/table.editor.d.ts +11 -11
  354. package/plugins/table/table.store.d.ts +12 -12
  355. package/plugins/table/table.types.d.ts +4 -3
  356. package/plugins/table/transforms/clear-cell.d.ts +3 -2
  357. package/plugins/table/transforms/clear-table-node.d.ts +2 -2
  358. package/plugins/table/transforms/insert-column.d.ts +5 -4
  359. package/plugins/table/transforms/insert-row.d.ts +2 -2
  360. package/plugins/table/transforms/insert-table.d.ts +3 -2
  361. package/plugins/table/transforms/remove-column.d.ts +2 -2
  362. package/plugins/table/transforms/remove-row.d.ts +2 -2
  363. package/plugins/table/transforms/remove-table.d.ts +2 -2
  364. package/plugins/table/utils/calc-anchor-position.d.ts +2 -2
  365. package/plugins/table/utils/cell-position.d.ts +3 -3
  366. package/plugins/table/utils/create-table-position.d.ts +3 -2
  367. package/plugins/table/utils/get-min-max-cell-index.d.ts +2 -2
  368. package/plugins/table/utils/get-select-cell-node.d.ts +3 -3
  369. package/plugins/table/utils/handle-cell.d.ts +3 -2
  370. package/plugins/table/utils/is-range-in-table.d.ts +3 -2
  371. package/plugins/table/utils/is-selection-in-table.d.ts +3 -3
  372. package/plugins/table/utils/merge-cell.d.ts +6 -5
  373. package/plugins/table/utils/set-menu-cell-invisibility.d.ts +2 -2
  374. package/plugins/table/utils/split-cell.d.ts +3 -3
  375. package/plugins/table/utils/table-entry.d.ts +5 -5
  376. package/plugins/todo-item/todo-item.component.d.ts +2 -3
  377. package/plugins/todo-item/todo-item.editor.d.ts +3 -3
  378. package/plugins/todo-item/todo-item.plugin.d.ts +2 -1
  379. package/plugins/vertical-align/toolbar-item.component.d.ts +2 -3
  380. package/queries/anchor-block-entry.d.ts +4 -2
  381. package/queries/anchor-block.d.ts +3 -2
  382. package/queries/anchor-inline-entry.d.ts +3 -2
  383. package/queries/find-descendant.d.ts +3 -2
  384. package/queries/find-node.d.ts +3 -3
  385. package/queries/get-above-by-type.d.ts +2 -3
  386. package/queries/get-above.d.ts +3 -3
  387. package/queries/get-anchor-block-entry.d.ts +4 -2
  388. package/queries/get-block-above.d.ts +3 -3
  389. package/queries/get-block-card-above.d.ts +3 -3
  390. package/queries/get-block-card-cursor.d.ts +2 -2
  391. package/queries/get-container-blocks.d.ts +2 -2
  392. package/queries/get-last-node.d.ts +3 -2
  393. package/queries/get-node.d.ts +3 -2
  394. package/queries/get-nodes-by-type.d.ts +2 -3
  395. package/queries/get-nodes.d.ts +2 -3
  396. package/queries/get-parent.d.ts +3 -3
  397. package/queries/get-plain-text.d.ts +2 -2
  398. package/queries/get-plugin-by-toolbar.d.ts +2 -3
  399. package/queries/get-point-before.d.ts +3 -2
  400. package/queries/get-point-from-location.d.ts +3 -2
  401. package/queries/get-rang-from-block-start.d.ts +2 -3
  402. package/queries/get-range-before.d.ts +3 -2
  403. package/queries/get-selection-marks.d.ts +2 -2
  404. package/queries/get-selection-nodes-by-type.d.ts +3 -2
  405. package/queries/get-text.d.ts +3 -2
  406. package/queries/get-toolbar-disabled.d.ts +2 -3
  407. package/queries/is-across-blocks.d.ts +3 -2
  408. package/queries/is-ancestor-empty.d.ts +3 -2
  409. package/queries/is-block-above-empty.d.ts +2 -2
  410. package/queries/is-block-active.d.ts +2 -2
  411. package/queries/is-block-card-cursor.d.ts +2 -2
  412. package/queries/is-block-text-empty-after-selection.d.ts +2 -2
  413. package/queries/is-contain-nested-type.d.ts +2 -2
  414. package/queries/is-container-type.d.ts +3 -2
  415. package/queries/is-empty-content-filter.d.ts +2 -2
  416. package/queries/is-empty-paragraph-by-path.d.ts +3 -2
  417. package/queries/is-empty-paragraph.d.ts +6 -4
  418. package/queries/is-global-collapsed.d.ts +2 -2
  419. package/queries/is-include-types.d.ts +2 -2
  420. package/queries/is-node-type-in.d.ts +2 -3
  421. package/queries/is-paragraph.d.ts +2 -2
  422. package/queries/is-range-across-blocks.d.ts +3 -3
  423. package/queries/is-start.d.ts +3 -2
  424. package/queries/some-node.d.ts +3 -2
  425. package/shortcuts/index.d.ts +2 -2
  426. package/shortcuts/mark.d.ts +2 -2
  427. package/test/utils/with-editor.d.ts +2 -0
  428. package/transforms/clear-marks.d.ts +2 -2
  429. package/transforms/close-conversion-hint.d.ts +2 -2
  430. package/transforms/delete-element.d.ts +3 -2
  431. package/transforms/handle-continual-delete-backward.d.ts +4 -3
  432. package/transforms/handle-continual-insert-break.d.ts +3 -3
  433. package/transforms/insert-elements.d.ts +3 -2
  434. package/transforms/insert-paragraph.d.ts +3 -2
  435. package/transforms/move-children.d.ts +3 -2
  436. package/transforms/on-keydown-reset-block-type.d.ts +2 -2
  437. package/transforms/set-end-selection.d.ts +2 -2
  438. package/transforms/set-marks.d.ts +3 -2
  439. package/transforms/set-node.d.ts +3 -2
  440. package/transforms/un-hang-range.d.ts +3 -2
  441. package/transforms/un-wrap.d.ts +2 -2
  442. package/transforms/unwrap-nodes-by-type.d.ts +2 -3
  443. package/utils/auto-focus.d.ts +2 -2
  444. package/utils/copy-node.d.ts +5 -3
  445. package/utils/create-paragraph.d.ts +2 -0
  446. package/utils/dom.d.ts +2 -2
  447. package/utils/editor-uuid.d.ts +3 -3
  448. package/utils/fragment.d.ts +7 -5
  449. package/utils/get-editable-element-height.d.ts +2 -2
  450. package/utils/get-toolbar-class.d.ts +2 -2
  451. package/utils/index.d.ts +1 -0
  452. package/utils/is-clean-empty-paragraph.d.ts +4 -3
  453. package/utils/is-inline.d.ts +3 -2
  454. package/utils/match.d.ts +2 -2
  455. package/utils/merge-element-options.d.ts +1 -1
  456. package/utils/scroll-into-view.d.ts +2 -2
  457. package/esm2020/components/listbox/listbox.mjs +0 -375
  458. package/esm2020/components/plugin-menu/plugin-menu.component.mjs +0 -191
  459. package/esm2020/components/template/template.component.mjs +0 -62
  460. package/esm2020/components/toolbar/toolbar.component.mjs +0 -266
  461. package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -144
  462. package/esm2020/components/toolbar-group/toolbar-group.component.mjs +0 -122
  463. package/esm2020/constants/auto-format-rules.mjs +0 -167
  464. package/esm2020/constants/plugin-menu.mjs +0 -325
  465. package/esm2020/core/toolbar-item/base-toolbar-item.mjs +0 -87
  466. package/esm2020/core/utils/plugin-menu.mjs +0 -33
  467. package/esm2020/custom-types.mjs +0 -2
  468. package/esm2020/editor.module.mjs +0 -254
  469. package/esm2020/interfaces/auto-format.mjs +0 -2
  470. package/esm2020/interfaces/editor.mjs +0 -25
  471. package/esm2020/interfaces/plugins/plugin-menu.mjs +0 -19
  472. package/esm2020/interfaces/plugins/with-override.mjs +0 -2
  473. package/esm2020/interfaces/reset-block-type-plugin-options.mjs +0 -2
  474. package/esm2020/interfaces/toolbar.mjs +0 -12
  475. package/esm2020/pipes.mjs +0 -42
  476. package/esm2020/plugins/align/align.editor.mjs +0 -43
  477. package/esm2020/plugins/align/align.plugin.mjs +0 -64
  478. package/esm2020/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
  479. package/esm2020/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
  480. package/esm2020/plugins/blockquote/blockquote.component.mjs +0 -21
  481. package/esm2020/plugins/blockquote/blockquote.editor.mjs +0 -20
  482. package/esm2020/plugins/blockquote/blockquote.plugin.mjs +0 -85
  483. package/esm2020/plugins/code/code.editor.mjs +0 -48
  484. package/esm2020/plugins/color/color.editor.mjs +0 -27
  485. package/esm2020/plugins/common/history.plugin.mjs +0 -31
  486. package/esm2020/plugins/common/transforms.plugin.mjs +0 -18
  487. package/esm2020/plugins/deserialize/deserialize-html.plugin.mjs +0 -53
  488. package/esm2020/plugins/deserialize/deserialize-md.plugin.mjs +0 -130
  489. package/esm2020/plugins/font-size/font-size.editor.mjs +0 -98
  490. package/esm2020/plugins/heading/heading.editor.mjs +0 -54
  491. package/esm2020/plugins/heading/heading.plugin.mjs +0 -136
  492. package/esm2020/plugins/hr/hr.editor.mjs +0 -16
  493. package/esm2020/plugins/hr/hr.plugin.mjs +0 -56
  494. package/esm2020/plugins/image/image.component.mjs +0 -420
  495. package/esm2020/plugins/image/image.editor.mjs +0 -81
  496. package/esm2020/plugins/indent/indent.editor.mjs +0 -78
  497. package/esm2020/plugins/indent/on-keydown-indent.mjs +0 -59
  498. package/esm2020/plugins/inline-code/inline-code.component.mjs +0 -26
  499. package/esm2020/plugins/inline-code/inline-code.editor.mjs +0 -48
  500. package/esm2020/plugins/inline-code/inline-code.plugin.mjs +0 -66
  501. package/esm2020/plugins/link/edit/link-edit.component.mjs +0 -103
  502. package/esm2020/plugins/link/link.component.mjs +0 -167
  503. package/esm2020/plugins/link/link.editor.mjs +0 -66
  504. package/esm2020/plugins/list/components/bulleted-list.component.mjs +0 -33
  505. package/esm2020/plugins/list/components/list-item.component.mjs +0 -93
  506. package/esm2020/plugins/list/components/numbered-list.component.mjs +0 -39
  507. package/esm2020/plugins/list/list.editor.mjs +0 -126
  508. package/esm2020/plugins/list/list.plugin.mjs +0 -312
  509. package/esm2020/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
  510. package/esm2020/plugins/list/normalizers/normalize-list-item.mjs +0 -18
  511. package/esm2020/plugins/list/normalizers/normalize-no.mjs +0 -43
  512. package/esm2020/plugins/list/on-key-down-list.mjs +0 -33
  513. package/esm2020/plugins/list/queries/get-list-item-entry.mjs +0 -28
  514. package/esm2020/plugins/list/queries/get-start-list-item.mjs +0 -27
  515. package/esm2020/plugins/list/queries/has-list-in-list-item.mjs +0 -27
  516. package/esm2020/plugins/list/queries/is-in-list.mjs +0 -6
  517. package/esm2020/plugins/list/queries/is-list-nested.mjs +0 -10
  518. package/esm2020/plugins/list/queries/is-list.mjs +0 -5
  519. package/esm2020/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
  520. package/esm2020/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
  521. package/esm2020/plugins/list/transforms/insert-list-data.mjs +0 -72
  522. package/esm2020/plugins/list/transforms/insert-list-item.mjs +0 -73
  523. package/esm2020/plugins/list/transforms/move-list-item-down.mjs +0 -41
  524. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
  525. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
  526. package/esm2020/plugins/list/transforms/move-list-item-up.mjs +0 -78
  527. package/esm2020/plugins/list/transforms/unwrap-list.mjs +0 -10
  528. package/esm2020/plugins/mark/mark.editor.mjs +0 -28
  529. package/esm2020/plugins/mention/mention.plugin.mjs +0 -91
  530. package/esm2020/plugins/normalizers/remove-empty-nodes.mjs +0 -18
  531. package/esm2020/plugins/quick-insert/quick-insert.editor.mjs +0 -68
  532. package/esm2020/plugins/quick-insert/quick-insert.plugin.mjs +0 -104
  533. package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -104
  534. package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -189
  535. package/esm2020/plugins/table/table.editor.mjs +0 -209
  536. package/esm2020/plugins/table/table.plugin.mjs +0 -544
  537. package/esm2020/plugins/table/table.store.mjs +0 -426
  538. package/esm2020/plugins/table/table.types.mjs +0 -60
  539. package/esm2020/plugins/table/transforms/clear-cell.mjs +0 -14
  540. package/esm2020/plugins/table/transforms/clear-table-node.mjs +0 -27
  541. package/esm2020/plugins/table/transforms/insert-column.mjs +0 -69
  542. package/esm2020/plugins/table/transforms/insert-row.mjs +0 -50
  543. package/esm2020/plugins/table/transforms/insert-table.mjs +0 -15
  544. package/esm2020/plugins/table/transforms/remove-column.mjs +0 -51
  545. package/esm2020/plugins/table/transforms/remove-row.mjs +0 -48
  546. package/esm2020/plugins/table/transforms/remove-table.mjs +0 -49
  547. package/esm2020/plugins/table/utils/calc-anchor-position.mjs +0 -25
  548. package/esm2020/plugins/table/utils/cell-position.mjs +0 -60
  549. package/esm2020/plugins/table/utils/create-table-position.mjs +0 -10
  550. package/esm2020/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
  551. package/esm2020/plugins/table/utils/get-select-cell-node.mjs +0 -23
  552. package/esm2020/plugins/table/utils/handle-cell.mjs +0 -25
  553. package/esm2020/plugins/table/utils/is-range-in-table.mjs +0 -16
  554. package/esm2020/plugins/table/utils/is-selection-in-table.mjs +0 -51
  555. package/esm2020/plugins/table/utils/merge-cell.mjs +0 -108
  556. package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
  557. package/esm2020/plugins/table/utils/split-cell.mjs +0 -29
  558. package/esm2020/plugins/table/utils/table-entry.mjs +0 -21
  559. package/esm2020/plugins/todo-item/todo-item.editor.mjs +0 -32
  560. package/esm2020/plugins/todo-item/todo-item.plugin.mjs +0 -93
  561. package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +0 -83
  562. package/esm2020/queries/anchor-block-entry.mjs +0 -13
  563. package/esm2020/queries/anchor-block.mjs +0 -6
  564. package/esm2020/queries/anchor-inline-entry.mjs +0 -10
  565. package/esm2020/queries/find-node.mjs +0 -45
  566. package/esm2020/queries/get-above-by-type.mjs +0 -14
  567. package/esm2020/queries/get-above.mjs +0 -9
  568. package/esm2020/queries/get-anchor-block-entry.mjs +0 -8
  569. package/esm2020/queries/get-block-above.mjs +0 -10
  570. package/esm2020/queries/get-block-card-above.mjs +0 -10
  571. package/esm2020/queries/get-block-card-cursor.mjs +0 -5
  572. package/esm2020/queries/get-container-blocks.mjs +0 -12
  573. package/esm2020/queries/get-insert-elements-path.mjs +0 -44
  574. package/esm2020/queries/get-node.mjs +0 -10
  575. package/esm2020/queries/get-nodes-by-type.mjs +0 -15
  576. package/esm2020/queries/get-nodes.mjs +0 -7
  577. package/esm2020/queries/get-parent.mjs +0 -12
  578. package/esm2020/queries/get-plain-text.mjs +0 -16
  579. package/esm2020/queries/get-plugin-by-toolbar.mjs +0 -13
  580. package/esm2020/queries/get-point-from-location.mjs +0 -15
  581. package/esm2020/queries/get-rang-from-block-start.mjs +0 -16
  582. package/esm2020/queries/get-range-before.mjs +0 -17
  583. package/esm2020/queries/get-selection-nodes-by-type.mjs +0 -30
  584. package/esm2020/queries/get-text.mjs +0 -9
  585. package/esm2020/queries/get-toolbar-disabled.mjs +0 -13
  586. package/esm2020/queries/is-across-blocks.mjs +0 -7
  587. package/esm2020/queries/is-ancestor-empty.mjs +0 -6
  588. package/esm2020/queries/is-block-above-empty.mjs +0 -11
  589. package/esm2020/queries/is-block-active.mjs +0 -8
  590. package/esm2020/queries/is-block-card-cursor.mjs +0 -4
  591. package/esm2020/queries/is-contain-nested-type.mjs +0 -29
  592. package/esm2020/queries/is-container-type.mjs +0 -3
  593. package/esm2020/queries/is-empty-content-filter.mjs +0 -23
  594. package/esm2020/queries/is-empty-paragraph-by-path.mjs +0 -7
  595. package/esm2020/queries/is-empty-paragraph.mjs +0 -28
  596. package/esm2020/queries/is-global-collapsed.mjs +0 -5
  597. package/esm2020/queries/is-include-types.mjs +0 -12
  598. package/esm2020/queries/is-node-type-in.mjs +0 -9
  599. package/esm2020/queries/is-node-type.mjs +0 -15
  600. package/esm2020/queries/is-paragraph.mjs +0 -9
  601. package/esm2020/queries/is-range-across-blocks.mjs +0 -22
  602. package/esm2020/queries/is-start.mjs +0 -6
  603. package/esm2020/queries/some-node.mjs +0 -9
  604. package/esm2020/shortcuts/mark.mjs +0 -25
  605. package/esm2020/test/utils/with-plugin.mjs +0 -11
  606. package/esm2020/transforms/close-conversion-hint.mjs +0 -8
  607. package/esm2020/transforms/handle-continual-delete-backward.mjs +0 -18
  608. package/esm2020/transforms/handle-continual-insert-break.mjs +0 -20
  609. package/esm2020/transforms/insert-elements.mjs +0 -38
  610. package/esm2020/transforms/insert-paragraph.mjs +0 -6
  611. package/esm2020/transforms/move-children.mjs +0 -22
  612. package/esm2020/transforms/on-keydown-reset-block-type.mjs +0 -23
  613. package/esm2020/transforms/set-marks.mjs +0 -9
  614. package/esm2020/transforms/set-node.mjs +0 -6
  615. package/esm2020/transforms/un-hang-range.mjs +0 -11
  616. package/esm2020/transforms/un-wrap.mjs +0 -12
  617. package/esm2020/transforms/unwrap-nodes-by-type.mjs +0 -14
  618. package/esm2020/utils/copy-node.mjs +0 -32
  619. package/esm2020/utils/create-empty-paragraph.mjs +0 -14
  620. package/esm2020/utils/editor-uuid.mjs +0 -8
  621. package/esm2020/utils/fragment.mjs +0 -74
  622. package/esm2020/utils/get-editable-element-height.mjs +0 -6
  623. package/esm2020/utils/get-toolbar-class.mjs +0 -6
  624. package/esm2020/utils/index.mjs +0 -19
  625. package/esm2020/utils/insert-data-by-invalid-type.mjs +0 -62
  626. package/esm2020/utils/is-clean-empty-paragraph.mjs +0 -37
  627. package/esm2020/utils/is-inline.mjs +0 -9
  628. package/esm2020/utils/merge-element-options.mjs +0 -19
  629. package/esm2020/utils/scroll-into-view.mjs +0 -38
  630. package/fesm2015/worktile-theia.mjs +0 -16674
  631. package/fesm2015/worktile-theia.mjs.map +0 -1
  632. package/fesm2020/worktile-theia.mjs.map +0 -1
  633. /package/{esm2020 → esm2022}/components/column-resize/resize-ref.mjs +0 -0
  634. /package/{esm2020 → esm2022}/components/column-resize/selectors.mjs +0 -0
  635. /package/{esm2020 → esm2022}/components/index.mjs +0 -0
  636. /package/{esm2020 → esm2022}/components/listbox/listbox.type.mjs +0 -0
  637. /package/{esm2020 → esm2022}/constants/code.mjs +0 -0
  638. /package/{esm2020 → esm2022}/constants/color-select.mjs +0 -0
  639. /package/{esm2020 → esm2022}/constants/error.mjs +0 -0
  640. /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
  641. /package/{esm2020 → esm2022}/constants/node-types.mjs +0 -0
  642. /package/{esm2020 → esm2022}/constants/selector.mjs +0 -0
  643. /package/{esm2020 → esm2022}/constants/toolbar.mjs +0 -0
  644. /package/{esm2020 → esm2022}/core/create-plugin.mjs +0 -0
  645. /package/{esm2020 → esm2022}/core/create-toolbar.mjs +0 -0
  646. /package/{esm2020 → esm2022}/core/index.mjs +0 -0
  647. /package/{esm2020 → esm2022}/core/utils/flatten-deep-plugins.mjs +0 -0
  648. /package/{esm2020 → esm2022}/core/utils/get-plugin-options.mjs +0 -0
  649. /package/{esm2020 → esm2022}/core/utils/get-plugin.mjs +0 -0
  650. /package/{esm2020 → esm2022}/core/utils/get-plugins.mjs +0 -0
  651. /package/{esm2020 → esm2022}/core/utils/index.mjs +0 -0
  652. /package/{esm2020 → esm2022}/core/utils/merge-array.mjs +0 -0
  653. /package/{esm2020 → esm2022}/core/utils/merge-deep-plugins.mjs +0 -0
  654. /package/{esm2020 → esm2022}/core/utils/merge-options.mjs +0 -0
  655. /package/{esm2020 → esm2022}/core/utils/nested-structure-by-key.mjs +0 -0
  656. /package/{esm2020 → esm2022}/core/utils/plugins-by-key.mjs +0 -0
  657. /package/{esm2020 → esm2022}/core/with-theia.mjs +0 -0
  658. /package/{esm2020 → esm2022}/interfaces/element.mjs +0 -0
  659. /package/{esm2020 → esm2022}/interfaces/image.mjs +0 -0
  660. /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
  661. /package/{esm2020 → esm2022}/interfaces/plugins/index.mjs +0 -0
  662. /package/{esm2020 → esm2022}/interfaces/plugins/no-infer.mjs +0 -0
  663. /package/{esm2020 → esm2022}/interfaces/plugins/plugin-key.mjs +0 -0
  664. /package/{esm2020 → esm2022}/interfaces/plugins/plugins.mjs +0 -0
  665. /package/{esm2020 → esm2022}/interfaces/upload.mjs +0 -0
  666. /package/{esm2020 → esm2022}/interfaces/utility/index.mjs +0 -0
  667. /package/{esm2020 → esm2022}/interfaces/utility/nested-structure-by-key.mjs +0 -0
  668. /package/{esm2020 → esm2022}/interfaces/utility/override-by-key.mjs +0 -0
  669. /package/{esm2020 → esm2022}/interfaces/utility/types.mjs +0 -0
  670. /package/{esm2020 → esm2022}/interfaces/valid-children-types.mjs +0 -0
  671. /package/{esm2020 → esm2022}/plugins/color/color.plugin.mjs +0 -0
  672. /package/{esm2020 → esm2022}/plugins/image/image.plugin.mjs +0 -0
  673. /package/{esm2020 → esm2022}/plugins/index.mjs +0 -0
  674. /package/{esm2020 → esm2022}/plugins/link/link.types.mjs +0 -0
  675. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-sublist.mjs +0 -0
  676. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-types.mjs +0 -0
  677. /package/{esm2020 → esm2022}/plugins/list/types.mjs +0 -0
  678. /package/{esm2020 → esm2022}/plugins/mention/index.mjs +0 -0
  679. /package/{esm2020 → esm2022}/plugins/mention/mention.type.mjs +0 -0
  680. /package/{esm2020 → esm2022}/plugins/public-api.mjs +0 -0
  681. /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.plugin.mjs +0 -0
  682. /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.types.mjs +0 -0
  683. /package/{esm2020 → esm2022}/plugins/table/transforms/index.mjs +0 -0
  684. /package/{esm2020 → esm2022}/plugins/table/utils/add-columns.mjs +0 -0
  685. /package/{esm2020 → esm2022}/plugins/table/utils/calc-span.mjs +0 -0
  686. /package/{esm2020 → esm2022}/plugins/table/utils/calculate-table.mjs +0 -0
  687. /package/{esm2020 → esm2022}/plugins/table/utils/create-cell.mjs +0 -0
  688. /package/{esm2020 → esm2022}/plugins/table/utils/create-row.mjs +0 -0
  689. /package/{esm2020 → esm2022}/plugins/table/utils/create-table.mjs +0 -0
  690. /package/{esm2020 → esm2022}/plugins/table/utils/get-grid-columns.mjs +0 -0
  691. /package/{esm2020 → esm2022}/plugins/table/utils/index.mjs +0 -0
  692. /package/{esm2020 → esm2022}/plugins/table/utils/is-header-row.mjs +0 -0
  693. /package/{esm2020 → esm2022}/plugins/table/utils/is-legal-table.mjs +0 -0
  694. /package/{esm2020 → esm2022}/plugins/table/utils/is-virtual-key.mjs +0 -0
  695. /package/{esm2020 → esm2022}/plugins/table/utils/next-path.mjs +0 -0
  696. /package/{esm2020 → esm2022}/plugins/table/utils/normalize-table.mjs +0 -0
  697. /package/{esm2020 → esm2022}/plugins/table/utils/remove-columns.mjs +0 -0
  698. /package/{esm2020 → esm2022}/plugins/table/utils/remove-row-column.mjs +0 -0
  699. /package/{esm2020 → esm2022}/plugins/table/utils/set-cells-background-color.mjs +0 -0
  700. /package/{esm2020 → esm2022}/plugins/table/utils/set-node-options.mjs +0 -0
  701. /package/{esm2020 → esm2022}/plugins/table/utils/table-position.mjs +0 -0
  702. /package/{esm2020 → esm2022}/plugins/vertical-align/vertical-align.editor.mjs +0 -0
  703. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  704. /package/{esm2020 → esm2022}/queries/find-path.mjs +0 -0
  705. /package/{esm2020 → esm2022}/queries/get-directly-parent.mjs +0 -0
  706. /package/{esm2020 → esm2022}/queries/get-last-child-path.mjs +0 -0
  707. /package/{esm2020 → esm2022}/queries/get-next-sibling-nodes.mjs +0 -0
  708. /package/{esm2020 → esm2022}/queries/get-previous-path.mjs +0 -0
  709. /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
  710. /package/{esm2020 → esm2022}/queries/is-ancestor.mjs +0 -0
  711. /package/{esm2020 → esm2022}/queries/is-collapsed.mjs +0 -0
  712. /package/{esm2020 → esm2022}/queries/is-descendant.mjs +0 -0
  713. /package/{esm2020 → esm2022}/queries/is-first-child.mjs +0 -0
  714. /package/{esm2020 → esm2022}/queries/is-point-at-root.mjs +0 -0
  715. /package/{esm2020 → esm2022}/queries/is-range-at-root.mjs +0 -0
  716. /package/{esm2020 → esm2022}/test/index.mjs +0 -0
  717. /package/{esm2020 → esm2022}/transforms/apply-deep-to-nodes.mjs +0 -0
  718. /package/{esm2020 → esm2022}/transforms/index.mjs +0 -0
  719. /package/{esm2020 → esm2022}/transforms/merge-deep-to-nodes.mjs +0 -0
  720. /package/{esm2020 → esm2022}/utils/blob.mjs +0 -0
  721. /package/{esm2020 → esm2022}/utils/cast-array.mjs +0 -0
  722. /package/{esm2020 → esm2022}/utils/color-picker.mjs +0 -0
  723. /package/{esm2020 → esm2022}/utils/common.mjs +0 -0
  724. /package/{esm2020 → esm2022}/utils/data-transform.mjs +0 -0
  725. /package/{esm2020 → esm2022}/utils/id-creator.mjs +0 -0
  726. /package/{esm2020 → esm2022}/utils/lodash.mjs +0 -0
  727. /package/{esm2020 → esm2022}/utils/refocus.mjs +0 -0
  728. /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
  729. /package/{esm2020 → esm2022}/worktile-theia.mjs +0 -0
@@ -0,0 +1,81 @@
1
+ import { Editor, Transforms, Element } from 'slate';
2
+ import { TheContextService } from '../../services/context.service';
3
+ import { ElementKinds, ErrorCodes, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE } from '../../constants';
4
+ import * as TheTransforms from '../../transforms';
5
+ import { base64toBlob } from '../../utils/blob';
6
+ import { isString } from 'ngx-tethys/util';
7
+ import { getPluginOptions } from '../../core';
8
+ import { PluginKeys } from '../../interfaces';
9
+ export const ImageEditor = {
10
+ openUpload(editor) {
11
+ const inputFile = document.createElement('input');
12
+ inputFile.setAttribute('type', 'file');
13
+ inputFile.setAttribute('accept', 'image/*');
14
+ inputFile.setAttribute('multiple', 'true');
15
+ inputFile.onchange = (event) => {
16
+ ImageEditor.insertImages(editor, event.target.files);
17
+ };
18
+ inputFile.click();
19
+ },
20
+ insertImages(editor, imageFiles) {
21
+ const contextService = editor.injector.get(TheContextService);
22
+ const imageNodes = [];
23
+ const text = { text: '' };
24
+ for (const image of imageFiles) {
25
+ const verify = ImageEditor.verifyImage(editor, image);
26
+ if (verify) {
27
+ const url = URL.createObjectURL(image);
28
+ contextService.addUploadingFiles({ url, file: image });
29
+ imageNodes.push({ type: ElementKinds.image, url, children: [text] });
30
+ }
31
+ }
32
+ if (imageNodes.length > 0) {
33
+ TheTransforms.insertElements(editor, imageNodes);
34
+ }
35
+ },
36
+ handleBase64ImageElement(editor, image) {
37
+ if (isString(image.originUrl) && image.originUrl.includes('base64')) {
38
+ const indexSplit = image.originUrl.indexOf(',');
39
+ const base64 = image.originUrl.slice(indexSplit + 1);
40
+ const contentType = image.originUrl.substring(image.originUrl.indexOf(':') + 1, image.originUrl.indexOf(';'));
41
+ const ext = contentType.substring(contentType.indexOf('/') + 1);
42
+ const blob = base64toBlob(base64, contentType);
43
+ const blobUrl = URL.createObjectURL(blob);
44
+ image.thumbUrl = blobUrl;
45
+ image.originUrl = blobUrl;
46
+ image.url = blobUrl;
47
+ const contextService = editor.injector.get(TheContextService);
48
+ contextService.addUploadingFiles({
49
+ url: blobUrl,
50
+ file: new File([blob], `${new Date().getTime()}.${ext}`, { type: contentType })
51
+ });
52
+ }
53
+ },
54
+ verifyImage(editor, image) {
55
+ if (!PICTURE_ACCEPTED_UPLOAD_MIME.includes(image.type)) {
56
+ editor.onError({
57
+ code: ErrorCodes.IMAGE_ERR_MIME_FORMAT
58
+ });
59
+ return false;
60
+ }
61
+ const acceptedUploadSize = getPluginOptions(editor, PluginKeys.image)?.acceptedUploadSize ?? PICTURE_ACCEPTED_UPLOAD_SIZE;
62
+ if (image.size / 1000000 >= acceptedUploadSize) {
63
+ editor.onError({
64
+ code: ErrorCodes.IMAGE_ERR_SIZE_LIMIT
65
+ });
66
+ return false;
67
+ }
68
+ return true;
69
+ },
70
+ isImageActive(editor) {
71
+ const [match] = Editor.nodes(editor, {
72
+ match: (n) => Element.isElement(n) && n.type === ElementKinds.image,
73
+ universal: true
74
+ });
75
+ return !!match;
76
+ },
77
+ setImageNode(editor, path, partial) {
78
+ Transforms.setNodes(editor, partial, { at: path });
79
+ }
80
+ };
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBRUgsWUFBWSxFQUNaLFVBQVUsRUFFViw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQy9CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQXNCLFVBQVUsRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixVQUFVLENBQUMsTUFBaUI7UUFDeEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDbEMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUcsS0FBSyxDQUFDLE1B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b3JtcywgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQWxpZ25tZW50LFxuICAgIEVsZW1lbnRLaW5kcyxcbiAgICBFcnJvckNvZGVzLFxuICAgIExheW91dFR5cGVzLFxuICAgIFBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX01JTUUsXG4gICAgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRVxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQsIEltYWdlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBiYXNlNjR0b0Jsb2IgfSBmcm9tICcuLi8uLi91dGlscy9ibG9iJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEltYWdlUGx1Z2luT3B0aW9ucywgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRvciA9IHtcbiAgICBvcGVuVXBsb2FkKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnaW1hZ2UvKicpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICd0cnVlJyk7XG4gICAgICAgIGlucHV0RmlsZS5vbmNoYW5nZSA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIEltYWdlRWRpdG9yLmluc2VydEltYWdlcyhlZGl0b3IsIChldmVudC50YXJnZXQgYXMgYW55KS5maWxlcyk7XG4gICAgICAgIH07XG4gICAgICAgIGlucHV0RmlsZS5jbGljaygpO1xuICAgIH0sXG4gICAgaW5zZXJ0SW1hZ2VzKGVkaXRvcjogVGhlRWRpdG9yLCBpbWFnZUZpbGVzOiBGaWxlTGlzdCB8IEZpbGVbXSkge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCBpbWFnZU5vZGVzOiBDdXN0b21FbGVtZW50W10gPSBbXTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHsgdGV4dDogJycgfTtcbiAgICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBpbWFnZUZpbGVzKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZnkgPSBJbWFnZUVkaXRvci52ZXJpZnlJbWFnZShlZGl0b3IsIGltYWdlKTtcbiAgICAgICAgICAgIGlmICh2ZXJpZnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5hZGRVcGxvYWRpbmdGaWxlcyh7IHVybCwgZmlsZTogaW1hZ2UgfSk7XG4gICAgICAgICAgICAgICAgaW1hZ2VOb2Rlcy5wdXNoKHsgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlLCB1cmwsIGNoaWxkcmVuOiBbdGV4dF0gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltYWdlTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5pbnNlcnRFbGVtZW50cyhlZGl0b3IsIGltYWdlTm9kZXMpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBoYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yOiBUaGVFZGl0b3IsIGltYWdlOiBJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKGltYWdlLm9yaWdpblVybCkgJiYgaW1hZ2Uub3JpZ2luVXJsLmluY2x1ZGVzKCdiYXNlNjQnKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXhTcGxpdCA9IGltYWdlLm9yaWdpblVybC5pbmRleE9mKCcsJyk7XG4gICAgICAgICAgICBjb25zdCBiYXNlNjQgPSBpbWFnZS5vcmlnaW5Vcmwuc2xpY2UoaW5kZXhTcGxpdCArIDEpO1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSBpbWFnZS5vcmlnaW5Vcmwuc3Vic3RyaW5nKGltYWdlLm9yaWdpblVybC5pbmRleE9mKCc6JykgKyAxLCBpbWFnZS5vcmlnaW5VcmwuaW5kZXhPZignOycpKTtcbiAgICAgICAgICAgIGNvbnN0IGV4dCA9IGNvbnRlbnRUeXBlLnN1YnN0cmluZyhjb250ZW50VHlwZS5pbmRleE9mKCcvJykgKyAxKTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBiYXNlNjR0b0Jsb2IoYmFzZTY0LCBjb250ZW50VHlwZSk7XG4gICAgICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgIGltYWdlLnRodW1iVXJsID0gYmxvYlVybDtcbiAgICAgICAgICAgIGltYWdlLm9yaWdpblVybCA9IGJsb2JVcmw7XG4gICAgICAgICAgICBpbWFnZS51cmwgPSBibG9iVXJsO1xuICAgICAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgICAgIGNvbnRleHRTZXJ2aWNlLmFkZFVwbG9hZGluZ0ZpbGVzKHtcbiAgICAgICAgICAgICAgICB1cmw6IGJsb2JVcmwsXG4gICAgICAgICAgICAgICAgZmlsZTogbmV3IEZpbGUoW2Jsb2JdLCBgJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0uJHtleHR9YCwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHZlcmlmeUltYWdlKGVkaXRvcjogVGhlRWRpdG9yLCBpbWFnZTogRmlsZSkge1xuICAgICAgICBpZiAoIVBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX01JTUUuaW5jbHVkZXMoaW1hZ2UudHlwZSkpIHtcbiAgICAgICAgICAgIGVkaXRvci5vbkVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBFcnJvckNvZGVzLklNQUdFX0VSUl9NSU1FX0ZPUk1BVFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjZXB0ZWRVcGxvYWRTaXplID1cbiAgICAgICAgICAgIGdldFBsdWdpbk9wdGlvbnM8SW1hZ2VQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW1hZ2UpPy5hY2NlcHRlZFVwbG9hZFNpemUgPz8gUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRTtcbiAgICAgICAgaWYgKGltYWdlLnNpemUgLyAxMDAwMDAwID49IGFjY2VwdGVkVXBsb2FkU2l6ZSkge1xuICAgICAgICAgICAgZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IEVycm9yQ29kZXMuSU1BR0VfRVJSX1NJWkVfTElNSVRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gICAgaXNJbWFnZUFjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICAgICAgICAgIHVuaXZlcnNhbDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICEhbWF0Y2g7XG4gICAgfSxcbiAgICBzZXRJbWFnZU5vZGUoZWRpdG9yOiBUaGVFZGl0b3IsIHBhdGg6IFBhdGgsIHBhcnRpYWw6IHsgbGF5b3V0PzogTGF5b3V0VHlwZXM7IGFsaWduPzogQWxpZ25tZW50IH0pIHtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHBhcnRpYWwgYXMgQ3VzdG9tRWxlbWVudCwgeyBhdDogcGF0aCB9KTtcbiAgICB9XG59O1xuIl19
@@ -0,0 +1,78 @@
1
+ import { Editor, Transforms, Element } from 'slate';
2
+ import { PluginKeys } from '../../interfaces';
3
+ import { getPluginOptions } from '../../core';
4
+ import { TableEditor } from '../table/table.editor';
5
+ import { Indents } from '../../constants';
6
+ export const IndentEditor = {
7
+ getAllowedTypes(editor) {
8
+ return getPluginOptions(editor, PluginKeys.indent)?.allowedTypes ?? [];
9
+ },
10
+ setIndent(editor) {
11
+ if (TableEditor.handleIndent(editor, Indents.indentRight)) {
12
+ return;
13
+ }
14
+ const allowedTypes = IndentEditor.getAllowedTypes(editor);
15
+ const maxIndent = getPluginOptions(editor, PluginKeys.indent)?.maxIndent ?? 0;
16
+ const nodes = Array.from(Editor.nodes(editor, {
17
+ mode: 'highest',
18
+ match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
19
+ }));
20
+ const [startBlock] = nodes;
21
+ if (startBlock) {
22
+ let [{ indent }] = startBlock;
23
+ indent = indent ? ++indent : 1;
24
+ if (indent <= maxIndent) {
25
+ Transforms.setNodes(editor, { indent }, {
26
+ mode: 'highest',
27
+ match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
28
+ });
29
+ }
30
+ }
31
+ },
32
+ cancelIndent(editor) {
33
+ if (TableEditor.handleIndent(editor, Indents.indentLeft)) {
34
+ return;
35
+ }
36
+ const allowedTypes = IndentEditor.getAllowedTypes(editor);
37
+ const nodes = Array.from(Editor.nodes(editor, {
38
+ mode: 'highest',
39
+ match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
40
+ }));
41
+ const [startBlock] = nodes;
42
+ if (startBlock) {
43
+ let [{ indent }] = startBlock;
44
+ indent = indent ? --indent : 0;
45
+ Transforms.setNodes(editor, { indent }, {
46
+ mode: 'highest',
47
+ match: (n) => Element.isElement(n) && allowedTypes.includes(n.type)
48
+ });
49
+ }
50
+ },
51
+ setTextIndent(editor, kinds, textIndent) {
52
+ Transforms.setNodes(editor, { textIndent }, {
53
+ mode: 'highest',
54
+ match: (n) => Element.isElement(n) && kinds.includes(n.type)
55
+ });
56
+ },
57
+ cancelTextIntent(editor, event, anchorBlock, kinds) {
58
+ let { textIndent, indent } = anchorBlock;
59
+ if (textIndent > 2) {
60
+ event.preventDefault();
61
+ textIndent -= 2;
62
+ IndentEditor.setTextIndent(editor, kinds, textIndent);
63
+ return true;
64
+ }
65
+ if (textIndent === 2) {
66
+ event.preventDefault();
67
+ IndentEditor.setTextIndent(editor, kinds, null);
68
+ return true;
69
+ }
70
+ if (indent) {
71
+ event.preventDefault();
72
+ IndentEditor.cancelIndent(editor);
73
+ return true;
74
+ }
75
+ return false;
76
+ }
77
+ };
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQ3hCLGVBQWUsQ0FBQyxNQUFpQjtRQUM3QixPQUFPLGdCQUFnQixDQUFzQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDaEcsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFpQjtRQUN2QixJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2RCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFzQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDbkcsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLEtBQUssQ0FBVSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVB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LENBQUM7WUFDaEIsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxNQUFNLEVBQUU7WUFDUixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IsIFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQsIEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgdHlwZSB7IEluZGVudFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL2luZGVudC5wbHVnaW4nO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuLi90YWJsZS90YWJsZS5lZGl0b3InO1xuaW1wb3J0IHsgSW5kZW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBJbmRlbnRFZGl0b3IgPSB7XG4gICAgZ2V0QWxsb3dlZFR5cGVzKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIHJldHVybiBnZXRQbHVnaW5PcHRpb25zPEluZGVudFBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbmRlbnQpPy5hbGxvd2VkVHlwZXMgPz8gW107XG4gICAgfSxcbiAgICBzZXRJbmRlbnQoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgaWYgKFRhYmxlRWRpdG9yLmhhbmRsZUluZGVudChlZGl0b3IsIEluZGVudHMuaW5kZW50UmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsb3dlZFR5cGVzID0gSW5kZW50RWRpdG9yLmdldEFsbG93ZWRUeXBlcyhlZGl0b3IpO1xuICAgICAgICBjb25zdCBtYXhJbmRlbnQgPSBnZXRQbHVnaW5PcHRpb25zPEluZGVudFBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbmRlbnQpPy5tYXhJbmRlbnQgPz8gMDtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgICAgRWRpdG9yLm5vZGVzPEVsZW1lbnQ+KGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1vZGU6ICdoaWdoZXN0JyxcbiAgICAgICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhuLnR5cGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBbc3RhcnRCbG9ja10gPSBub2RlcztcbiAgICAgICAgaWYgKHN0YXJ0QmxvY2spIHtcbiAgICAgICAgICAgIGxldCBbeyBpbmRlbnQgfV0gPSBzdGFydEJsb2NrO1xuICAgICAgICAgICAgaW5kZW50ID0gaW5kZW50ID8gKytpbmRlbnQgOiAxO1xuICAgICAgICAgICAgaWYgKGluZGVudCA8PSBtYXhJbmRlbnQpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgIHsgaW5kZW50IH0gYXMgQ3VzdG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2hpZ2hlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBhbGxvd2VkVHlwZXMuaW5jbHVkZXMobi50eXBlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgY2FuY2VsSW5kZW50KGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGlmIChUYWJsZUVkaXRvci5oYW5kbGVJbmRlbnQoZWRpdG9yLCBJbmRlbnRzLmluZGVudExlZnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsb3dlZFR5cGVzID0gSW5kZW50RWRpdG9yLmdldEFsbG93ZWRUeXBlcyhlZGl0b3IpO1xuICAgICAgICBjb25zdCBub2RlcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBFZGl0b3Iubm9kZXM8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgbW9kZTogJ2hpZ2hlc3QnLFxuICAgICAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKG4udHlwZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IFtzdGFydEJsb2NrXSA9IG5vZGVzO1xuICAgICAgICBpZiAoc3RhcnRCbG9jaykge1xuICAgICAgICAgICAgbGV0IFt7IGluZGVudCB9XSA9IHN0YXJ0QmxvY2s7XG4gICAgICAgICAgICBpbmRlbnQgPSBpbmRlbnQgPyAtLWluZGVudCA6IDA7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICB7IGluZGVudCB9IGFzIEN1c3RvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtb2RlOiAnaGlnaGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKG4udHlwZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzZXRUZXh0SW5kZW50KGVkaXRvcjogVGhlRWRpdG9yLCBraW5kczogQ3VzdG9tRWxlbWVudEtpbmRzW10sIHRleHRJbmRlbnQ6IG51bWJlcikge1xuICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgeyB0ZXh0SW5kZW50IH0gYXMgQ3VzdG9tRWxlbWVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtb2RlOiAnaGlnaGVzdCcsXG4gICAgICAgICAgICAgICAgbWF0Y2g6IChuOiBDdXN0b21FbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBraW5kcy5pbmNsdWRlcyhuLnR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSxcbiAgICBjYW5jZWxUZXh0SW50ZW50KGVkaXRvcjogVGhlRWRpdG9yLCBldmVudDogS2V5Ym9hcmRFdmVudCwgYW5jaG9yQmxvY2s6IEN1c3RvbUVsZW1lbnQsIGtpbmRzOiBDdXN0b21FbGVtZW50S2luZHNbXSkge1xuICAgICAgICBsZXQgeyB0ZXh0SW5kZW50LCBpbmRlbnQgfSA9IGFuY2hvckJsb2NrO1xuXG4gICAgICAgIGlmICh0ZXh0SW5kZW50ID4gMikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRleHRJbmRlbnQgLT0gMjtcbiAgICAgICAgICAgIEluZGVudEVkaXRvci5zZXRUZXh0SW5kZW50KGVkaXRvciwga2luZHMsIHRleHRJbmRlbnQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHRJbmRlbnQgPT09IDIpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBJbmRlbnRFZGl0b3Iuc2V0VGV4dEluZGVudChlZGl0b3IsIGtpbmRzLCBudWxsKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBJbmRlbnRFZGl0b3IuY2FuY2VsSW5kZW50KGVkaXRvcik7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59O1xuIl19
@@ -56,4 +56,4 @@ export const createIndentPlugin = createPluginFactory({
56
56
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
57
57
  }
58
58
  });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ3pELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0IsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUUxRyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RILE1BQU0sVUFBVSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixJQUFJLFVBQVUsRUFBRTtZQUNaLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFzQjtJQUN2RSxHQUFHLEVBQUUsVUFBVSxDQUFDLE1BQU07SUFDdEIsYUFBYSxFQUFFLFVBQVU7SUFDekIsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDeEIsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25ELElBQUksRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM5QixJQUFJLEVBQUUsWUFBWTtZQUNsQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDL0IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7U0FDMUI7UUFDRDtZQUNJLEdBQUcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUN4QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3BEO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDdkIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsYUFBYTtZQUNuQixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUN2RDtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLEVBQUU7UUFDYixZQUFZLEVBQUU7WUFDVixZQUFZLENBQUMsU0FBUztZQUN0QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsU0FBUztZQUN0QixHQUFHLGFBQWE7U0FDbkI7UUFDRCxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2xHLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRHJvcGRvd25Nb2RlLCBFbGVtZW50S2luZHMsIEhFQURJTkdfVFlQRVMsIEluZGVudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnksIGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMsIFRvb2xiYXJJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgb25LZXlkb3duVGV4dEluZGVudCB9IGZyb20gJy4vb24ta2V5ZG93bi1pbmRlbnQnO1xuaW1wb3J0IHsgSW5kZW50RWRpdG9yIH0gZnJvbSAnLi9pbmRlbnQuZWRpdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBJbmRlbnRQbHVnaW5PcHRpb25zIHtcbiAgICBtYXhJbmRlbnQ/OiBudW1iZXI7XG4gICAgYWxsb3dlZFR5cGVzPzogQ3VzdG9tRWxlbWVudEtpbmRzW107XG4gICAgZGlzYWJsZUluZGVudFR5cGVzPzogQ3VzdG9tRWxlbWVudEtpbmRzW107XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoSW5kZW50ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgb25LZXlkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBnZXRQbHVnaW5PcHRpb25zPEluZGVudFBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbmRlbnQpPy5hbGxvd2VkVHlwZXMgPz8gW107XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVJbmRlbnRUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8SW5kZW50UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmluZGVudCk/LmRpc2FibGVJbmRlbnRUeXBlcyA/PyBbXTtcbiAgICAgICAgY29uc3QgaXNDb250aW51ZSA9ICFvbktleWRvd25UZXh0SW5kZW50KGVkaXRvciwgZXZlbnQsIGFsbG93ZWRUeXBlcywgZGlzYWJsZUluZGVudFR5cGVzKTtcbiAgICAgICAgaWYgKGlzQ29udGludWUpIHtcbiAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbmRlbnRQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5PEluZGVudFBsdWdpbk9wdGlvbnM+KHtcbiAgICBrZXk6IFBsdWdpbktleXMuaW5kZW50LFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhJbmRlbnQsXG4gICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmluZGVudCxcbiAgICAgICAgICAgIGluY2x1ZGVzOiBbSW5kZW50cy5pbmRlbnRSaWdodCwgSW5kZW50cy5pbmRlbnRMZWZ0XSxcbiAgICAgICAgICAgIHR5cGU6IFRvb2xiYXJJdGVtVHlwZS5kcm9wZG93bixcbiAgICAgICAgICAgIGljb246ICdmbG9hdC1sZWZ0JyxcbiAgICAgICAgICAgIGRyb3Bkb3duTW9kZTogRHJvcGRvd25Nb2RlLmljb24sXG4gICAgICAgICAgICBkcm9wZG93bkl0ZW1LZXk6IEluZGVudHMuaW5kZW50UmlnaHQsXG4gICAgICAgICAgICBkcm9wZG93bkZpeGVkSWNvbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEluZGVudHMuaW5kZW50UmlnaHQsXG4gICAgICAgICAgICBuYW1lOiAn5aKe5Yqg57yp6L+bJyxcbiAgICAgICAgICAgIGljb246ICdmbG9hdC1sZWZ0JyxcbiAgICAgICAgICAgIHNob3J0Y3V0S2V5OiAnVGFiJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmRlbnRFZGl0b3Iuc2V0SW5kZW50KGVkaXRvcilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBJbmRlbnRzLmluZGVudExlZnQsXG4gICAgICAgICAgICBuYW1lOiAn5YeP5bCR57yp6L+bJyxcbiAgICAgICAgICAgIGljb246ICdmbG9hdC1yaWdodCcsXG4gICAgICAgICAgICBzaG9ydGN1dEtleTogJ1NoaWZ0K1RhYicsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gSW5kZW50RWRpdG9yLmNhbmNlbEluZGVudChlZGl0b3IpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbWF4SW5kZW50OiAxMSxcbiAgICAgICAgYWxsb3dlZFR5cGVzOiBbXG4gICAgICAgICAgICBFbGVtZW50S2luZHMuY2hlY2tJdGVtLFxuICAgICAgICAgICAgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsXG4gICAgICAgICAgICBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICAgICAgLi4uSEVBRElOR19UWVBFU1xuICAgICAgICBdLFxuICAgICAgICBkaXNhYmxlSW5kZW50VHlwZXM6IFtFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LCBFbGVtZW50S2luZHMuY2hlY2tJdGVtXSxcbiAgICAgICAgZGlzYWJsZWRPcGVyYXRlVHlwZXM6IFtFbGVtZW50S2luZHMuaW1hZ2UsIC4uLkRJU0FCTEVEX09QRVJBVEVfVFlQRVNdXG4gICAgfVxufSk7XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBYSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQXNCLE1BQVMsRUFBSyxFQUFFO0lBQzVELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0IsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUUxRyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RILE1BQU0sVUFBVSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixJQUFJLFVBQVUsRUFBRTtZQUNaLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFzQjtJQUN2RSxHQUFHLEVBQUUsVUFBVSxDQUFDLE1BQU07SUFDdEIsYUFBYSxFQUFFLFVBQVU7SUFDekIsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDeEIsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25ELElBQUksRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM5QixJQUFJLEVBQUUsWUFBWTtZQUNsQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDL0IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7U0FDMUI7UUFDRDtZQUNJLEdBQUcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUN4QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3BEO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDdkIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsYUFBYTtZQUNuQixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUN2RDtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLEVBQUU7UUFDYixZQUFZLEVBQUU7WUFDVixZQUFZLENBQUMsU0FBUztZQUN0QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsU0FBUztZQUN0QixHQUFHLGFBQWE7U0FDbkI7UUFDRCxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2xHLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRHJvcGRvd25Nb2RlLCBFbGVtZW50S2luZHMsIEhFQURJTkdfVFlQRVMsIEluZGVudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnksIGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMsIFRoZUVkaXRvciwgVG9vbGJhckl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBvbktleWRvd25UZXh0SW5kZW50IH0gZnJvbSAnLi9vbi1rZXlkb3duLWluZGVudCc7XG5pbXBvcnQgeyBJbmRlbnRFZGl0b3IgfSBmcm9tICcuL2luZGVudC5lZGl0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGVudFBsdWdpbk9wdGlvbnMge1xuICAgIG1heEluZGVudD86IG51bWJlcjtcbiAgICBhbGxvd2VkVHlwZXM/OiBDdXN0b21FbGVtZW50S2luZHNbXTtcbiAgICBkaXNhYmxlSW5kZW50VHlwZXM/OiBDdXN0b21FbGVtZW50S2luZHNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhJbmRlbnQgPSA8VCBleHRlbmRzIFRoZUVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBvbktleWRvd24gfSA9IGVkaXRvcjtcblxuICAgIGNvbnN0IGFsbG93ZWRUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8SW5kZW50UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmluZGVudCk/LmFsbG93ZWRUeXBlcyA/PyBbXTtcblxuICAgIGVkaXRvci5vbktleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZUluZGVudFR5cGVzID0gZ2V0UGx1Z2luT3B0aW9uczxJbmRlbnRQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW5kZW50KT8uZGlzYWJsZUluZGVudFR5cGVzID8/IFtdO1xuICAgICAgICBjb25zdCBpc0NvbnRpbnVlID0gIW9uS2V5ZG93blRleHRJbmRlbnQoZWRpdG9yLCBldmVudCwgYWxsb3dlZFR5cGVzLCBkaXNhYmxlSW5kZW50VHlwZXMpO1xuICAgICAgICBpZiAoaXNDb250aW51ZSkge1xuICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZGVudFBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8SW5kZW50UGx1Z2luT3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5pbmRlbnQsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aEluZGVudCxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5kZW50LFxuICAgICAgICAgICAgaW5jbHVkZXM6IFtJbmRlbnRzLmluZGVudFJpZ2h0LCBJbmRlbnRzLmluZGVudExlZnRdLFxuICAgICAgICAgICAgdHlwZTogVG9vbGJhckl0ZW1UeXBlLmRyb3Bkb3duLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgZHJvcGRvd25Nb2RlOiBEcm9wZG93bk1vZGUuaWNvbixcbiAgICAgICAgICAgIGRyb3Bkb3duSXRlbUtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIGRyb3Bkb3duRml4ZWRJY29uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIG5hbWU6ICflop7liqDnvKnov5snLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgc2hvcnRjdXRLZXk6ICdUYWInLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEluZGVudEVkaXRvci5zZXRJbmRlbnQoZWRpdG9yKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEluZGVudHMuaW5kZW50TGVmdCxcbiAgICAgICAgICAgIG5hbWU6ICflh4/lsJHnvKnov5snLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LXJpZ2h0JyxcbiAgICAgICAgICAgIHNob3J0Y3V0S2V5OiAnU2hpZnQrVGFiJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmRlbnRFZGl0b3IuY2FuY2VsSW5kZW50KGVkaXRvcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgb3B0aW9uczoge1xuICAgICAgICBtYXhJbmRlbnQ6IDExLFxuICAgICAgICBhbGxvd2VkVHlwZXM6IFtcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgICAgICAgICBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCxcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsXG4gICAgICAgICAgICAuLi5IRUFESU5HX1RZUEVTXG4gICAgICAgIF0sXG4gICAgICAgIGRpc2FibGVJbmRlbnRUeXBlczogW0VsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1dLFxuICAgICAgICBkaXNhYmxlZE9wZXJhdGVUeXBlczogW0VsZW1lbnRLaW5kcy5pbWFnZSwgLi4uRElTQUJMRURfT1BFUkFURV9UWVBFU11cbiAgICB9XG59KTtcbiJdfQ==
@@ -0,0 +1,59 @@
1
+ import { isKeyHotkey } from 'is-hotkey';
2
+ import { Range, Editor, Element } from 'slate';
3
+ import { hotkeys } from 'slate-angular';
4
+ import { TAB_SPACE } from '../../constants/default';
5
+ import { IndentEditor } from './indent.editor';
6
+ import { TableEditor } from '../table/table.editor';
7
+ import { Indents } from '../../constants';
8
+ export const onKeydownTextIndent = (editor, event, kinds, textIndentDisabled) => {
9
+ const { selection } = editor;
10
+ const isExpanded = Range.isExpanded(selection);
11
+ const nodes = Array.from(Editor.nodes(editor, {
12
+ mode: 'highest',
13
+ match: (n) => Element.isElement(n) && kinds.includes(n.type)
14
+ }));
15
+ const [startBlock] = nodes;
16
+ if (!startBlock) {
17
+ return false;
18
+ }
19
+ const [block, path] = startBlock;
20
+ const isStart = Editor.isStart(editor, selection.anchor, path);
21
+ if (isKeyHotkey('Tab', event)) {
22
+ event.preventDefault();
23
+ if (TableEditor.handleIndent(editor, Indents.indentRight)) {
24
+ return true;
25
+ }
26
+ if (startBlock && (isExpanded || isStart)) {
27
+ if (!editor.isVoid(block)) {
28
+ let { textIndent, type } = block;
29
+ // do not apply first-line indentation for lists
30
+ if (!textIndent && !textIndentDisabled.includes(type)) {
31
+ IndentEditor.setTextIndent(editor, kinds, 2);
32
+ return true;
33
+ }
34
+ else {
35
+ IndentEditor.setIndent(editor);
36
+ return true;
37
+ }
38
+ }
39
+ }
40
+ else {
41
+ editor.insertText(TAB_SPACE);
42
+ return true;
43
+ }
44
+ }
45
+ if (isKeyHotkey('shift+Tab', event)) {
46
+ if (startBlock && (isExpanded || isStart)) {
47
+ if (!editor.isVoid(block)) {
48
+ return IndentEditor.cancelTextIntent(editor, event, block, kinds);
49
+ }
50
+ }
51
+ }
52
+ if (selection && Range.isCollapsed(selection) && hotkeys.isDeleteBackward(event)) {
53
+ if (startBlock && isStart) {
54
+ return IndentEditor.cancelTextIntent(editor, event, block, kinds);
55
+ }
56
+ }
57
+ return false;
58
+ };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24ta2V5ZG93bi1pbmRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9pbmRlbnQvb24ta2V5ZG93bi1pbmRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDL0IsTUFBaUIsRUFDakIsS0FBb0IsRUFDcEIsS0FBMkIsRUFDM0Isa0JBQXdDLEVBQzFDLEVBQUU7SUFDQSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLEtBQUssQ0FBVSxNQUFNLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUM5RSxDQUFDLENBQ0wsQ0FBQztJQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNiLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDakMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUUvRCxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbkQsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxPQUFPLElBQUksQ0FBQztpQkFDZjtxQkFBTTtvQkFDSCxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQixPQUFPLElBQUksQ0FBQztpQkFDZjthQUNKO1NBQ0o7YUFBTTtZQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDZjtLQUNKO0lBQ0QsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLElBQUksVUFBVSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNyRTtTQUNKO0tBQ0o7SUFDRCxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM5RSxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDdkIsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDckU7S0FDSjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzS2V5SG90a2V5IH0gZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IFJhbmdlLCBFZGl0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBob3RrZXlzIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50LCBDdXN0b21FbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgVEFCX1NQQUNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgSW5kZW50RWRpdG9yIH0gZnJvbSAnLi9pbmRlbnQuZWRpdG9yJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi4vdGFibGUvdGFibGUuZWRpdG9yJztcbmltcG9ydCB7IEluZGVudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBvbktleWRvd25UZXh0SW5kZW50ID0gKFxuICAgIGVkaXRvcjogVGhlRWRpdG9yLFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGtpbmRzOiBDdXN0b21FbGVtZW50S2luZHNbXSxcbiAgICB0ZXh0SW5kZW50RGlzYWJsZWQ6IEN1c3RvbUVsZW1lbnRLaW5kc1tdXG4pID0+IHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgIGNvbnN0IGlzRXhwYW5kZWQgPSBSYW5nZS5pc0V4cGFuZGVkKHNlbGVjdGlvbik7XG4gICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKFxuICAgICAgICBFZGl0b3Iubm9kZXM8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICBtb2RlOiAnaGlnaGVzdCcsXG4gICAgICAgICAgICBtYXRjaDogKG46IEN1c3RvbUVsZW1lbnQpID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIGtpbmRzLmluY2x1ZGVzKG4udHlwZSlcbiAgICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IFtzdGFydEJsb2NrXSA9IG5vZGVzO1xuICAgIGlmICghc3RhcnRCbG9jaykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgW2Jsb2NrLCBwYXRoXSA9IHN0YXJ0QmxvY2s7XG4gICAgY29uc3QgaXNTdGFydCA9IEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciwgcGF0aCk7XG5cbiAgICBpZiAoaXNLZXlIb3RrZXkoJ1RhYicsIGV2ZW50KSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmIChUYWJsZUVkaXRvci5oYW5kbGVJbmRlbnQoZWRpdG9yLCBJbmRlbnRzLmluZGVudFJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnRCbG9jayAmJiAoaXNFeHBhbmRlZCB8fCBpc1N0YXJ0KSkge1xuICAgICAgICAgICAgaWYgKCFlZGl0b3IuaXNWb2lkKGJsb2NrKSkge1xuICAgICAgICAgICAgICAgIGxldCB7IHRleHRJbmRlbnQsIHR5cGUgfSA9IGJsb2NrO1xuICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBhcHBseSBmaXJzdC1saW5lIGluZGVudGF0aW9uIGZvciBsaXN0c1xuICAgICAgICAgICAgICAgIGlmICghdGV4dEluZGVudCAmJiAhdGV4dEluZGVudERpc2FibGVkLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIEluZGVudEVkaXRvci5zZXRUZXh0SW5kZW50KGVkaXRvciwga2luZHMsIDIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBJbmRlbnRFZGl0b3Iuc2V0SW5kZW50KGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVkaXRvci5pbnNlcnRUZXh0KFRBQl9TUEFDRSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNLZXlIb3RrZXkoJ3NoaWZ0K1RhYicsIGV2ZW50KSkge1xuICAgICAgICBpZiAoc3RhcnRCbG9jayAmJiAoaXNFeHBhbmRlZCB8fCBpc1N0YXJ0KSkge1xuICAgICAgICAgICAgaWYgKCFlZGl0b3IuaXNWb2lkKGJsb2NrKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBJbmRlbnRFZGl0b3IuY2FuY2VsVGV4dEludGVudChlZGl0b3IsIGV2ZW50LCBibG9jaywga2luZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChzZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoc2VsZWN0aW9uKSAmJiBob3RrZXlzLmlzRGVsZXRlQmFja3dhcmQoZXZlbnQpKSB7XG4gICAgICAgIGlmIChzdGFydEJsb2NrICYmIGlzU3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiBJbmRlbnRFZGl0b3IuY2FuY2VsVGV4dEludGVudChlZGl0b3IsIGV2ZW50LCBibG9jaywga2luZHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { Component } from '@angular/core';
2
+ import { TheBaseElementComponent } from '../../interfaces';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "slate-angular";
5
+ export class TheInlineCodeComponent extends TheBaseElementComponent {
6
+ constructor() {
7
+ super(...arguments);
8
+ // Put this at the start and end of an inline component to work around this Chromium bug:
9
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=1249405
10
+ this.inlineChromiumBugfix = String.fromCodePoint(160);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheInlineCodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: TheInlineCodeComponent, selector: "span[theInlineCode]", usesInheritance: true, ngImport: i0, template: `<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
14
+ <span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
15
+ <span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheInlineCodeComponent, decorators: [{
18
+ type: Component,
19
+ args: [{
20
+ selector: 'span[theInlineCode]',
21
+ template: `<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
22
+ <span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
23
+ <span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFhLE1BQU0sa0JBQWtCLENBQUM7OztBQVF0RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXFEO0lBTmpHOztRQU9JLHlGQUF5RjtRQUN6RixnRUFBZ0U7UUFDaEUseUJBQW9CLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwRDs4R0FKWSxzQkFBc0I7a0dBQXRCLHNCQUFzQixrRkFKckI7OytGQUVpRjs7MkZBRWxGLHNCQUFzQjtrQkFObEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7OytGQUVpRjtpQkFDOUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElubGluZUNvZGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50Q29tcG9uZW50LCBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzcGFuW3RoZUlubGluZUNvZGVdJyxcbiAgICB0ZW1wbGF0ZTogYDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgY2xhc3M9XCJ0aGUtYnJlYWstY2hhclwiPnt7IGlubGluZUNocm9taXVtQnVnZml4IH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj48c2xhdGUtY2hpbGRyZW4gW2NoaWxkcmVuXT1cImNoaWxkcmVuXCIgW2NvbnRleHRdPVwiY2hpbGRyZW5Db250ZXh0XCIgW3ZpZXdDb250ZXh0XT1cInZpZXdDb250ZXh0XCI+PC9zbGF0ZS1jaGlsZHJlbj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgY2xhc3M9XCJ0aGUtYnJlYWstY2hhclwiPnt7IGlubGluZUNocm9taXVtQnVnZml4IH19PC9zcGFuPmBcbn0pXG5leHBvcnQgY2xhc3MgVGhlSW5saW5lQ29kZUNvbXBvbmVudCBleHRlbmRzIFRoZUJhc2VFbGVtZW50Q29tcG9uZW50PElubGluZUNvZGVFbGVtZW50LCBUaGVFZGl0b3I+IHtcbiAgICAvLyBQdXQgdGhpcyBhdCB0aGUgc3RhcnQgYW5kIGVuZCBvZiBhbiBpbmxpbmUgY29tcG9uZW50IHRvIHdvcmsgYXJvdW5kIHRoaXMgQ2hyb21pdW0gYnVnOlxuICAgIC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEyNDk0MDVcbiAgICBpbmxpbmVDaHJvbWl1bUJ1Z2ZpeCA9IFN0cmluZy5mcm9tQ29kZVBvaW50KDE2MCk7XG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Editor, Range, Transforms, Node, Element } from 'slate';
2
+ import { ElementKinds, ZERO_WIDTH_CHAR } from '../../constants';
3
+ export const InlineCodeEditor = {
4
+ toggleInlineCode(editor, text) {
5
+ const isActive = InlineCodeEditor.isInlineCodeActive(editor);
6
+ if (isActive) {
7
+ InlineCodeEditor.unwrapInlineCode(editor);
8
+ return;
9
+ }
10
+ if (Range.isCollapsed(editor.selection)) {
11
+ InlineCodeEditor.wrapInlineCode(editor, text);
12
+ }
13
+ else {
14
+ const fragment = Node.fragment(editor, editor.selection)[0];
15
+ const selectNode = Node.get(fragment, []);
16
+ const selectText = Node.string(selectNode);
17
+ InlineCodeEditor.wrapInlineCode(editor, selectText);
18
+ }
19
+ },
20
+ wrapInlineCode(editor, text = '') {
21
+ if (InlineCodeEditor.isInlineCodeActive(editor)) {
22
+ InlineCodeEditor.unwrapInlineCode(editor);
23
+ }
24
+ const { selection } = editor;
25
+ const isCollapsed = selection && Range.isCollapsed(selection);
26
+ const inlineCode = {
27
+ type: ElementKinds.inlineCode,
28
+ children: isCollapsed ? [{ text: text ? text : ZERO_WIDTH_CHAR }] : []
29
+ };
30
+ if (isCollapsed) {
31
+ Transforms.insertNodes(editor, inlineCode);
32
+ }
33
+ else {
34
+ Transforms.wrapNodes(editor, inlineCode, { split: true });
35
+ }
36
+ },
37
+ unwrapInlineCode(editor) {
38
+ Transforms.unwrapNodes(editor, { match: (n) => Element.isElement(n) && n.type === ElementKinds.inlineCode });
39
+ },
40
+ isInlineCodeActive(editor, path) {
41
+ const [inlineCode] = Editor.nodes(editor, {
42
+ at: path ? path : editor.selection?.anchor.path,
43
+ match: (n) => Element.isElement(n) && n.type === ElementKinds.inlineCode
44
+ });
45
+ return !!inlineCode;
46
+ }
47
+ };
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDNUIsZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxJQUFhO1FBQzdDLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksUUFBUSxFQUFFO1lBQ1YsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsT0FBTztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pEO2FBQU07WUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFpQixFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3ZDLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0MsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sV0FBVyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFzQjtZQUNsQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDN0IsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6RSxDQUFDO1FBQ0YsSUFBSSxXQUFXLEVBQUU7WUFDYixVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0gsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBaUI7UUFDOUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWlCLEVBQUUsSUFBVztRQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsVUFBVTtTQUMxRixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFJhbmdlLCBUcmFuc2Zvcm1zLCBOb2RlLCBFbGVtZW50LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudCwgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBJbmxpbmVDb2RlRWRpdG9yID0ge1xuICAgIHRvZ2dsZUlubGluZUNvZGUoZWRpdG9yOiBUaGVFZGl0b3IsIHRleHQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpO1xuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIElubGluZUNvZGVFZGl0b3IudW53cmFwSW5saW5lQ29kZShlZGl0b3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgSW5saW5lQ29kZUVkaXRvci53cmFwSW5saW5lQ29kZShlZGl0b3IsIHRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBOb2RlLmZyYWdtZW50KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbilbMF07XG4gICAgICAgICAgICBjb25zdCBzZWxlY3ROb2RlID0gTm9kZS5nZXQoZnJhZ21lbnQsIFtdKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdFRleHQgPSBOb2RlLnN0cmluZyhzZWxlY3ROb2RlKTtcbiAgICAgICAgICAgIElubGluZUNvZGVFZGl0b3Iud3JhcElubGluZUNvZGUoZWRpdG9yLCBzZWxlY3RUZXh0KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB3cmFwSW5saW5lQ29kZShlZGl0b3I6IFRoZUVkaXRvciwgdGV4dCA9ICcnKSB7XG4gICAgICAgIGlmIChJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpKSB7XG4gICAgICAgICAgICBJbmxpbmVDb2RlRWRpdG9yLnVud3JhcElubGluZUNvZGUoZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBpbmxpbmVDb2RlOiBJbmxpbmVDb2RlRWxlbWVudCA9IHtcbiAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlLFxuICAgICAgICAgICAgY2hpbGRyZW46IGlzQ29sbGFwc2VkID8gW3sgdGV4dDogdGV4dCA/IHRleHQgOiBaRVJPX1dJRFRIX0NIQVIgfV0gOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBpbmxpbmVDb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMud3JhcE5vZGVzKGVkaXRvciwgaW5saW5lQ29kZSwgeyBzcGxpdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB1bndyYXBJbmxpbmVDb2RlKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIFRyYW5zZm9ybXMudW53cmFwTm9kZXMoZWRpdG9yLCB7IG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZSB9KTtcbiAgICB9LFxuXG4gICAgaXNJbmxpbmVDb2RlQWN0aXZlKGVkaXRvcjogVGhlRWRpdG9yLCBwYXRoPzogUGF0aCkge1xuICAgICAgICBjb25zdCBbaW5saW5lQ29kZV0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICBhdDogcGF0aCA/IHBhdGggOiBlZGl0b3Iuc2VsZWN0aW9uPy5hbmNob3IucGF0aCxcbiAgICAgICAgICAgIG1hdGNoOiAobjogQ3VzdG9tRWxlbWVudCkgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICEhaW5saW5lQ29kZTtcbiAgICB9XG59O1xuIl19
@@ -0,0 +1,66 @@
1
+ import { Editor, Transforms } from 'slate';
2
+ import { DISABLED_OPERATE_TYPES, ElementKinds, ZERO_WIDTH_CHAR } from '../../constants';
3
+ import { createPluginFactory } from '../../core';
4
+ import { PluginKeys } from '../../interfaces';
5
+ import { CONTROL_KEY } from '../../utils';
6
+ import { TheInlineCodeComponent } from './inline-code.component';
7
+ import { InlineCodeEditor } from './inline-code.editor';
8
+ import { withRemoveEmptyNodes } from '../normalizers/remove-empty-nodes';
9
+ export const withInlineCode = (editor) => {
10
+ const { isInline, renderElement, insertText } = editor;
11
+ editor.isInline = (element) => {
12
+ return element.type === ElementKinds.inlineCode ? true : isInline(element);
13
+ };
14
+ editor.renderElement = (element) => {
15
+ if (element.type === ElementKinds.inlineCode) {
16
+ return TheInlineCodeComponent;
17
+ }
18
+ return renderElement(element);
19
+ };
20
+ editor.insertText = text => {
21
+ if (text && InlineCodeEditor.isInlineCodeActive(editor)) {
22
+ let selection = editor.selection;
23
+ const currentNodeText = Editor.string(editor, editor.selection.anchor.path);
24
+ insertText(text);
25
+ if (currentNodeText == ZERO_WIDTH_CHAR) {
26
+ const inlineCodePath = Editor.path(editor, editor.selection);
27
+ let range = {
28
+ anchor: Editor.before(editor, selection.anchor),
29
+ focus: selection.anchor
30
+ };
31
+ if (Editor.isStart(editor, selection.anchor, inlineCodePath)) {
32
+ range = {
33
+ anchor: editor.selection.anchor,
34
+ focus: Editor.after(editor, editor.selection)
35
+ };
36
+ }
37
+ Transforms.delete(editor, {
38
+ at: range
39
+ });
40
+ }
41
+ }
42
+ else {
43
+ insertText(text);
44
+ }
45
+ };
46
+ editor = withRemoveEmptyNodes({ type: ElementKinds.inlineCode })(editor);
47
+ return editor;
48
+ };
49
+ export const createInlineCodePlugin = createPluginFactory({
50
+ key: PluginKeys.inlineCode,
51
+ withOverrides: withInlineCode,
52
+ toolbarItems: [
53
+ {
54
+ key: ElementKinds.inlineCode,
55
+ icon: 'code',
56
+ name: '行内代码',
57
+ shortcutKey: `${CONTROL_KEY}+E`,
58
+ execute: editor => InlineCodeEditor.toggleInlineCode(editor),
59
+ active: editor => InlineCodeEditor.isInlineCodeActive(editor)
60
+ }
61
+ ],
62
+ options: {
63
+ disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
64
+ }
65
+ });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFzQixNQUFTLEVBQUssRUFBRTtJQUNoRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFdkQsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQTBCLEVBQUUsRUFBRTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLE9BQTBCLEVBQUUsRUFBRTtRQUNsRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUMxQyxPQUFPLHNCQUFzQixDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN2QixJQUFJLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixJQUFJLGVBQWUsSUFBSSxlQUFlLEVBQUU7Z0JBQ3BDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxLQUFLLEdBQUc7b0JBQ1IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQy9DLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtpQkFDMUIsQ0FBQztnQkFDRixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUU7b0JBQzFELEtBQUssR0FBRzt3QkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO3dCQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDaEQsQ0FBQztpQkFDTDtnQkFDRCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDdEIsRUFBRSxFQUFFLEtBQUs7aUJBQ1osQ0FBQyxDQUFDO2FBQ047U0FDSjthQUFNO1lBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxHQUFHLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0lBQ3RELEdBQUcsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUMxQixhQUFhLEVBQUUsY0FBYztJQUM3QixZQUFZLEVBQUU7UUFDVjtZQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsVUFBVTtZQUM1QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxNQUFNO1lBQ1osV0FBVyxFQUFFLEdBQUcsV0FBVyxJQUFJO1lBQy9CLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUM1RCxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7U0FDaEU7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDT05UUk9MX0tFWSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFRoZUlubGluZUNvZGVDb21wb25lbnQgfSBmcm9tICcuL2lubGluZS1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmxpbmVDb2RlRWRpdG9yIH0gZnJvbSAnLi9pbmxpbmUtY29kZS5lZGl0b3InO1xuaW1wb3J0IHsgd2l0aFJlbW92ZUVtcHR5Tm9kZXMgfSBmcm9tICcuLi9ub3JtYWxpemVycy9yZW1vdmUtZW1wdHktbm9kZXMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aElubGluZUNvZGUgPSA8VCBleHRlbmRzIFRoZUVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBpc0lubGluZSwgcmVuZGVyRWxlbWVudCwgaW5zZXJ0VGV4dCB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmlzSW5saW5lID0gKGVsZW1lbnQ6IElubGluZUNvZGVFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlID8gdHJ1ZSA6IGlzSW5saW5lKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBJbmxpbmVDb2RlRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZUlubGluZUNvZGVDb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlckVsZW1lbnQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5pbnNlcnRUZXh0ID0gdGV4dCA9PiB7XG4gICAgICAgIGlmICh0ZXh0ICYmIElubGluZUNvZGVFZGl0b3IuaXNJbmxpbmVDb2RlQWN0aXZlKGVkaXRvcikpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3Rpb24gPSBlZGl0b3Iuc2VsZWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE5vZGVUZXh0ID0gRWRpdG9yLnN0cmluZyhlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgaW5zZXJ0VGV4dCh0ZXh0KTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Tm9kZVRleHQgPT0gWkVST19XSURUSF9DSEFSKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5saW5lQ29kZVBhdGggPSBFZGl0b3IucGF0aChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIGxldCByYW5nZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yOiBFZGl0b3IuYmVmb3JlKGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzOiBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBpbmxpbmVDb2RlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3I6IGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXM6IEVkaXRvci5hZnRlcihlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgICAgICAgICBhdDogcmFuZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluc2VydFRleHQodGV4dCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZWRpdG9yID0gd2l0aFJlbW92ZUVtcHR5Tm9kZXMoeyB0eXBlOiBFbGVtZW50S2luZHMuaW5saW5lQ29kZSB9KShlZGl0b3IpO1xuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlSW5saW5lQ29kZVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy5pbmxpbmVDb2RlLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhJbmxpbmVDb2RlLFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlLFxuICAgICAgICAgICAgaWNvbjogJ2NvZGUnLFxuICAgICAgICAgICAgbmFtZTogJ+ihjOWGheS7o+eggScsXG4gICAgICAgICAgICBzaG9ydGN1dEtleTogYCR7Q09OVFJPTF9LRVl9K0VgLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IElubGluZUNvZGVFZGl0b3IudG9nZ2xlSW5saW5lQ29kZShlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gSW5saW5lQ29kZUVkaXRvci5pc0lubGluZUNvZGVBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGRpc2FibGVkT3BlcmF0ZVR5cGVzOiBbRWxlbWVudEtpbmRzLmltYWdlLCAuLi5ESVNBQkxFRF9PUEVSQVRFX1RZUEVTXVxuICAgIH1cbn0pO1xuIl19
@@ -0,0 +1,103 @@
1
+ import { Component, Input, HostBinding, HostListener } from '@angular/core';
2
+ import { Transforms, Editor } from 'slate';
3
+ import { AngularEditor } from 'slate-angular';
4
+ import * as TheQueries from '../../../queries';
5
+ import { TheEditor } from '../../../interfaces';
6
+ import { LinkCloseTypes, LinkTags } from '../link.types';
7
+ import isUrl from 'is-url';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "ngx-tethys/popover";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "ngx-tethys/form";
12
+ import * as i4 from "ngx-tethys/shared";
13
+ import * as i5 from "ngx-tethys/input";
14
+ import * as i6 from "ngx-tethys/button";
15
+ export class TheLinkEditComponent {
16
+ handleDocumentMouseDown(event) {
17
+ if (!document.querySelector('.the-link-edit-container').contains(event.target)) {
18
+ this.thyPopoverRef.close();
19
+ }
20
+ }
21
+ constructor(thyPopoverRef) {
22
+ this.thyPopoverRef = thyPopoverRef;
23
+ this.className = 'the-link-edit-container';
24
+ this.link = '';
25
+ this.text = '';
26
+ this.validatorConfig = {
27
+ validationMessages: {
28
+ link: {
29
+ required: '链接不能为空',
30
+ pattern: '请输入正确的链接'
31
+ },
32
+ text: {
33
+ required: '文本不能为空'
34
+ }
35
+ }
36
+ };
37
+ }
38
+ ngOnInit() {
39
+ this.originText = this.text;
40
+ this.originLink = this.link;
41
+ this.thyPopoverRef.beforeClosed().subscribe(type => {
42
+ switch (true) {
43
+ case type === LinkCloseTypes.apply:
44
+ break;
45
+ case this.tag === LinkTags.insert:
46
+ AngularEditor.focus(this.editor);
47
+ Transforms.select(this.editor, this.originSelection);
48
+ this.editor.undo();
49
+ break;
50
+ case this.tag === LinkTags.edit:
51
+ AngularEditor.focus(this.editor);
52
+ Transforms.select(this.editor, this.originSelection);
53
+ break;
54
+ }
55
+ });
56
+ }
57
+ closePopover(type) {
58
+ this.thyPopoverRef.close(type);
59
+ }
60
+ applyLink(form) {
61
+ const link = this.link.trim();
62
+ if (isUrl(link)) {
63
+ const linkPath = TheQueries.findPath(this.editor, this.node);
64
+ if (this.originLink !== link) {
65
+ Transforms.setNodes(this.editor, { url: link }, { at: linkPath });
66
+ }
67
+ if (this.originText !== this.text) {
68
+ const [start, end] = Editor.edges(this.editor, linkPath);
69
+ Transforms.insertText(this.editor, this.text, { at: { anchor: end, focus: end } });
70
+ Transforms.delete(this.editor, { at: { anchor: start, focus: end } });
71
+ }
72
+ TheEditor.focus(this.editor);
73
+ Transforms.select(this.editor, Editor.after(this.editor, linkPath));
74
+ this.closePopover(LinkCloseTypes.apply);
75
+ }
76
+ else {
77
+ form.validator.setElementErrorMessage(`link`, '请输入正确的链接');
78
+ }
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheLinkEditComponent, deps: [{ token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: TheLinkEditComponent, selector: "the-link-edit", inputs: { tag: "tag", node: "node", link: "link", text: "text", originSelection: "originSelection" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, properties: { "class": "this.className" } }, ngImport: i0, template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group thyLabelText=\"\u6587\u672C\">\n <input thyInput placeholder=\"\u8BF7\u8F93\u5165\u6587\u672C\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u94FE\u63A5\">\n <input name=\"link\" thyInput placeholder=\"\u8BF7\u8F93\u5165\u94FE\u63A5\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">\u53D6\u6D88</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">\u5E94\u7528</button>\n </div>\n </thy-form-group-footer>\n</form>\n", dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i3.ThyFormGroupComponent, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i3.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i3.ThyFormGroupFooterComponent, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "directive", type: i4.ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: i5.ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "component", type: i6.ThyButtonComponent, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }] }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TheLinkEditComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'the-link-edit', template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group thyLabelText=\"\u6587\u672C\">\n <input thyInput placeholder=\"\u8BF7\u8F93\u5165\u6587\u672C\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u94FE\u63A5\">\n <input name=\"link\" thyInput placeholder=\"\u8BF7\u8F93\u5165\u94FE\u63A5\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">\u53D6\u6D88</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">\u5E94\u7528</button>\n </div>\n </thy-form-group-footer>\n</form>\n" }]
86
+ }], ctorParameters: function () { return [{ type: i1.ThyPopoverRef }]; }, propDecorators: { className: [{
87
+ type: HostBinding,
88
+ args: ['class']
89
+ }], tag: [{
90
+ type: Input
91
+ }], node: [{
92
+ type: Input
93
+ }], link: [{
94
+ type: Input
95
+ }], text: [{
96
+ type: Input
97
+ }], originSelection: [{
98
+ type: Input
99
+ }], handleDocumentMouseDown: [{
100
+ type: HostListener,
101
+ args: ['document: mousedown', ['$event']]
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpbmsvZWRpdC9saW5rLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGluay9lZGl0L2xpbmstZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxLQUFLLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQU0zQixNQUFNLE9BQU8sb0JBQW9CO0lBZ0M3Qix1QkFBdUIsQ0FBQyxLQUFpQjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBcUIsQ0FBQyxFQUFFO1lBQzNGLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsWUFBbUIsYUFBaUM7UUFBakMsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBckM5QixjQUFTLEdBQUcseUJBQXlCLENBQUM7UUFNbkQsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVWLFNBQUksR0FBRyxFQUFFLENBQUM7UUFV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TSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzdEO0lBQ0wsQ0FBQzs4R0FsRlEsb0JBQW9CO2tHQUFwQixvQkFBb0IseVJDZGpDLDQyQkFjQTs7MkZEQWEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLGVBQWU7b0dBSUgsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUVYLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQXFCTix1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVHJhbnNmb3JtcywgUmFuZ2UsIE5vZGUsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgTGlua0Nsb3NlVHlwZXMsIExpbmtUYWdzIH0gZnJvbSAnLi4vbGluay50eXBlcyc7XG5pbXBvcnQgaXNVcmwgZnJvbSAnaXMtdXJsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtbGluay1lZGl0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay1lZGl0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVMaW5rRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICd0aGUtbGluay1lZGl0LWNvbnRhaW5lcic7XG5cbiAgICBASW5wdXQoKSB0YWc6IExpbmtUYWdzO1xuXG4gICAgQElucHV0KCkgbm9kZTogTm9kZTtcblxuICAgIEBJbnB1dCgpIGxpbmsgPSAnJztcblxuICAgIEBJbnB1dCgpIHRleHQgPSAnJztcblxuICAgIEBJbnB1dCgpIG9yaWdpblNlbGVjdGlvbjogUmFuZ2U7XG5cbiAgICBlZGl0b3I6IFRoZUVkaXRvcjtcblxuICAgIG9yaWdpbkxpbms6IHN0cmluZztcblxuICAgIG9yaWdpblRleHQ6IHN0cmluZztcblxuICAgIHZhbGlkYXRvckNvbmZpZyA9IHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7XG4gICAgICAgICAgICBsaW5rOiB7XG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICfpk77mjqXkuI3og73kuLrnqbonLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46ICfor7fovpPlhaXmraPnoa7nmoTpk77mjqUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAn5paH5pys5LiN6IO95Li656m6J1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OiBtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZURvY3VtZW50TW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1saW5rLWVkaXQtY29udGFpbmVyJykuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGh5UG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxhbnk+KSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMub3JpZ2luVGV4dCA9IHRoaXMudGV4dDtcbiAgICAgICAgdGhpcy5vcmlnaW5MaW5rID0gdGhpcy5saW5rO1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKHR5cGUgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSB0eXBlID09PSBMaW5rQ2xvc2VUeXBlcy5hcHBseTpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSB0aGlzLnRhZyA9PT0gTGlua1RhZ3MuaW5zZXJ0OlxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHRoaXMub3JpZ2luU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0b3IudW5kbygpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIHRoaXMudGFnID09PSBMaW5rVGFncy5lZGl0OlxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHRoaXMub3JpZ2luU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlUG9wb3Zlcih0eXBlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSh0eXBlKTtcbiAgICB9XG5cbiAgICBhcHBseUxpbmsoZm9ybSkge1xuICAgICAgICBjb25zdCBsaW5rID0gdGhpcy5saW5rLnRyaW0oKTtcbiAgICAgICAgaWYgKGlzVXJsKGxpbmspKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5rUGF0aCA9IFRoZVF1ZXJpZXMuZmluZFBhdGgodGhpcy5lZGl0b3IsIHRoaXMubm9kZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcmlnaW5MaW5rICE9PSBsaW5rKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2Rlcyh0aGlzLmVkaXRvciwgeyB1cmw6IGxpbmsgfSBhcyBDdXN0b21FbGVtZW50LCB7IGF0OiBsaW5rUGF0aCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWdpblRleHQgIT09IHRoaXMudGV4dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IEVkaXRvci5lZGdlcyh0aGlzLmVkaXRvciwgbGlua1BhdGgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0VGV4dCh0aGlzLmVkaXRvciwgdGhpcy50ZXh0LCB7IGF0OiB7IGFuY2hvcjogZW5kLCBmb2N1czogZW5kIH0gfSk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUodGhpcy5lZGl0b3IsIHsgYXQ6IHsgYW5jaG9yOiBzdGFydCwgZm9jdXM6IGVuZCB9IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVGhlRWRpdG9yLmZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBFZGl0b3IuYWZ0ZXIodGhpcy5lZGl0b3IsIGxpbmtQYXRoKSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcihMaW5rQ2xvc2VUeXBlcy5hcHBseSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtLnZhbGlkYXRvci5zZXRFbGVtZW50RXJyb3JNZXNzYWdlKGBsaW5rYCwgJ+ivt+i+k+WFpeato+ehrueahOmTvuaOpScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm0gdGh5Rm9ybSAjbGlua0Zvcm09XCJ0aHlGb3JtXCIgW3RoeUZvcm1WYWxpZGF0b3JDb25maWddPVwidmFsaWRhdG9yQ29uZmlnXCIgbmFtZT1cImxpbmtGb3JtXCI+XG4gIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFRleHQ9XCLmlofmnKxcIj5cbiAgICA8aW5wdXQgdGh5SW5wdXQgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXmlofmnKxcIiByZXF1aXJlZCBuYW1lPVwidGV4dFwiIFsobmdNb2RlbCldPVwidGV4dFwiIHRoeUF1dG9mb2N1cyB0eXBlPVwidGV4dFwiIC8+XG4gIDwvdGh5LWZvcm0tZ3JvdXA+XG4gIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFRleHQ9XCLpk77mjqVcIj5cbiAgICA8aW5wdXQgbmFtZT1cImxpbmtcIiB0aHlJbnB1dCBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpemTvuaOpVwiIHJlcXVpcmVkIHR5cGU9XCJ0ZXh0XCIgI2xpbmtDb250cm9sPVwibmdNb2RlbFwiIFsobmdNb2RlbCldPVwibGlua1wiIC8+XG4gIDwvdGh5LWZvcm0tZ3JvdXA+XG4gIDx0aHktZm9ybS1ncm91cC1mb290ZXI+XG4gICAgPGRpdiBjbGFzcz1cImJ0bi1wYWlyXCI+XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cImxpbmstc2Vjb25kYXJ5XCIgdGh5U2l6ZT1cInNtXCIgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCI+5Y+W5raIPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cInByaW1hcnktc3F1YXJlXCIgdGh5U2l6ZT1cInNtXCIgKHRoeUZvcm1TdWJtaXQpPVwiYXBwbHlMaW5rKGxpbmtGb3JtKVwiPuW6lOeUqDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3RoeS1mb3JtLWdyb3VwLWZvb3Rlcj5cbjwvZm9ybT5cbiJdfQ==