@worktile/theia 18.0.16 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/constants/node-types.d.ts +1 -0
  2. package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
  3. package/fesm2022/worktile-theia.mjs +262 -281
  4. package/fesm2022/worktile-theia.mjs.map +1 -1
  5. package/package.json +4 -6
  6. package/plugins/code/code.component.scss +1 -2
  7. package/plugins/image/image.component.d.ts +1 -1
  8. package/plugins/mention/suggestion.component.d.ts +1 -1
  9. package/esm2022/components/action/prevent-default.mjs +0 -21
  10. package/esm2022/components/column-resize/column-resize-notifier.mjs +0 -31
  11. package/esm2022/components/column-resize/column-resize.directive.mjs +0 -124
  12. package/esm2022/components/column-resize/event-dispatcher.mjs +0 -56
  13. package/esm2022/components/column-resize/overlay-handle.component.mjs +0 -144
  14. package/esm2022/components/column-resize/resize-ref.mjs +0 -26
  15. package/esm2022/components/column-resize/resizing.store.mjs +0 -92
  16. package/esm2022/components/column-resize/selectors.mjs +0 -4
  17. package/esm2022/components/contextmenu/contextmenu.component.mjs +0 -99
  18. package/esm2022/components/conversion-hint/conversion-hint.component.mjs +0 -56
  19. package/esm2022/components/element/element.component.mjs +0 -23
  20. package/esm2022/components/index.mjs +0 -24
  21. package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +0 -131
  22. package/esm2022/components/listbox/listbox.mjs +0 -380
  23. package/esm2022/components/listbox/listbox.type.mjs +0 -5
  24. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +0 -272
  25. package/esm2022/components/table-select/table-select.component.mjs +0 -49
  26. package/esm2022/components/template/template.component.mjs +0 -62
  27. package/esm2022/components/text/text.component.mjs +0 -57
  28. package/esm2022/components/toolbar/toolbar.component.mjs +0 -262
  29. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -137
  30. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +0 -125
  31. package/esm2022/components/toolbar-item/toolbar-item.component.mjs +0 -80
  32. package/esm2022/constants/auto-format-rules.mjs +0 -167
  33. package/esm2022/constants/code.mjs +0 -85
  34. package/esm2022/constants/color-select.mjs +0 -3
  35. package/esm2022/constants/default.mjs +0 -11
  36. package/esm2022/constants/error.mjs +0 -7
  37. package/esm2022/constants/index.mjs +0 -9
  38. package/esm2022/constants/node-types.mjs +0 -136
  39. package/esm2022/constants/plugin-menu.mjs +0 -311
  40. package/esm2022/constants/selector.mjs +0 -3
  41. package/esm2022/constants/toolbar.mjs +0 -53
  42. package/esm2022/core/create-plugin.mjs +0 -5
  43. package/esm2022/core/create-toolbar.mjs +0 -55
  44. package/esm2022/core/index.mjs +0 -6
  45. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +0 -95
  46. package/esm2022/core/utils/combine-plugins.mjs +0 -10
  47. package/esm2022/core/utils/flatten-deep-plugins.mjs +0 -19
  48. package/esm2022/core/utils/get-plugin-options.mjs +0 -3
  49. package/esm2022/core/utils/get-plugin.mjs +0 -2
  50. package/esm2022/core/utils/get-plugins.mjs +0 -4
  51. package/esm2022/core/utils/index.mjs +0 -12
  52. package/esm2022/core/utils/merge-array.mjs +0 -18
  53. package/esm2022/core/utils/merge-deep-plugins.mjs +0 -14
  54. package/esm2022/core/utils/merge-options.mjs +0 -25
  55. package/esm2022/core/utils/nested-structure-by-key.mjs +0 -11
  56. package/esm2022/core/utils/plugin-menu.mjs +0 -63
  57. package/esm2022/core/utils/plugins-by-key.mjs +0 -10
  58. package/esm2022/core/with-theia.mjs +0 -25
  59. package/esm2022/custom-types.mjs +0 -2
  60. package/esm2022/editor.component.mjs +0 -488
  61. package/esm2022/editor.module.mjs +0 -18
  62. package/esm2022/i18n/i18n.mjs +0 -10
  63. package/esm2022/i18n/i18n.service.mjs +0 -46
  64. package/esm2022/i18n/i18n.token.mjs +0 -9
  65. package/esm2022/i18n/index.mjs +0 -10
  66. package/esm2022/i18n/locales/de-de.mjs +0 -102
  67. package/esm2022/i18n/locales/en-us.mjs +0 -102
  68. package/esm2022/i18n/locales/ja-jp.mjs +0 -102
  69. package/esm2022/i18n/locales/ru-ru.mjs +0 -102
  70. package/esm2022/i18n/locales/zh-hans.mjs +0 -102
  71. package/esm2022/i18n/locales/zh-hant.mjs +0 -102
  72. package/esm2022/interfaces/auto-format.mjs +0 -2
  73. package/esm2022/interfaces/editor.mjs +0 -26
  74. package/esm2022/interfaces/element.mjs +0 -2
  75. package/esm2022/interfaces/image.mjs +0 -3
  76. package/esm2022/interfaces/index.mjs +0 -11
  77. package/esm2022/interfaces/plugins/index.mjs +0 -6
  78. package/esm2022/interfaces/plugins/no-infer.mjs +0 -2
  79. package/esm2022/interfaces/plugins/plugin-key.mjs +0 -42
  80. package/esm2022/interfaces/plugins/plugin-menu.mjs +0 -19
  81. package/esm2022/interfaces/plugins/plugins.mjs +0 -2
  82. package/esm2022/interfaces/plugins/with-override.mjs +0 -2
  83. package/esm2022/interfaces/preset.mjs +0 -3
  84. package/esm2022/interfaces/reset-block-type-plugin-options.mjs +0 -2
  85. package/esm2022/interfaces/toolbar.mjs +0 -12
  86. package/esm2022/interfaces/upload.mjs +0 -2
  87. package/esm2022/interfaces/utility/index.mjs +0 -4
  88. package/esm2022/interfaces/utility/nested-structure-by-key.mjs +0 -2
  89. package/esm2022/interfaces/utility/override-by-key.mjs +0 -2
  90. package/esm2022/interfaces/utility/types.mjs +0 -2
  91. package/esm2022/interfaces/valid-children-types.mjs +0 -36
  92. package/esm2022/interfaces/view-base.mjs +0 -38
  93. package/esm2022/pipes.mjs +0 -61
  94. package/esm2022/plugins/align/align.editor.mjs +0 -41
  95. package/esm2022/plugins/align/align.plugin.mjs +0 -64
  96. package/esm2022/plugins/autoformat/autoformat.plugin.mjs +0 -109
  97. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
  98. package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
  99. package/esm2022/plugins/blockquote/blockquote.component.mjs +0 -16
  100. package/esm2022/plugins/blockquote/blockquote.editor.mjs +0 -20
  101. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +0 -84
  102. package/esm2022/plugins/code/code.component.mjs +0 -255
  103. package/esm2022/plugins/code/code.editor.mjs +0 -59
  104. package/esm2022/plugins/code/code.plugin.mjs +0 -67
  105. package/esm2022/plugins/color/color.editor.mjs +0 -27
  106. package/esm2022/plugins/color/color.plugin.mjs +0 -32
  107. package/esm2022/plugins/color/toolbar-item.component.mjs +0 -99
  108. package/esm2022/plugins/common/block-card.plugin.mjs +0 -330
  109. package/esm2022/plugins/common/common.plugin.mjs +0 -49
  110. package/esm2022/plugins/common/get-fragment.plugin.mjs +0 -24
  111. package/esm2022/plugins/common/history.plugin.mjs +0 -31
  112. package/esm2022/plugins/common/insert-data-by-invalid-type.mjs +0 -23
  113. package/esm2022/plugins/common/move-selection.plugin.mjs +0 -105
  114. package/esm2022/plugins/common/remove-empty.plugin.mjs +0 -61
  115. package/esm2022/plugins/common/remove-void.plugin.mjs +0 -60
  116. package/esm2022/plugins/common/reset-type.plugin.mjs +0 -35
  117. package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +0 -61
  118. package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +0 -142
  119. package/esm2022/plugins/font-size/font-size.editor.mjs +0 -98
  120. package/esm2022/plugins/heading/heading.editor.mjs +0 -54
  121. package/esm2022/plugins/heading/heading.plugin.mjs +0 -136
  122. package/esm2022/plugins/hr/hr.component.mjs +0 -37
  123. package/esm2022/plugins/hr/hr.editor.mjs +0 -16
  124. package/esm2022/plugins/hr/hr.plugin.mjs +0 -56
  125. package/esm2022/plugins/image/image.component.mjs +0 -474
  126. package/esm2022/plugins/image/image.editor.mjs +0 -116
  127. package/esm2022/plugins/image/image.plugin.mjs +0 -90
  128. package/esm2022/plugins/indent/indent.editor.mjs +0 -78
  129. package/esm2022/plugins/indent/indent.plugin.mjs +0 -59
  130. package/esm2022/plugins/indent/on-keydown-indent.mjs +0 -59
  131. package/esm2022/plugins/index.mjs +0 -73
  132. package/esm2022/plugins/inline-code/inline-code.component.mjs +0 -28
  133. package/esm2022/plugins/inline-code/inline-code.editor.mjs +0 -49
  134. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +0 -67
  135. package/esm2022/plugins/link/edit/link-edit.component.mjs +0 -104
  136. package/esm2022/plugins/link/hover/link-hover.component.mjs +0 -38
  137. package/esm2022/plugins/link/link.component.mjs +0 -170
  138. package/esm2022/plugins/link/link.editor.mjs +0 -87
  139. package/esm2022/plugins/link/link.plugin.mjs +0 -89
  140. package/esm2022/plugins/link/link.types.mjs +0 -12
  141. package/esm2022/plugins/list/components/bulleted-list.component.mjs +0 -28
  142. package/esm2022/plugins/list/components/list-item.component.mjs +0 -88
  143. package/esm2022/plugins/list/components/numbered-list.component.mjs +0 -37
  144. package/esm2022/plugins/list/list.editor.mjs +0 -128
  145. package/esm2022/plugins/list/list.plugin.mjs +0 -302
  146. package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
  147. package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +0 -18
  148. package/esm2022/plugins/list/normalizers/normalize-no.mjs +0 -43
  149. package/esm2022/plugins/list/on-key-down-list.mjs +0 -33
  150. package/esm2022/plugins/list/queries/get-list-item-entry.mjs +0 -28
  151. package/esm2022/plugins/list/queries/get-list-item-sublist.mjs +0 -12
  152. package/esm2022/plugins/list/queries/get-list-types.mjs +0 -5
  153. package/esm2022/plugins/list/queries/get-start-list-item.mjs +0 -27
  154. package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +0 -27
  155. package/esm2022/plugins/list/queries/is-in-list.mjs +0 -6
  156. package/esm2022/plugins/list/queries/is-list-nested.mjs +0 -10
  157. package/esm2022/plugins/list/queries/is-list.mjs +0 -5
  158. package/esm2022/plugins/list/queries/is-node-type-list.mjs +0 -5
  159. package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
  160. package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
  161. package/esm2022/plugins/list/queries/is-single-list-item.mjs +0 -9
  162. package/esm2022/plugins/list/transforms/insert-list-data.mjs +0 -72
  163. package/esm2022/plugins/list/transforms/insert-list-item.mjs +0 -73
  164. package/esm2022/plugins/list/transforms/move-list-item-down.mjs +0 -41
  165. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
  166. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
  167. package/esm2022/plugins/list/transforms/move-list-item-up.mjs +0 -78
  168. package/esm2022/plugins/list/transforms/unwrap-list.mjs +0 -10
  169. package/esm2022/plugins/list/types.mjs +0 -2
  170. package/esm2022/plugins/mark/mark.editor.mjs +0 -28
  171. package/esm2022/plugins/mark/mark.plugin.mjs +0 -105
  172. package/esm2022/plugins/mention/index.mjs +0 -5
  173. package/esm2022/plugins/mention/mention.editor.mjs +0 -179
  174. package/esm2022/plugins/mention/mention.plugin.mjs +0 -92
  175. package/esm2022/plugins/mention/mention.type.mjs +0 -2
  176. package/esm2022/plugins/mention/suggestion.component.mjs +0 -22
  177. package/esm2022/plugins/node-id/node-id.plugin.mjs +0 -78
  178. package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +0 -28
  179. package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +0 -18
  180. package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +0 -33
  181. package/esm2022/plugins/paint-format/paint-format.editor.mjs +0 -126
  182. package/esm2022/plugins/public-api.mjs +0 -20
  183. package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +0 -126
  184. package/esm2022/plugins/quick-insert/index.mjs +0 -4
  185. package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +0 -70
  186. package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +0 -109
  187. package/esm2022/plugins/soft-break/soft-break.plugin.mjs +0 -36
  188. package/esm2022/plugins/soft-break/soft-break.types.mjs +0 -2
  189. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -132
  190. package/esm2022/plugins/table/components/row/row.component.mjs +0 -93
  191. package/esm2022/plugins/table/components/table.component.mjs +0 -887
  192. package/esm2022/plugins/table/components/td/td.component.mjs +0 -610
  193. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +0 -102
  194. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -179
  195. package/esm2022/plugins/table/table.editor.mjs +0 -301
  196. package/esm2022/plugins/table/table.pipe.mjs +0 -66
  197. package/esm2022/plugins/table/table.plugin.mjs +0 -556
  198. package/esm2022/plugins/table/table.service.mjs +0 -122
  199. package/esm2022/plugins/table/table.store.mjs +0 -417
  200. package/esm2022/plugins/table/table.types.mjs +0 -68
  201. package/esm2022/plugins/table/toolbar-item.component.mjs +0 -95
  202. package/esm2022/plugins/table/transforms/clear-cell.mjs +0 -14
  203. package/esm2022/plugins/table/transforms/clear-table-node.mjs +0 -27
  204. package/esm2022/plugins/table/transforms/index.mjs +0 -8
  205. package/esm2022/plugins/table/transforms/insert-column.mjs +0 -69
  206. package/esm2022/plugins/table/transforms/insert-row.mjs +0 -50
  207. package/esm2022/plugins/table/transforms/insert-table.mjs +0 -15
  208. package/esm2022/plugins/table/transforms/move-selection-from-cell.mjs +0 -91
  209. package/esm2022/plugins/table/transforms/remove-column.mjs +0 -51
  210. package/esm2022/plugins/table/transforms/remove-row.mjs +0 -48
  211. package/esm2022/plugins/table/transforms/remove-table.mjs +0 -49
  212. package/esm2022/plugins/table/utils/add-columns.mjs +0 -38
  213. package/esm2022/plugins/table/utils/calc-anchor-position.mjs +0 -26
  214. package/esm2022/plugins/table/utils/calc-span.mjs +0 -73
  215. package/esm2022/plugins/table/utils/calculate-table.mjs +0 -116
  216. package/esm2022/plugins/table/utils/cell-position.mjs +0 -57
  217. package/esm2022/plugins/table/utils/create-cell.mjs +0 -19
  218. package/esm2022/plugins/table/utils/create-row.mjs +0 -12
  219. package/esm2022/plugins/table/utils/create-table-position.mjs +0 -10
  220. package/esm2022/plugins/table/utils/create-table.mjs +0 -15
  221. package/esm2022/plugins/table/utils/get-grid-columns.mjs +0 -79
  222. package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
  223. package/esm2022/plugins/table/utils/get-next-cell.mjs +0 -44
  224. package/esm2022/plugins/table/utils/get-select-cell-node.mjs +0 -16
  225. package/esm2022/plugins/table/utils/handle-cell.mjs +0 -25
  226. package/esm2022/plugins/table/utils/index.mjs +0 -16
  227. package/esm2022/plugins/table/utils/is-header-row.mjs +0 -15
  228. package/esm2022/plugins/table/utils/is-legal-table.mjs +0 -26
  229. package/esm2022/plugins/table/utils/is-range-in-table.mjs +0 -16
  230. package/esm2022/plugins/table/utils/is-selection-in-table.mjs +0 -51
  231. package/esm2022/plugins/table/utils/is-virtual-key.mjs +0 -13
  232. package/esm2022/plugins/table/utils/merge-cell.mjs +0 -110
  233. package/esm2022/plugins/table/utils/next-path.mjs +0 -5
  234. package/esm2022/plugins/table/utils/normalize-table.mjs +0 -31
  235. package/esm2022/plugins/table/utils/remove-columns.mjs +0 -23
  236. package/esm2022/plugins/table/utils/remove-row-column.mjs +0 -45
  237. package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
  238. package/esm2022/plugins/table/utils/split-cell.mjs +0 -29
  239. package/esm2022/plugins/table/utils/table-entry.mjs +0 -21
  240. package/esm2022/plugins/table/utils/table-position.mjs +0 -251
  241. package/esm2022/plugins/table/utils/table-viewport.mjs +0 -41
  242. package/esm2022/plugins/todo-item/todo-item.component.mjs +0 -65
  243. package/esm2022/plugins/todo-item/todo-item.editor.mjs +0 -32
  244. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +0 -93
  245. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +0 -95
  246. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +0 -59
  247. package/esm2022/public-api.mjs +0 -22
  248. package/esm2022/queries/anchor-block-entry.mjs +0 -13
  249. package/esm2022/queries/anchor-block.mjs +0 -6
  250. package/esm2022/queries/anchor-inline-entry.mjs +0 -10
  251. package/esm2022/queries/find-descendant.mjs +0 -47
  252. package/esm2022/queries/find-node.mjs +0 -45
  253. package/esm2022/queries/find-path.mjs +0 -28
  254. package/esm2022/queries/get-above-by-type.mjs +0 -14
  255. package/esm2022/queries/get-above.mjs +0 -9
  256. package/esm2022/queries/get-anchor-block-entry.mjs +0 -8
  257. package/esm2022/queries/get-block-above.mjs +0 -10
  258. package/esm2022/queries/get-block-card-above.mjs +0 -10
  259. package/esm2022/queries/get-block-card-cursor.mjs +0 -9
  260. package/esm2022/queries/get-container-blocks.mjs +0 -12
  261. package/esm2022/queries/get-directly-parent.mjs +0 -12
  262. package/esm2022/queries/get-insert-elements-path.mjs +0 -46
  263. package/esm2022/queries/get-last-child-path.mjs +0 -9
  264. package/esm2022/queries/get-last-node.mjs +0 -17
  265. package/esm2022/queries/get-next-sibling-nodes.mjs +0 -17
  266. package/esm2022/queries/get-node.mjs +0 -10
  267. package/esm2022/queries/get-nodes-by-type.mjs +0 -15
  268. package/esm2022/queries/get-nodes.mjs +0 -7
  269. package/esm2022/queries/get-parent.mjs +0 -12
  270. package/esm2022/queries/get-plain-text.mjs +0 -16
  271. package/esm2022/queries/get-plugin-by-toolbar.mjs +0 -13
  272. package/esm2022/queries/get-point-before.mjs +0 -62
  273. package/esm2022/queries/get-point-from-location.mjs +0 -15
  274. package/esm2022/queries/get-previous-path.mjs +0 -9
  275. package/esm2022/queries/get-rang-from-block-start.mjs +0 -16
  276. package/esm2022/queries/get-range-before.mjs +0 -17
  277. package/esm2022/queries/get-selection-marks.mjs +0 -18
  278. package/esm2022/queries/get-selection-nodes-by-type.mjs +0 -30
  279. package/esm2022/queries/get-text.mjs +0 -9
  280. package/esm2022/queries/get-toolbar-disabled.mjs +0 -13
  281. package/esm2022/queries/index.mjs +0 -62
  282. package/esm2022/queries/is-across-blocks.mjs +0 -7
  283. package/esm2022/queries/is-ancestor-empty.mjs +0 -6
  284. package/esm2022/queries/is-ancestor.mjs +0 -3
  285. package/esm2022/queries/is-block-above-empty.mjs +0 -11
  286. package/esm2022/queries/is-block-active.mjs +0 -8
  287. package/esm2022/queries/is-block-card-cursor.mjs +0 -16
  288. package/esm2022/queries/is-block-text-empty-after-selection.mjs +0 -31
  289. package/esm2022/queries/is-collapsed.mjs +0 -7
  290. package/esm2022/queries/is-contain-nested-type.mjs +0 -29
  291. package/esm2022/queries/is-container-type.mjs +0 -3
  292. package/esm2022/queries/is-descendant.mjs +0 -3
  293. package/esm2022/queries/is-empty-content-filter.mjs +0 -22
  294. package/esm2022/queries/is-empty-content.mjs +0 -15
  295. package/esm2022/queries/is-empty-paragraph-by-path.mjs +0 -7
  296. package/esm2022/queries/is-empty-paragraph.mjs +0 -28
  297. package/esm2022/queries/is-first-child.mjs +0 -5
  298. package/esm2022/queries/is-global-collapsed.mjs +0 -5
  299. package/esm2022/queries/is-include-types.mjs +0 -12
  300. package/esm2022/queries/is-node-type-in.mjs +0 -9
  301. package/esm2022/queries/is-node-type.mjs +0 -15
  302. package/esm2022/queries/is-paragraph.mjs +0 -9
  303. package/esm2022/queries/is-point-at-root.mjs +0 -2
  304. package/esm2022/queries/is-range-across-blocks.mjs +0 -22
  305. package/esm2022/queries/is-range-at-root.mjs +0 -3
  306. package/esm2022/queries/is-root-path.mjs +0 -2
  307. package/esm2022/queries/is-start.mjs +0 -6
  308. package/esm2022/queries/some-node.mjs +0 -9
  309. package/esm2022/services/context.service.mjs +0 -140
  310. package/esm2022/services/table-contextmenu.service.mjs +0 -288
  311. package/esm2022/services/toolbar.service.mjs +0 -47
  312. package/esm2022/shortcuts/index.mjs +0 -5
  313. package/esm2022/shortcuts/mark.mjs +0 -25
  314. package/esm2022/test/basic/basic.component.mjs +0 -61
  315. package/esm2022/test/faker/data-transfer-faker.mjs +0 -13
  316. package/esm2022/test/faker/tethys-icon-faker.mjs +0 -22
  317. package/esm2022/test/index.mjs +0 -7
  318. package/esm2022/test/utils/mock-plugins.mjs +0 -104
  319. package/esm2022/test/utils/preset-config.mjs +0 -17
  320. package/esm2022/test/utils/with-plugin.mjs +0 -11
  321. package/esm2022/transforms/apply-deep-to-nodes.mjs +0 -22
  322. package/esm2022/transforms/clear-marks.mjs +0 -23
  323. package/esm2022/transforms/delete-element.mjs +0 -12
  324. package/esm2022/transforms/delete-node-by-type.mjs +0 -10
  325. package/esm2022/transforms/handle-continual-delete-backward.mjs +0 -18
  326. package/esm2022/transforms/handle-continual-insert-break.mjs +0 -20
  327. package/esm2022/transforms/index.mjs +0 -19
  328. package/esm2022/transforms/insert-elements.mjs +0 -55
  329. package/esm2022/transforms/insert-paragraph.mjs +0 -6
  330. package/esm2022/transforms/merge-deep-to-nodes.mjs +0 -9
  331. package/esm2022/transforms/move-children.mjs +0 -22
  332. package/esm2022/transforms/on-keydown-reset-block-type.mjs +0 -23
  333. package/esm2022/transforms/set-end-selection.mjs +0 -10
  334. package/esm2022/transforms/set-marks.mjs +0 -9
  335. package/esm2022/transforms/set-node-by-type.mjs +0 -10
  336. package/esm2022/transforms/set-node.mjs +0 -6
  337. package/esm2022/transforms/un-hang-range.mjs +0 -11
  338. package/esm2022/transforms/un-wrap.mjs +0 -12
  339. package/esm2022/transforms/unwrap-nodes-by-type.mjs +0 -14
  340. package/esm2022/utils/auto-focus.mjs +0 -24
  341. package/esm2022/utils/blob.mjs +0 -16
  342. package/esm2022/utils/cast-array.mjs +0 -7
  343. package/esm2022/utils/color-picker.mjs +0 -15
  344. package/esm2022/utils/common.mjs +0 -11
  345. package/esm2022/utils/copy-node.mjs +0 -38
  346. package/esm2022/utils/create-empty-paragraph.mjs +0 -14
  347. package/esm2022/utils/data-transform.mjs +0 -48
  348. package/esm2022/utils/dom.mjs +0 -56
  349. package/esm2022/utils/editor-uuid.mjs +0 -8
  350. package/esm2022/utils/fragment.mjs +0 -82
  351. package/esm2022/utils/get-editable-element-height.mjs +0 -6
  352. package/esm2022/utils/get-mode.mjs +0 -14
  353. package/esm2022/utils/get-toolbar-class.mjs +0 -6
  354. package/esm2022/utils/id-creator.mjs +0 -11
  355. package/esm2022/utils/index.mjs +0 -23
  356. package/esm2022/utils/insert-data-by-invalid-type.mjs +0 -70
  357. package/esm2022/utils/is-clean-empty-paragraph.mjs +0 -37
  358. package/esm2022/utils/is-inline.mjs +0 -9
  359. package/esm2022/utils/lodash.mjs +0 -3
  360. package/esm2022/utils/match.mjs +0 -32
  361. package/esm2022/utils/merge-element-options.mjs +0 -19
  362. package/esm2022/utils/normalize.mjs +0 -61
  363. package/esm2022/utils/refocus.mjs +0 -47
  364. package/esm2022/utils/scrolling.mjs +0 -43
  365. package/esm2022/utils/update-popover-position.mjs +0 -26
  366. package/esm2022/utils/weak-maps.mjs +0 -9
  367. package/esm2022/worktile-theia.mjs +0 -5
@@ -1,16 +0,0 @@
1
- import { Editor } from 'slate';
2
- import { FAKE_LEFT_BLOCK_CARD_OFFSET, FAKE_RIGHT_BLOCK_CARD_OFFSET } from 'slate-angular';
3
- export const isBlockCardCursor = (editor, at) => {
4
- if (at) {
5
- const point = at && Editor.point(editor, at);
6
- return point.offset < 0;
7
- }
8
- return editor.selection.anchor.offset < 0;
9
- };
10
- export const isBlockCardLeftCursor = (selection) => {
11
- return selection?.anchor?.offset === FAKE_LEFT_BLOCK_CARD_OFFSET && selection?.focus?.offset === FAKE_LEFT_BLOCK_CARD_OFFSET;
12
- };
13
- export const isBlockCardRightCursor = (selection) => {
14
- return selection?.anchor?.offset === FAKE_RIGHT_BLOCK_CARD_OFFSET && selection?.focus?.offset === FAKE_RIGHT_BLOCK_CARD_OFFSET;
15
- };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYmxvY2stY2FyZC1jdXJzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1ibG9jay1jYXJkLWN1cnNvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFtQixNQUFNLE9BQU8sQ0FBQztBQUNoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBYSxFQUFFLEVBQUU7SUFDL0QsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNMLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFnQixFQUFFLEVBQUU7SUFDdEQsT0FBTyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSywyQkFBMkIsSUFBSSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSywyQkFBMkIsQ0FBQztBQUNqSSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQWdCLEVBQUUsRUFBRTtJQUN2RCxPQUFPLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLDRCQUE0QixJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLDRCQUE0QixDQUFDO0FBQ25JLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTG9jYXRpb24sIFJhbmdlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRkFLRV9MRUZUX0JMT0NLX0NBUkRfT0ZGU0VULCBGQUtFX1JJR0hUX0JMT0NLX0NBUkRfT0ZGU0VUIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5cbmV4cG9ydCBjb25zdCBpc0Jsb2NrQ2FyZEN1cnNvciA9IChlZGl0b3I6IEVkaXRvciwgYXQ/OiBMb2NhdGlvbikgPT4ge1xuICAgIGlmIChhdCkge1xuICAgICAgICBjb25zdCBwb2ludCA9IGF0ICYmIEVkaXRvci5wb2ludChlZGl0b3IsIGF0KTtcbiAgICAgICAgcmV0dXJuIHBvaW50Lm9mZnNldCA8IDA7XG4gICAgfVxuICAgIHJldHVybiBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5vZmZzZXQgPCAwO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQmxvY2tDYXJkTGVmdEN1cnNvciA9IChzZWxlY3Rpb246IFJhbmdlKSA9PiB7XG4gICAgcmV0dXJuIHNlbGVjdGlvbj8uYW5jaG9yPy5vZmZzZXQgPT09IEZBS0VfTEVGVF9CTE9DS19DQVJEX09GRlNFVCAmJiBzZWxlY3Rpb24/LmZvY3VzPy5vZmZzZXQgPT09IEZBS0VfTEVGVF9CTE9DS19DQVJEX09GRlNFVDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0Jsb2NrQ2FyZFJpZ2h0Q3Vyc29yID0gKHNlbGVjdGlvbjogUmFuZ2UpID0+IHtcbiAgICByZXR1cm4gc2VsZWN0aW9uPy5hbmNob3I/Lm9mZnNldCA9PT0gRkFLRV9SSUdIVF9CTE9DS19DQVJEX09GRlNFVCAmJiBzZWxlY3Rpb24/LmZvY3VzPy5vZmZzZXQgPT09IEZBS0VfUklHSFRfQkxPQ0tfQ0FSRF9PRkZTRVQ7XG59O1xuIl19
@@ -1,31 +0,0 @@
1
- import { Editor } from 'slate';
2
- import { getBlockAbove } from './get-block-above';
3
- import { getNextSiblingNodes } from './get-next-sibling-nodes';
4
- /**
5
- * Is there empty text after the selection.
6
- * If there is no leaf after the selected leaf, return {@link Editor.isEnd}.
7
- * Else, check if the next leaves are empty.
8
- */
9
- export const isBlockTextEmptyAfterSelection = (editor) => {
10
- if (!editor.selection) {
11
- return false;
12
- }
13
- const blockAbove = getBlockAbove(editor);
14
- const cursor = editor.selection.focus;
15
- if (!Editor.isEnd(editor, cursor, Editor.parent(editor, editor.selection)[1])) {
16
- return false;
17
- }
18
- const siblingNodes = getNextSiblingNodes(blockAbove, cursor.path);
19
- if (siblingNodes.length) {
20
- for (const siblingNode of siblingNodes) {
21
- if (siblingNode.text) {
22
- return false;
23
- }
24
- }
25
- }
26
- else {
27
- return Editor.isEnd(editor, cursor, blockAbove[1]);
28
- }
29
- return true;
30
- };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYmxvY2stdGV4dC1lbXB0eS1hZnRlci1zZWxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1ibG9jay10ZXh0LWVtcHR5LWFmdGVyLXNlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVFLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxFLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSyxXQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QixPQUFPLEtBQUssQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgVGV4dCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGdldEJsb2NrQWJvdmUgfSBmcm9tICcuL2dldC1ibG9jay1hYm92ZSc7XG5pbXBvcnQgeyBnZXROZXh0U2libGluZ05vZGVzIH0gZnJvbSAnLi9nZXQtbmV4dC1zaWJsaW5nLW5vZGVzJztcblxuLyoqXG4gKiBJcyB0aGVyZSBlbXB0eSB0ZXh0IGFmdGVyIHRoZSBzZWxlY3Rpb24uXG4gKiBJZiB0aGVyZSBpcyBubyBsZWFmIGFmdGVyIHRoZSBzZWxlY3RlZCBsZWFmLCByZXR1cm4ge0BsaW5rIEVkaXRvci5pc0VuZH0uXG4gKiBFbHNlLCBjaGVjayBpZiB0aGUgbmV4dCBsZWF2ZXMgYXJlIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgaXNCbG9ja1RleHRFbXB0eUFmdGVyU2VsZWN0aW9uID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgaWYgKCFlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBibG9ja0Fib3ZlID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IpO1xuXG4gICAgY29uc3QgY3Vyc29yID0gZWRpdG9yLnNlbGVjdGlvbi5mb2N1cztcblxuICAgIGlmICghRWRpdG9yLmlzRW5kKGVkaXRvciwgY3Vyc29yLCBFZGl0b3IucGFyZW50KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbilbMV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBzaWJsaW5nTm9kZXMgPSBnZXROZXh0U2libGluZ05vZGVzKGJsb2NrQWJvdmUsIGN1cnNvci5wYXRoKTtcblxuICAgIGlmIChzaWJsaW5nTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc2libGluZ05vZGUgb2Ygc2libGluZ05vZGVzKSB7XG4gICAgICAgICAgICBpZiAoKHNpYmxpbmdOb2RlIGFzIFRleHQpLnRleHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRWRpdG9yLmlzRW5kKGVkaXRvciwgY3Vyc29yLCBibG9ja0Fib3ZlWzFdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4iXX0=
@@ -1,7 +0,0 @@
1
- import { Range } from 'slate';
2
- /**
3
- * See {@link Range.isCollapsed}.
4
- * Return false if `range` is not defined.
5
- */
6
- export const isCollapsed = (range) => !!range && Range.isCollapsed(range);
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29sbGFwc2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvaXMtY29sbGFwc2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFOUI7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5cbi8qKlxuICogU2VlIHtAbGluayBSYW5nZS5pc0NvbGxhcHNlZH0uXG4gKiBSZXR1cm4gZmFsc2UgaWYgYHJhbmdlYCBpcyBub3QgZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29sbGFwc2VkID0gKHJhbmdlPzogUmFuZ2UgfCBudWxsKSA9PiAhIXJhbmdlICYmIFJhbmdlLmlzQ29sbGFwc2VkKHJhbmdlKTtcbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { Editor, Element } from 'slate';
2
- import { getBlockAbove } from './get-block-above';
3
- export const isContainNestedType = (editor, types) => {
4
- if (!Array.isArray(types)) {
5
- types = [types];
6
- }
7
- const [, anchorPath] = getBlockAbove(editor);
8
- if (!anchorPath)
9
- return false;
10
- const parentEntry = Editor.above(editor, { match: n => Element.isElement(n) && types.includes(n.type) });
11
- if (!parentEntry)
12
- return false;
13
- const [, parentPath] = parentEntry;
14
- const entry = Editor.above(editor, {
15
- at: parentPath,
16
- match: n => {
17
- if (!Element.isElement(n))
18
- return false;
19
- const isNestedStructure = editor.nestedStructureByKey[n.type];
20
- if (isNestedStructure)
21
- return true;
22
- return types.includes(n.type);
23
- }
24
- });
25
- if (entry)
26
- return true;
27
- return false;
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29udGFpbi1uZXN0ZWQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLWNvbnRhaW4tbmVzdGVkLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBYyxFQUFFLEtBQXdCLEVBQUUsRUFBRTtJQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLFVBQVU7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUU5QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pHLElBQUksQ0FBQyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFL0IsTUFBTSxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQy9CLEVBQUUsRUFBRSxVQUFVO1FBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQ3hDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RCxJQUFJLGlCQUFpQjtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7S0FDSixDQUFDLENBQUM7SUFDSCxJQUFJLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV2QixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBnZXRCbG9ja0Fib3ZlIH0gZnJvbSAnLi9nZXQtYmxvY2stYWJvdmUnO1xuXG5leHBvcnQgY29uc3QgaXNDb250YWluTmVzdGVkVHlwZSA9IChlZGl0b3I6IEVkaXRvciwgdHlwZXM6IHN0cmluZ1tdIHwgc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHR5cGVzKSkge1xuICAgICAgICB0eXBlcyA9IFt0eXBlc107XG4gICAgfVxuICAgIGNvbnN0IFssIGFuY2hvclBhdGhdID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IpO1xuICAgIGlmICghYW5jaG9yUGF0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcGFyZW50RW50cnkgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7IG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIHR5cGVzLmluY2x1ZGVzKG4udHlwZSkgfSk7XG4gICAgaWYgKCFwYXJlbnRFbnRyeSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgWywgcGFyZW50UGF0aF0gPSBwYXJlbnRFbnRyeTtcbiAgICBjb25zdCBlbnRyeSA9IEVkaXRvci5hYm92ZShlZGl0b3IsIHtcbiAgICAgICAgYXQ6IHBhcmVudFBhdGgsXG4gICAgICAgIG1hdGNoOiBuID0+IHtcbiAgICAgICAgICAgIGlmICghRWxlbWVudC5pc0VsZW1lbnQobikpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGlzTmVzdGVkU3RydWN0dXJlID0gZWRpdG9yLm5lc3RlZFN0cnVjdHVyZUJ5S2V5W24udHlwZV07XG4gICAgICAgICAgICBpZiAoaXNOZXN0ZWRTdHJ1Y3R1cmUpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVzLmluY2x1ZGVzKG4udHlwZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZW50cnkpIHJldHVybiB0cnVlO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { Element } from 'slate';
2
- export const isContainer = (editor, value) => Element.isElement(value) && editor.isContainer && editor.isContainer(value);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29udGFpbmVyLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1jb250YWluZXItdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFVLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQWMsRUFBRSxLQUFjLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCwgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgY29uc3QgaXNDb250YWluZXIgPSAoZWRpdG9yOiBFZGl0b3IsIHZhbHVlOiBFbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudCh2YWx1ZSkgJiYgZWRpdG9yLmlzQ29udGFpbmVyICYmIGVkaXRvci5pc0NvbnRhaW5lcih2YWx1ZSk7XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { Element, Text } from 'slate';
2
- export const isDescendant = (node) => Element.isElement(node) || Text.isText(node);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZGVzY2VuZGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLWRlc2NlbmRhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBUyxFQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCwgVGV4dCB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGNvbnN0IGlzRGVzY2VuZGFudCA9IChub2RlOiBhbnkpOiBub2RlIGlzIERlc2NlbmRhbnQgPT4gRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgfHwgVGV4dC5pc1RleHQobm9kZSk7XG4iXX0=
@@ -1,22 +0,0 @@
1
- import { Node } from 'slate';
2
- import { ElementKinds } from '../constants';
3
- export const isEmptyContentByFilter = (editor, rules) => {
4
- if (!editor?.children || editor?.children.length < 1) {
5
- return true;
6
- }
7
- const defaultTypes = [ElementKinds.code, ElementKinds.table, ElementKinds.image];
8
- const containTypes = rules?.containTypes ? [...defaultTypes, ...rules.containTypes] : defaultTypes;
9
- const textSpace = rules?.textSpace !== undefined ? rules.textSpace : true;
10
- const filterNodes = Array.from(Node.elements(editor));
11
- if (filterNodes.some(n => n[0]?.type && containTypes.includes(n[0].type))) {
12
- return false;
13
- }
14
- const nodesEntry = Node.texts(editor);
15
- const nodes = Array.from(nodesEntry);
16
- const allText = nodes.reduce((total, text) => (total += text[0].text), '');
17
- const filterText = textSpace ? allText.replace(/\s+/g, '') : allText;
18
- const textLength = filterText?.length ?? 0;
19
- const isEmptyText = textLength <= 0;
20
- return isEmptyText;
21
- };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZW1wdHktY29udGVudC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1lbXB0eS1jb250ZW50LWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFTNUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsS0FBa0IsRUFBRSxFQUFFO0lBQ3pFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxJQUFJLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakYsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ25HLE1BQU0sU0FBUyxHQUFHLEtBQUssRUFBRSxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFdEQsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEUsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNyRSxNQUFNLFVBQVUsR0FBRyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMzQyxNQUFNLFdBQVcsR0FBRyxVQUFVLElBQUksQ0FBQyxDQUFDO0lBRXBDLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyUnVsZSB7XG4gICAgLy8g566X5a6e6ZmF5YaF5a6555qE57G75Z6LXG4gICAgY29udGFpblR5cGVzPzogc3RyaW5nW107XG4gICAgLy8g5piv5ZCm5o6S6Zmk5paH5pys55qE56m65qC8XG4gICAgdGV4dFNwYWNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlDb250ZW50QnlGaWx0ZXIgPSAoZWRpdG9yOiBFZGl0b3IsIHJ1bGVzPzogRmlsdGVyUnVsZSkgPT4ge1xuICAgIGlmICghZWRpdG9yPy5jaGlsZHJlbiB8fCBlZGl0b3I/LmNoaWxkcmVuLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRUeXBlcyA9IFtFbGVtZW50S2luZHMuY29kZSwgRWxlbWVudEtpbmRzLnRhYmxlLCBFbGVtZW50S2luZHMuaW1hZ2VdO1xuICAgIGNvbnN0IGNvbnRhaW5UeXBlcyA9IHJ1bGVzPy5jb250YWluVHlwZXMgPyBbLi4uZGVmYXVsdFR5cGVzLCAuLi5ydWxlcy5jb250YWluVHlwZXNdIDogZGVmYXVsdFR5cGVzO1xuICAgIGNvbnN0IHRleHRTcGFjZSA9IHJ1bGVzPy50ZXh0U3BhY2UgIT09IHVuZGVmaW5lZCA/IHJ1bGVzLnRleHRTcGFjZSA6IHRydWU7XG4gICAgY29uc3QgZmlsdGVyTm9kZXMgPSBBcnJheS5mcm9tKE5vZGUuZWxlbWVudHMoZWRpdG9yKSk7XG5cbiAgICBpZiAoZmlsdGVyTm9kZXMuc29tZShuID0+IG5bMF0/LnR5cGUgJiYgY29udGFpblR5cGVzLmluY2x1ZGVzKG5bMF0udHlwZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBub2Rlc0VudHJ5ID0gTm9kZS50ZXh0cyhlZGl0b3IpO1xuICAgIGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbShub2Rlc0VudHJ5KTtcbiAgICBjb25zdCBhbGxUZXh0ID0gbm9kZXMucmVkdWNlKCh0b3RhbCwgdGV4dCkgPT4gKHRvdGFsICs9IHRleHRbMF0udGV4dCksICcnKTtcbiAgICBjb25zdCBmaWx0ZXJUZXh0ID0gdGV4dFNwYWNlID8gYWxsVGV4dC5yZXBsYWNlKC9cXHMrL2csICcnKSA6IGFsbFRleHQ7XG4gICAgY29uc3QgdGV4dExlbmd0aCA9IGZpbHRlclRleHQ/Lmxlbmd0aCA/PyAwO1xuICAgIGNvbnN0IGlzRW1wdHlUZXh0ID0gdGV4dExlbmd0aCA8PSAwO1xuXG4gICAgcmV0dXJuIGlzRW1wdHlUZXh0O1xufTtcbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { Node } from 'slate';
2
- import { ElementKinds } from '../constants/node-types';
3
- export const isEmptyContent = (children) => {
4
- if (!children || children.length < 1) {
5
- return true;
6
- }
7
- if (children && children.length === 1) {
8
- const firstNode = children[0];
9
- if (firstNode.type === ElementKinds.default && firstNode.children.length === 1 && !Node.string(firstNode)) {
10
- return true;
11
- }
12
- }
13
- return false;
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZW1wdHktY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLWVtcHR5LWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLElBQUksRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBc0IsRUFBRSxFQUFFO0lBQ3JELElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFZLENBQUM7UUFDekMsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3hHLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY2VuZGFudCwgTm9kZSwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlDb250ZW50ID0gKGNoaWxkcmVuOiBEZXNjZW5kYW50W10pID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgY29uc3QgZmlyc3ROb2RlID0gY2hpbGRyZW5bMF0gYXMgRWxlbWVudDtcbiAgICAgICAgaWYgKGZpcnN0Tm9kZS50eXBlID09PSBFbGVtZW50S2luZHMuZGVmYXVsdCAmJiBmaXJzdE5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmICFOb2RlLnN0cmluZyhmaXJzdE5vZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuIl19
@@ -1,7 +0,0 @@
1
- import { Editor, Node } from 'slate';
2
- import { ElementKinds } from '../constants/node-types';
3
- export const isEmptyParagraphByPath = (editor, at) => {
4
- const block = Node.get(editor, at);
5
- return Editor.isEmpty(editor, block) && block.type === ElementKinds.paragraph;
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZW1wdHktcGFyYWdyYXBoLWJ5LXBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1lbXB0eS1wYXJhZ3JhcGgtYnktcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQVEsRUFBRSxFQUFFO0lBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBWSxDQUFDO0lBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDO0FBQ2xGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTm9kZSwgUGF0aCwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlQYXJhZ3JhcGhCeVBhdGggPSAoZWRpdG9yOiBFZGl0b3IsIGF0OiBQYXRoKSA9PiB7XG4gICAgY29uc3QgYmxvY2sgPSBOb2RlLmdldChlZGl0b3IsIGF0KSBhcyBFbGVtZW50O1xuICAgIHJldHVybiBFZGl0b3IuaXNFbXB0eShlZGl0b3IsIGJsb2NrKSAmJiBibG9jay50eXBlID09PSBFbGVtZW50S2luZHMucGFyYWdyYXBoO1xufTtcbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { Editor, Node } from 'slate';
2
- import { ElementKinds } from '../constants/node-types';
3
- import { getAnchorBlockEntry } from './get-anchor-block-entry';
4
- import { isAncestorEmpty } from './is-ancestor-empty';
5
- export const isEmptyParagraph = (editor, at) => {
6
- const entry = getAnchorBlockEntry(editor, at);
7
- if (!entry) {
8
- return false;
9
- }
10
- const [block] = entry;
11
- return Editor.isEmpty(editor, block) && block.type === ElementKinds.paragraph;
12
- };
13
- export const isEmptyParagraphElement = (editor, element) => {
14
- const isParagraph = element.type === ElementKinds.paragraph;
15
- const isEmpty = isAncestorEmpty(editor, element);
16
- return isParagraph && isEmpty;
17
- };
18
- /**
19
- * 判断元素是否是空段落,仅仅包含空格或者\n算空段落
20
- * @param editor
21
- * @param element
22
- * @returns
23
- */
24
- export const isLogicEmptyParagraphElement = (editor, element) => {
25
- const text = Node.string(element).replace(/(\s|\n)*$/g, '');
26
- return text.length === 0 && !element.children.some(n => Editor.isInline(editor, n));
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZW1wdHktcGFyYWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvaXMtZW1wdHktcGFyYWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQXdCLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQWlCLEVBQUUsRUFBRTtJQUNsRSxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTLENBQUM7QUFDbEYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELE9BQU8sV0FBVyxJQUFJLE9BQU8sQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsTUFBYyxFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUM3RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFBhdGgsIFBvaW50LCBFbGVtZW50LCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0QW5jaG9yQmxvY2tFbnRyeSB9IGZyb20gJy4vZ2V0LWFuY2hvci1ibG9jay1lbnRyeSc7XG5pbXBvcnQgeyBpc0FuY2VzdG9yRW1wdHkgfSBmcm9tICcuL2lzLWFuY2VzdG9yLWVtcHR5JztcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlQYXJhZ3JhcGggPSAoZWRpdG9yOiBFZGl0b3IsIGF0PzogUGF0aCB8IFBvaW50KSA9PiB7XG4gICAgY29uc3QgZW50cnkgPSBnZXRBbmNob3JCbG9ja0VudHJ5KGVkaXRvciwgYXQpO1xuICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBbYmxvY2tdID0gZW50cnk7XG4gICAgcmV0dXJuIEVkaXRvci5pc0VtcHR5KGVkaXRvciwgYmxvY2spICYmIGJsb2NrLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGg7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eVBhcmFncmFwaEVsZW1lbnQgPSAoZWRpdG9yOiBFZGl0b3IsIGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc1BhcmFncmFwaCA9IGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLnBhcmFncmFwaDtcbiAgICBjb25zdCBpc0VtcHR5ID0gaXNBbmNlc3RvckVtcHR5KGVkaXRvciwgZWxlbWVudCk7XG4gICAgcmV0dXJuIGlzUGFyYWdyYXBoICYmIGlzRW1wdHk7XG59O1xuXG4vKipcbiAqIOWIpOaWreWFg+e0oOaYr+WQpuaYr+epuuauteiQve+8jOS7heS7heWMheWQq+epuuagvOaIluiAhVxcbueul+epuuauteiQvVxuICogQHBhcmFtIGVkaXRvclxuICogQHBhcmFtIGVsZW1lbnRcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBpc0xvZ2ljRW1wdHlQYXJhZ3JhcGhFbGVtZW50ID0gKGVkaXRvcjogRWRpdG9yLCBlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dCA9IE5vZGUuc3RyaW5nKGVsZW1lbnQpLnJlcGxhY2UoLyhcXHN8XFxuKSokL2csICcnKTtcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPT09IDAgJiYgIWVsZW1lbnQuY2hpbGRyZW4uc29tZShuID0+IEVkaXRvci5pc0lubGluZShlZGl0b3IsIG4pKTtcbn07XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Is it the first child of the parent
3
- */
4
- export const isFirstChild = (path) => path[path.length - 1] === 0;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZmlyc3QtY2hpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1maXJzdC1jaGlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aCB9IGZyb20gJ3NsYXRlJztcblxuLyoqXG4gKiBJcyBpdCB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIHBhcmVudFxuICovXG5leHBvcnQgY29uc3QgaXNGaXJzdENoaWxkID0gKHBhdGg6IFBhdGgpID0+IHBhdGhbcGF0aC5sZW5ndGggLSAxXSA9PT0gMDtcbiJdfQ==
@@ -1,5 +0,0 @@
1
- import { Range } from 'slate';
2
- export const isGlobalCollapsed = (editor) => {
3
- return editor && editor.selection && Range.isCollapsed(editor.selection);
4
- };
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZ2xvYmFsLWNvbGxhcHNlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLWdsb2JhbC1jb2xsYXBzZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQ2hELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGNvbnN0IGlzR2xvYmFsQ29sbGFwc2VkID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIGVkaXRvciAmJiBlZGl0b3Iuc2VsZWN0aW9uICYmIFJhbmdlLmlzQ29sbGFwc2VkKGVkaXRvci5zZWxlY3Rpb24pO1xufTtcbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { getAboveByType } from './get-above-by-type';
2
- export const isIncludeTypes = (editor, types) => {
3
- const parentType = [];
4
- types.map((item) => {
5
- const entry = getAboveByType(editor, item);
6
- if (entry) {
7
- parentType.push(entry[0].type);
8
- }
9
- });
10
- return parentType.length > 0;
11
- };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW5jbHVkZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLWluY2x1ZGUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQWMsRUFBRSxLQUEyQixFQUFFLEVBQUU7SUFDMUUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixVQUFVLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBQyxDQUFDLENBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBnZXRBYm92ZUJ5VHlwZSB9IGZyb20gJy4vZ2V0LWFib3ZlLWJ5LXR5cGUnO1xuXG5leHBvcnQgY29uc3QgaXNJbmNsdWRlVHlwZXMgPSAoZWRpdG9yOiBFZGl0b3IsIHR5cGVzOiBDdXN0b21FbGVtZW50S2luZHNbXSkgPT4ge1xuICAgIGNvbnN0IHBhcmVudFR5cGUgPSBbXTtcbiAgICB0eXBlcy5tYXAoKGl0ZW06IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBlbnRyeSA9IGdldEFib3ZlQnlUeXBlKGVkaXRvciwgaXRlbSk7XG4gICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgcGFyZW50VHlwZS5wdXNoKChlbnRyeVswXSBhcyBFbGVtZW50KS50eXBlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwYXJlbnRUeXBlLmxlbmd0aCA+IDA7XG59O1xuIl19
@@ -1,9 +0,0 @@
1
- import { getNodesByType } from './get-nodes-by-type';
2
- /**
3
- * Is there a node with a type included in `types` at a location (default: selection).
4
- */
5
- export const isNodeTypeIn = (editor, types, options = {}) => {
6
- const [match] = getNodesByType(editor, types, options);
7
- return !!match;
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm9kZS10eXBlLWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvaXMtbm9kZS10eXBlLWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQWMsRUFBRSxLQUF3QixFQUFFLFVBQTZDLEVBQUUsRUFBRSxFQUFFO0lBQ3RILE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWRpdG9yTm9kZXNPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXROb2Rlc0J5VHlwZSB9IGZyb20gJy4vZ2V0LW5vZGVzLWJ5LXR5cGUnO1xuXG4vKipcbiAqIElzIHRoZXJlIGEgbm9kZSB3aXRoIGEgdHlwZSBpbmNsdWRlZCBpbiBgdHlwZXNgIGF0IGEgbG9jYXRpb24gKGRlZmF1bHQ6IHNlbGVjdGlvbikuXG4gKi9cbmV4cG9ydCBjb25zdCBpc05vZGVUeXBlSW4gPSAoZWRpdG9yOiBFZGl0b3IsIHR5cGVzOiBzdHJpbmdbXSB8IHN0cmluZywgb3B0aW9uczogT21pdDxFZGl0b3JOb2Rlc09wdGlvbnMsICdtYXRjaCc+ID0ge30pID0+IHtcbiAgICBjb25zdCBbbWF0Y2hdID0gZ2V0Tm9kZXNCeVR5cGUoZWRpdG9yLCB0eXBlcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuICEhbWF0Y2g7XG59O1xuIl19
@@ -1,15 +0,0 @@
1
- /**
2
- * Is the node entry filling a condition.
3
- */
4
- export const isNodeType = (entry, { filter = () => true, allow = [], exclude = [] } = {}) => {
5
- let filterAllow = () => true;
6
- if (allow.length) {
7
- filterAllow = ([n]) => allow.includes(n.type);
8
- }
9
- let filterExclude = () => true;
10
- if (exclude.length) {
11
- filterExclude = ([n]) => !exclude.includes(n.type);
12
- }
13
- return !!entry && filter(entry) && filterAllow(entry) && filterExclude(entry);
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm9kZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvaXMtbm9kZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBdUIsRUFBRSxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxLQUFtQixFQUFFLEVBQUUsRUFBRTtJQUN4SCxJQUFJLFdBQVcsR0FBa0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzVDLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBRSxDQUFhLENBQUMsSUFBYyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksYUFBYSxHQUFrQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFFLENBQWEsQ0FBQyxJQUFjLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUsIE5vZGVFbnRyeSwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIElzIHRoZSBub2RlIGVudHJ5IGZpbGxpbmcgYSBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBpc05vZGVUeXBlID0gKGVudHJ5PzogTm9kZUVudHJ5PE5vZGU+LCB7IGZpbHRlciA9ICgpID0+IHRydWUsIGFsbG93ID0gW10sIGV4Y2x1ZGUgPSBbXSB9OiBRdWVyeU9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIGxldCBmaWx0ZXJBbGxvdzogdHlwZW9mIGZpbHRlciA9ICgpID0+IHRydWU7XG4gICAgaWYgKGFsbG93Lmxlbmd0aCkge1xuICAgICAgICBmaWx0ZXJBbGxvdyA9IChbbl0pID0+IGFsbG93LmluY2x1ZGVzKChuIGFzIEVsZW1lbnQpLnR5cGUgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBsZXQgZmlsdGVyRXhjbHVkZTogdHlwZW9mIGZpbHRlciA9ICgpID0+IHRydWU7XG4gICAgaWYgKGV4Y2x1ZGUubGVuZ3RoKSB7XG4gICAgICAgIGZpbHRlckV4Y2x1ZGUgPSAoW25dKSA9PiAhZXhjbHVkZS5pbmNsdWRlcygobiBhcyBFbGVtZW50KS50eXBlIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhZW50cnkgJiYgZmlsdGVyKGVudHJ5KSAmJiBmaWx0ZXJBbGxvdyhlbnRyeSkgJiYgZmlsdGVyRXhjbHVkZShlbnRyeSk7XG59O1xuIl19
@@ -1,9 +0,0 @@
1
- import { Editor, Element } from 'slate';
2
- import { ElementKinds } from '../constants/node-types';
3
- export const isParagraph = (editor) => {
4
- const [match] = Editor.nodes(editor, {
5
- match: n => Element.isElement(n) && n.type === ElementKinds.paragraph
6
- });
7
- return !!match;
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcGFyYWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvaXMtcGFyYWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUMxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDakMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTO0tBQ3hFLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc1BhcmFncmFwaCA9IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgIGNvbnN0IFttYXRjaF0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7XG4gICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLnBhcmFncmFwaFxuICAgIH0pO1xuICAgIHJldHVybiAhIW1hdGNoO1xufTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export const isPointAtRoot = (point) => point.path.length === 2;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcG9pbnQtYXQtcm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLXBvaW50LWF0LXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2ludCB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGNvbnN0IGlzUG9pbnRBdFJvb3QgPSAocG9pbnQ6IFBvaW50KSA9PiBwb2ludC5wYXRoLmxlbmd0aCA9PT0gMjtcbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { Editor, Path, Range } from 'slate';
2
- import { getBlockAbove } from './get-block-above';
3
- /**
4
- * Is the range (default: selection) across blocks.
5
- */
6
- export const isRangeAcrossBlocks = (editor, { at, ...options } = {}) => {
7
- if (!at)
8
- at = editor.selection;
9
- if (!at)
10
- return false;
11
- const [start, end] = Range.edges(at);
12
- const startBlock = getBlockAbove(editor, {
13
- at: start,
14
- ...options
15
- });
16
- const endBlock = Editor.above(editor, {
17
- at: end,
18
- ...options
19
- });
20
- return startBlock && endBlock && !Path.equals(startBlock[1], endBlock[1]);
21
- };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcmFuZ2UtYWNyb3NzLWJsb2Nrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLXJhbmdlLWFjcm9zcy1ibG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQy9CLE1BQWMsRUFDZCxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sS0FBdUUsRUFBRSxFQUMzRixFQUFFO0lBQ0EsSUFBSSxDQUFDLEVBQUU7UUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMvQixJQUFJLENBQUMsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXRCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3JDLEVBQUUsRUFBRSxLQUFLO1FBQ1QsR0FBRyxPQUFPO0tBQ2IsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDbEMsRUFBRSxFQUFFLEdBQUc7UUFDUCxHQUFHLE9BQU87S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFBhdGgsIFJhbmdlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWRpdG9yQWJvdmVPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRCbG9ja0Fib3ZlIH0gZnJvbSAnLi9nZXQtYmxvY2stYWJvdmUnO1xuXG4vKipcbiAqIElzIHRoZSByYW5nZSAoZGVmYXVsdDogc2VsZWN0aW9uKSBhY3Jvc3MgYmxvY2tzLlxuICovXG5leHBvcnQgY29uc3QgaXNSYW5nZUFjcm9zc0Jsb2NrcyA9IChcbiAgICBlZGl0b3I6IEVkaXRvcixcbiAgICB7IGF0LCAuLi5vcHRpb25zIH06IE9taXQ8RWRpdG9yQWJvdmVPcHRpb25zLCAnYXQnIHwgJ21hdGNoJz4gJiB7IGF0PzogUmFuZ2UgfCBudWxsIH0gPSB7fVxuKSA9PiB7XG4gICAgaWYgKCFhdCkgYXQgPSBlZGl0b3Iuc2VsZWN0aW9uO1xuICAgIGlmICghYXQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IFJhbmdlLmVkZ2VzKGF0KTtcbiAgICBjb25zdCBzdGFydEJsb2NrID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IsIHtcbiAgICAgICAgYXQ6IHN0YXJ0LFxuICAgICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gICAgY29uc3QgZW5kQmxvY2sgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgIGF0OiBlbmQsXG4gICAgICAgIC4uLm9wdGlvbnNcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGFydEJsb2NrICYmIGVuZEJsb2NrICYmICFQYXRoLmVxdWFscyhzdGFydEJsb2NrWzFdLCBlbmRCbG9ja1sxXSk7XG59O1xuIl19
@@ -1,3 +0,0 @@
1
- import { isPointAtRoot } from './is-point-at-root';
2
- export const isRangeAtRoot = (range) => isPointAtRoot(range.anchor) || isPointAtRoot(range.focus);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcmFuZ2UtYXQtcm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9xdWVyaWVzL2lzLXJhbmdlLWF0LXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBpc1BvaW50QXRSb290IH0gZnJvbSAnLi9pcy1wb2ludC1hdC1yb290JztcblxuZXhwb3J0IGNvbnN0IGlzUmFuZ2VBdFJvb3QgPSAocmFuZ2U6IFJhbmdlKSA9PiBpc1BvaW50QXRSb290KHJhbmdlLmFuY2hvcikgfHwgaXNQb2ludEF0Um9vdChyYW5nZS5mb2N1cyk7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export const isRootPath = (path) => path.length === 1;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcm9vdC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvaXMtcm9vdC1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgY29uc3QgaXNSb290UGF0aCA9IChwYXRoOiBQYXRoKSA9PiBwYXRoLmxlbmd0aCA9PT0gMTtcbiJdfQ==
@@ -1,6 +0,0 @@
1
- import { Editor } from 'slate';
2
- /**
3
- * {@link Editor.isStart}. If point is null, return false.
4
- */
5
- export const isStart = (editor, point, at) => !!point && Editor.isStart(editor, point, at);
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFtQixNQUFNLE9BQU8sQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQWMsRUFBRSxLQUErQixFQUFFLEVBQVksRUFBVyxFQUFFLENBQzlGLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBMb2NhdGlvbiwgUG9pbnQgfSBmcm9tICdzbGF0ZSc7XG5cbi8qKlxuICoge0BsaW5rIEVkaXRvci5pc1N0YXJ0fS4gSWYgcG9pbnQgaXMgbnVsbCwgcmV0dXJuIGZhbHNlLlxuICovXG5leHBvcnQgY29uc3QgaXNTdGFydCA9IChlZGl0b3I6IEVkaXRvciwgcG9pbnQ6IFBvaW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgYXQ6IExvY2F0aW9uKTogYm9vbGVhbiA9PlxuICAgICEhcG9pbnQgJiYgRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBwb2ludCwgYXQpO1xuIl19
@@ -1,9 +0,0 @@
1
- import { findNode } from './find-node';
2
- /**
3
- * Iterate through all of the nodes in the editor and break early for the first truthy match. Otherwise
4
- * returns false.
5
- */
6
- export const someNode = (editor, options) => {
7
- return !!findNode(editor, options);
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29tZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvc29tZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sYUFBYSxDQUFDO0FBRXhEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUF3QixNQUFjLEVBQUUsT0FBMkIsRUFBRSxFQUFFO0lBQzNGLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBSSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgZmluZE5vZGUsIEZpbmROb2RlT3B0aW9ucyB9IGZyb20gJy4vZmluZC1ub2RlJztcblxuLyoqXG4gKiBJdGVyYXRlIHRocm91Z2ggYWxsIG9mIHRoZSBub2RlcyBpbiB0aGUgZWRpdG9yIGFuZCBicmVhayBlYXJseSBmb3IgdGhlIGZpcnN0IHRydXRoeSBtYXRjaC4gT3RoZXJ3aXNlXG4gKiByZXR1cm5zIGZhbHNlLlxuICovXG5leHBvcnQgY29uc3Qgc29tZU5vZGUgPSA8VCBleHRlbmRzIE5vZGUgPSBOb2RlPihlZGl0b3I6IEVkaXRvciwgb3B0aW9uczogRmluZE5vZGVPcHRpb25zPFQ+KSA9PiB7XG4gICAgcmV0dXJuICEhZmluZE5vZGU8VD4oZWRpdG9yLCBvcHRpb25zKTtcbn07XG4iXX0=
@@ -1,140 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject, fromEvent } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { FontSizes, ScrollDirection } from '../constants/node-types';
5
- import * as i0 from "@angular/core";
6
- export class TheContextService {
7
- constructor(ngZone) {
8
- this.ngZone = ngZone;
9
- this.destroy$ = new Subject();
10
- this.uploadingFiles = [];
11
- this.paintFormatStatus = {
12
- isActive: false,
13
- marks: {}
14
- };
15
- this.containerScrolled$ = new Subject();
16
- this.uploadingStatus$ = new Subject();
17
- this.containerResized$ = new Subject();
18
- this.theEditorResized$ = new Subject();
19
- this.windowResized$ = new Subject();
20
- this.ngZone.runOutsideAngular(() => {
21
- this.onMouseUp$ = fromEvent(window, `mouseup`).pipe(takeUntil(this.destroy$));
22
- this.onMouseMove$ = fromEvent(window, `mousemove`).pipe(takeUntil(this.destroy$));
23
- this.onMouseDown$ = fromEvent(window, `mousedown`).pipe(takeUntil(this.destroy$));
24
- });
25
- }
26
- initialize(options) {
27
- this.options = options;
28
- this.rebindContainerScroll();
29
- this.bindContainerResize();
30
- this.bindTheEditorResize();
31
- this.bindWindowResize();
32
- }
33
- getScrollContainer() {
34
- const { scrollContainer } = this.options.editor?.options;
35
- return this.options.nativeElement.closest(scrollContainer) || this.options.nativeElement.querySelector(scrollContainer);
36
- }
37
- rebindContainerScroll() {
38
- this.scrollSubscription?.unsubscribe();
39
- const { scrollContainer } = this.options.editor?.options;
40
- if (scrollContainer) {
41
- const containerElement = this.getScrollContainer();
42
- if (containerElement) {
43
- this.ngZone.runOutsideAngular(() => {
44
- let previousContainerScroll = { x: 0, y: 0 };
45
- this.scrollSubscription = fromEvent(containerElement, 'scroll').subscribe(event => {
46
- const entires = { event, direction: ScrollDirection.Y };
47
- const target = event.target;
48
- const [x, y] = [target.scrollLeft, target.scrollTop];
49
- if (x !== previousContainerScroll.x) {
50
- entires.direction = ScrollDirection.X;
51
- }
52
- if (y !== previousContainerScroll.y) {
53
- entires.direction = ScrollDirection.Y;
54
- }
55
- previousContainerScroll = { x, y };
56
- this.containerScrolled$.next(entires);
57
- });
58
- });
59
- }
60
- }
61
- }
62
- bindContainerResize() {
63
- const containerElement = this.getScrollContainer();
64
- if (containerElement) {
65
- this.containerResizeObserver = this.elementResize(containerElement, this.containerResized$);
66
- }
67
- }
68
- bindTheEditorResize() {
69
- this.theEditorResizeObserver = this.elementResize(this.options.nativeElement, this.theEditorResized$);
70
- }
71
- bindWindowResize() {
72
- this.windowResizeObserver = this.elementResize(document.documentElement, this.windowResized$);
73
- }
74
- elementResize(element, subject) {
75
- let previousRect = null;
76
- const resizeObserver = new ResizeObserver((entires) => {
77
- if (!previousRect) {
78
- previousRect = entires[0].contentRect;
79
- return;
80
- }
81
- const currentRect = entires[0].contentRect;
82
- const result = { entry: entires[0], widthChanged: false, heightChanged: false };
83
- if (currentRect.width !== previousRect.width) {
84
- result.widthChanged = true;
85
- }
86
- if (currentRect.height !== previousRect.height) {
87
- result.heightChanged = true;
88
- }
89
- previousRect = currentRect;
90
- subject.next(result);
91
- });
92
- resizeObserver.observe(element);
93
- return resizeObserver;
94
- }
95
- getOptions() {
96
- if (!this.options.width) {
97
- const firstElementChild = this.getFirstElementChild();
98
- this.options.width = firstElementChild.offsetWidth;
99
- }
100
- return this.options;
101
- }
102
- getDefaultFontSize() {
103
- return this.options.editor?.options?.fontSize || FontSizes.fontSize14;
104
- }
105
- getEditableElement() {
106
- return this.options.nativeElement.querySelector('.the-editor-typo');
107
- }
108
- getFirstElementChild() {
109
- const editableElement = this.getEditableElement();
110
- return editableElement?.firstElementChild;
111
- }
112
- addUploadingFiles(file) {
113
- this.uploadingFiles.push(file);
114
- }
115
- removeUploadFile(file) {
116
- if (!file) {
117
- return;
118
- }
119
- this.uploadingFiles.splice(this.uploadingFiles.findIndex(item => item.url === file.url), 1);
120
- }
121
- ngOnDestroy() {
122
- this.uploadingStatus$.complete();
123
- this.containerScrolled$?.complete();
124
- this.theEditorResized$?.complete();
125
- this.containerResized$?.complete();
126
- this.containerResizeObserver?.disconnect();
127
- this.theEditorResizeObserver?.disconnect();
128
- this.windowResized$?.complete();
129
- this.windowResizeObserver?.disconnect();
130
- this.scrollSubscription?.unsubscribe();
131
- this.destroy$.next();
132
- this.destroy$.complete();
133
- }
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheContextService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
135
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheContextService }); }
136
- }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheContextService, decorators: [{
138
- type: Injectable
139
- }], ctorParameters: () => [{ type: i0.NgZone }] });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQWMsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8saUJBQWlCO0lBb0MxQixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWpDMUIsYUFBUSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSXpDLG1CQUFjLEdBQTJDLEVBQUUsQ0FBQztRQUU1RCxzQkFBaUIsR0FBc0I7WUFDMUMsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFRSyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBZ0QsQ0FBQztRQUVqRixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRTFDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpRixDQUFDO1FBRWpILHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpRixDQUFDO1FBRWpILG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFTakgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFB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LENBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQzVELENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7K0dBMUtRLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb250U2l6ZXMsIE1hcmtUeXBlcywgU2Nyb2xsRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlQ29udGV4dE9wdGlvbnMge1xuICAgIGVkaXRvcjogVGhlRWRpdG9yO1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgd2lkdGg/OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBQYWludEZvcm1hdFN0YXR1cyB7XG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XG4gICAgbWFya3M6IHsgW2tleSBpbiBNYXJrVHlwZXNdPzogYW55IH07XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVDb250ZXh0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByaXZhdGUgb3B0aW9uczogVGhlQ29udGV4dE9wdGlvbnM7XG5cbiAgICBwdWJsaWMgdXBsb2FkaW5nRmlsZXM6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfCBzdHJpbmcgfVtdID0gW107XG5cbiAgICBwdWJsaWMgcGFpbnRGb3JtYXRTdGF0dXM6IFBhaW50Rm9ybWF0U3RhdHVzID0ge1xuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICAgIG1hcmtzOiB7fVxuICAgIH07XG5cbiAgICBwdWJsaWMgb25Nb3VzZVVwJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBvbk1vdXNlTW92ZSQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgb25Nb3VzZURvd24kOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIGNvbnRhaW5lclNjcm9sbGVkJCA9IG5ldyBTdWJqZWN0PHsgZXZlbnQ6IEV2ZW50OyBkaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbiB9PigpO1xuXG4gICAgcHVibGljIHVwbG9hZGluZ1N0YXR1cyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHVibGljIGNvbnRhaW5lclJlc2l6ZWQkID0gbmV3IFN1YmplY3Q8eyBlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeTsgd2lkdGhDaGFuZ2VkOiBib29sZWFuOyBoZWlnaHRDaGFuZ2VkOiBib29sZWFuIH0+KCk7XG5cbiAgICBwdWJsaWMgdGhlRWRpdG9yUmVzaXplZCQgPSBuZXcgU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAgIHB1YmxpYyB3aW5kb3dSZXNpemVkJCA9IG5ldyBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgcHJpdmF0ZSBjb250YWluZXJSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBwcml2YXRlIHRoZUVkaXRvclJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIHByaXZhdGUgd2luZG93UmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTW91c2VVcCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2V1cGApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZU1vdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNlbW92ZWApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZURvd24kID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNlZG93bmApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRpYWxpemUob3B0aW9uczogVGhlQ29udGV4dE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWJpbmRDb250YWluZXJTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5iaW5kQ29udGFpbmVyUmVzaXplKCk7XG4gICAgICAgIHRoaXMuYmluZFRoZUVkaXRvclJlc2l6ZSgpO1xuICAgICAgICB0aGlzLmJpbmRXaW5kb3dSZXNpemUoKTtcbiAgICB9XG5cbiAgICBnZXRTY3JvbGxDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB7IHNjcm9sbENvbnRhaW5lciB9ID0gdGhpcy5vcHRpb25zLmVkaXRvcj8ub3B0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50LmNsb3Nlc3Qoc2Nyb2xsQ29udGFpbmVyKSB8fCB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHNjcm9sbENvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcmViaW5kQ29udGFpbmVyU2Nyb2xsKCkge1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgY29uc3QgeyBzY3JvbGxDb250YWluZXIgfSA9IHRoaXMub3B0aW9ucy5lZGl0b3I/Lm9wdGlvbnM7XG4gICAgICAgIGlmIChzY3JvbGxDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c0NvbnRhaW5lclNjcm9sbCA9IHsgeDogMCwgeTogMCB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxFdmVudD4oY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRpcmVzID0geyBldmVudCwgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24uWSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3gsIHldID0gW3RhcmdldC5zY3JvbGxMZWZ0LCB0YXJnZXQuc2Nyb2xsVG9wXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC54KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29udGFpbmVyU2Nyb2xsID0geyB4LCB5IH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclNjcm9sbGVkJC5uZXh0KGVudGlyZXMpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRDb250YWluZXJSZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICBpZiAoY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVPYnNlcnZlciA9IHRoaXMuZWxlbWVudFJlc2l6ZShjb250YWluZXJFbGVtZW50LCB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRUaGVFZGl0b3JSZXNpemUoKSB7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUodGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGhlRWRpdG9yUmVzaXplZCQpO1xuICAgIH1cblxuICAgIGJpbmRXaW5kb3dSZXNpemUoKSB7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB0aGlzLndpbmRvd1Jlc2l6ZWQkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZXNpemUoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBzdWJqZWN0OiBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PlxuICAgICkge1xuICAgICAgICBsZXQgcHJldmlvdXNSZWN0OiBET01SZWN0UmVhZE9ubHkgfCBudWxsID0gbnVsbDtcbiAgICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudGlyZXM6IFJlc2l6ZU9ic2VydmVyRW50cnlbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFwcmV2aW91c1JlY3QpIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1JlY3QgPSBlbnRpcmVzWzBdLmNvbnRlbnRSZWN0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSZWN0ID0gZW50aXJlc1swXS5jb250ZW50UmVjdDtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHsgZW50cnk6IGVudGlyZXNbMF0sIHdpZHRoQ2hhbmdlZDogZmFsc2UsIGhlaWdodENoYW5nZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICBpZiAoY3VycmVudFJlY3Qud2lkdGggIT09IHByZXZpb3VzUmVjdC53aWR0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC53aWR0aENoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRSZWN0LmhlaWdodCAhPT0gcHJldmlvdXNSZWN0LmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5oZWlnaHRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXZpb3VzUmVjdCA9IGN1cnJlbnRSZWN0O1xuICAgICAgICAgICAgc3ViamVjdC5uZXh0KHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gcmVzaXplT2JzZXJ2ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9wdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLndpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdEVsZW1lbnRDaGlsZCA9IHRoaXMuZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy53aWR0aCA9IGZpcnN0RWxlbWVudENoaWxkLm9mZnNldFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlZmF1bHRGb250U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5lZGl0b3I/Lm9wdGlvbnM/LmZvbnRTaXplIHx8IEZvbnRTaXplcy5mb250U2l6ZTE0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGl0YWJsZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLWVkaXRvci10eXBvJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpcnN0RWxlbWVudENoaWxkKCkge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLmdldEVkaXRhYmxlRWxlbWVudCgpO1xuICAgICAgICByZXR1cm4gZWRpdGFibGVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBhZGRVcGxvYWRpbmdGaWxlcyhmaWxlOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIHwgc3RyaW5nIH0pIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdGaWxlcy5wdXNoKGZpbGUpO1xuICAgIH1cblxuICAgIHJlbW92ZVVwbG9hZEZpbGUoZmlsZTogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB8IHN0cmluZyB9KSB7XG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMuc3BsaWNlKFxuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmdGaWxlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLnVybCA9PT0gZmlsZS51cmwpLFxuICAgICAgICAgICAgMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ1N0YXR1cyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJTY3JvbGxlZCQ/LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplZCQ/LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyUmVzaXplZCQ/LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy50aGVFZGl0b3JSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==